如何在不引用Java外部类的情况下创建静态类Object?
静态成员(方法/变量)属于该类,它将与该类一起加载到内存中。您可以在不创建对象的情况下调用它。(使用类名作为参考)。在整个类中只有一个静态字段的副本可用,即,静态字段的值在所有对象中都相同。您可以使用static关键字定义一个静态字段。
示例
public class Sample{ static int num = 50; public static void demo(){ System.out.println("Value of num in the demo method "+ Sample.num); } } public class Demo{ public static void main(String args[]){ System.out.println("Value of num in the main method "+ Sample.num); Sample.demo(); } }
输出结果
Value of num in the main method 50 Value of num in the demo method 50
引用同一类中的静态成员
如果要引用一个类本身的静态成员(在同一类中),则无需引用该类,则可以直接访问静态成员。
示例
public class Sample{ static int num = 50; public static void demo(){ System.out.println("Value of num in the demo method "+ Sample.num); } public static void main(String args[]){ demo(); System.out.println(num); } }
输出结果
Value of num in the demo method 50
内部班
在Java中,您可以在类内包含类,它们被称为内部类。
语法
public class Outer{ public class Inner{ } }
当您在另一个类中拥有一个类时,它仅充当外部类的实例成员。因此,如果您声明一个内部类静态,则可以使用其名称访问其成员(内部类)-
outer_class_name.inner_class_name.members
示例
class OuterDemo { static int data = 200; static class InnerDemo { public static void my_method() { System.out.println("This is my nested class"); System.out.println(OuterDemo.data); } } } public class StaticClassExample{ public static void main(String args[]) { System.out.println(OuterDemo.data); //嵌套的Outer.InnerDemo=新的Outer.InnerDemo(); OuterDemo.InnerDemo.my_method(); } }
输出结果
200 This is my nested class 200
如果您尝试引用静态内部类的(静态)成员,则无需使用外部类名称,也可以仅使用内部类名称来引用成员。
示例
class OuterDemo { static int data = 200; static class InnerDemo { public static void my_method() { System.out.println("This is my nested class"); System.out.println(OuterDemo.data); } } public static void main(String args[]) { System.out.println(data); InnerDemo.my_method(); } }
输出结果
200 This is my nested class 200