大家好,又见面了,我是你们的朋友全栈君。
静态方法不能访问非静态的实例变量和实例方法。实例方法可以访问静态成员和非静态成员。
1在本来中直接调用静态方法
2可以通过类名来调用该类的静态方法
3通过实例调用静态方法
// 外部类,不能是静态的 public class OuterClass { // 静态方法,又称为类方法,属于Test类 public static void staticFun() { } // 非静态方法,又称为实例方法,属于Test类的具体实例 public void nonStaticFun() { } // 静态内部类,静态类只能是内部类 public static class StaticInnerClass { // 静态方法,属于StaticInnerClass类 public static void staticFun() { } // 非静态方法,属于StaticInnerClass类的实例 public void nonStaticFun() { } } // 非静态内部类,不能有静态方法 public class NonStaticInnerClass { // 非静态方法,属于NonStaticInnerClass的实例 public void nonStaticFun() { } } // 测试代码如下: public static void main(String[] args) { // 对于静态方法,使用类直接访问 OuterClass.staticFun(); StaticInnerClass.staticFun(); // 对于非静态方法,需要使用类的实例访问 new OuterClass().nonStaticFun(); new StaticInnerClass().nonStaticFun(); // 对于非静态内部类,必须创建外部类后才能使用 OuterClass outerClass = new OuterClass(); NonStaticInnerClass nonStaticInnerClass = outerClass.new NonStaticInnerClass(); nonStaticInnerClass.nonStaticFun(); } }
转载于:https://www.cnblogs.com/TangGe520/p/8891337.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107567.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...