静态嵌套类
什么是静态嵌套类
就是成员内部类加上static修饰符。
静态嵌套类中的元素
1.实例变量
2.类变量
3.构造方法
4.实例方法
5.类方法
静态嵌套类中的方法访问其他的变量和方法
1.在静态嵌套类中构造方法和实例方法中访问静态嵌套类中的实例变量/实例方法,默认this.,可以省略this.
2.在静态嵌套类中构造方法和实例方法中访问静态嵌套类中的类变量/类方法,默认静态嵌套类类名.,也可以省略this.,可以省略静态嵌套类类名./this.
3.在静态嵌套类中类方法中不能访问静态嵌套类中的实例变量/实例方法。
4.在静态嵌套类中的类方法中访问静态嵌套类中的类变量/类方法,默认静态嵌套类类名.,可以省略静态嵌套类类名.
5.在静态嵌套类中的类方法中不能出现this.
6.在静态嵌套类中构造方法和实例方法/类方法可以访问构造方法,通过new访问。
静态嵌套类中访问外部类的变量和方法
1.静态嵌套类中的构造方法/实例方法/类方法可以访问外部类的实例变量/实例方法,只能通过外部类的对象访问
2.静态嵌套类中的构造方法/实例方法/类方法可以访问外部类的类变量/类方法,默认外部类的类名.,可以省略外部类的类名.
3.静态嵌套类中的构造方法/实例方法/类方法可以访问外部类的构造方法,通过new访问
外部类中访问静态嵌套类中的变量和方法
1.外部类中的构造方法/实例方法/类方法中可以访问静态嵌套类中的实例变量和实例方法,通过对象访问。
2.外部类中的构造方法/实例方法/类方法中可以访问静态嵌套类中的类变量和类方法,默认静态嵌套类的类名访问,也可以使用对象访问 ,以省略类名。
3.外部类中的构造方法/实例方法/类方法中可以访问静态嵌套类中的构造方法,通过new访问。
其他类中访问静态嵌套类中的变量和方法
1.在其他类中可以访问静态嵌套类中的实例变量和实例方法,通过对象访问。
2.在其他类中可以访问静态嵌套类中的类变量和类方法,默认静态嵌套类的类名访问,也可以使用对象访问 ,以省略类名。
3.在其他类中可以访问静态嵌套类中的构造方法,通过new访问。
注意
:以上的访问是需要导包语句
import 包名.外部类类名.静态嵌套类的类名;
代码案例
package com.lin183.time;
public class MyClass {
public int myclassid=1001;
public String myclassname="zhangsan";
public MyClass() {}
public void myclassMethod() {}
public static void myclasStatic() {}
//静态潜逃类
//静态嵌套类的元素
//1.实例变量
//2.类变量
//3.构造方法
//4.实例方法
//5.类方法
public static class InnerClass{
private static final String InnerClassid = null;
public int innerclassid=1002;
public static String innerclassname="lisi";
public InnerClass(int num) {}
public InnerClass() {
//在静态嵌套类中
//在静态嵌套类中的构造方法中访问静态嵌套类中的实例变量/实例方法,默认this.,可以省略this.
System.out.println("innerclassid==="+this.innerclassid);
System.out.println("innerclassid==="+innerclassid);
this.innerclassMethod();
innerclassMethod();
//在静态嵌套类中的构造方法中访问静态嵌套类中的类变量/类方法,默认静态嵌套类类名,可以省略类名,,可以省略this.
System.out.println("innerclassname==="+this.innerclassname);
System.out.println("innerclassname==="+InnerClass.innerclassname);
System.out.println("innerclassname==="+innerclassname);
this.innerclasStatic();
InnerClass.innerclasStatic();
innerclasStatic();
//在静态嵌套类中的构造方法中访问静态嵌套类中的其他构造方法,通过new访问
new InnerClass(100);
}
public void innerclassMethod() {
System.out.println("innerclassid==="+this.innerclassid);
System.out.println("innerclassid==="+innerclassid);
this.innerclassMethod();
innerclassMethod();
//在静态嵌套类中的实例方法中访问静态嵌套类中的类变量/类方法,默认静态嵌套类类名,可以省略类名,,可以省略this.
System.out.println("innerclassname==="+this.innerclassname);
System.out.println("innerclassname==="+InnerClass.innerclassname);
System.out.println("innerclassname==="+innerclassname);
this.innerclasStatic();
InnerClass.innerclasStatic();
innerclasStatic();
//在静态嵌套类中的实例方法中访问静态嵌套类中的其他构造方法,通过new访问
new InnerClass(100);
}
public static void innerclasStatic() {
//在静态嵌套类中类方法中不能访问静态嵌套类的实例方法/实例变量
//System.out.println("innerclassid==="+this.innerclassid);
//System.out.println("innerclassid==="+innerclassid);
//this.innerclassMethod();
//innerclassMethod();
//在静态嵌套类中的类方法中访问静态嵌套类中的类变量/类方法,默认静态嵌套类类名,不能用this.访问,可以省略类名
//System.out.println("innerclassname==="+this.innerclassname);
System.out.println("innerclassname==="+InnerClass.innerclassname);
System.out.println("innerclassname==="+innerclassname);
//this.innerclasStatic();
InnerClass.innerclasStatic();
innerclasStatic();
//在静态嵌套类中的类方法中访问静态嵌套类中的其他构造方法,通过new访问
new InnerClass(100);
}
}
}
来源:CSDN
作者:Kweilin_Fang
链接:https://blog.csdn.net/weixin_43511745/article/details/104640107