Java's static nested class, is mostly used for scoping needs:
// package-level is the default, there's no keyword to explicitly say so. This is analogous to C#'s internal class Car { public int i = 7; Car() { Tire t = new Tire("Goodyear"); Tire x = new Tire("Firemint"); x.run(); t.run(); } private static class Tire { // package-level is the default. package-level is analogous to C#'s internal private String _s; // package-level is the default. there's no keyword to explicitly say so Tire(String s) { _s = s; } void run() { System.out.println("Hello " + _s); // cannot access i: // System.out.println(i); } } }
The equivalent in C# :
// internal is the default, no need to explicitly say so class Car { public int i = 7; // private is the default, explicitly say internal. analogous to java's package-level internal Car() { var t = new Tire("Goodyear"); var x = new Tire("Firemint"); x.Run(); t.Run(); } // internal is the default, explicit say private private class Tire { // private is the default no need to explicitly say so string _s; // private is the default, explicitly say internal. analogous to java's package-level internal Tire(string s) { _s = s; } internal void Run() { Console.WriteLine ("Hello " + _s); // cannot access i: // Console.WriteLine (i); } } }
No comments:
Post a Comment