大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
一、非静态内部类:
1、变量和方法不能声明为静态的。(类的编译顺序:外部类–静态方法或属性–内部类,如果内部类声明为静态的,造成编译顺序冲突。个人理解)
2、实例化的时候需要依附在外部类上面。比如:B是A的非静态内部类,实例化B,则:A.B b = new A().new B();
3、内部类可以引用外部类的静态或者非静态属性或者方法。
二、静态内部类:
1、属性和方法可以声明为静态的或者非静态的。
2、实例化静态内部类:比如:B是A的静态内部类,A.B b = new A.B();
3、内部类只能引用外部类的静态的属性或者方法。
4、如果属性或者方法声明为静态的,那么可以直接通过类名直接使用。比如B是A的静态内部类,b()是B中的一个静态属性,则可以:A.B.b();
三、关于java静态方法的相关总结:
一个类的静态方法只能访问静态属性(静态方法是属于类的,而普通方法是属于对象的。)
一个类的静态方法不能够直接调用非静态方法;
如访问控制权限允许,static 属性和方法可以使用类名加“.”方式调用;当然也可以使用实例加“.”方式调用;
静态方法中不存在当前对象,因而不能使用“this”,当然也不能使用”super”;
静态方法不能被非静态方法覆盖;
构造方法不允许声明为 static 的;
局部变量不能使用static修饰;
问题:为什么一个类的静态方法只能访问静态属性或静态方法?
回答:静态方法是属于类的,而普通方法是属于对象的。
属于类的静态方法可以在对象不存在的时候就能访问到,而普通方法必须先new一个对象才能用这个对象访问
。当我们访问调用静态方法的时候(使用类名.静态方法名)这个时候就没有对象创建,所以普通方法是访问不到的。
为了避免这种错误,所以java就不允许在静态方法中访问非静态方法。可以想一下main方法。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183257.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...