A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

下面是一些正确与错误的定义方法以及总结。
public class A {public class B {public static String str;}}// 错误,非静态内部类不能定义静态属性
public class A {public class B {public String str;}}// 正确,非静态内部类可以定义非静态属性
public class A {public static class B {public String str;}}// 正确,静态内部类可以定义静态属性
public class A {public static class B {public static String str;}}// 正确,静态内部类可以定义非静态属性

public class A {public class B {public static final String str = "abc";}}// 正确,非静态内部类可以定义静态常量属性,注意:static final连在一起就是常量。
public class A {public static class B {public static final String str = "abc";}}// 正确,静态内部类可以定义静态常量属性
public class A {public class B {public static final String str = "abc";}}// 正确,非静态内部类可以定义静态常量属性

public class A {public class B {public static void method() {}}}// 错误,非静态内部类不能定义静态方法
public class A {public static class B {public void method() {}}}// 正确,静态内部类可以定义非静态方法
public class A {public static class B {public static void method() {}}}// 正确,静态内部类可以定义静态方法
public class A {public class B {public void method() {}}}// 正确,非静态内部类可以定义非静态方法

public class A {public class B {public static class C {}}}// 错误,非静态内部类不能定义静态内部类
public class A {public static class B {public class C {}}}// 正确,静态内部类可以定义非静态类
public class A {public static class B {public static class C {}}}// 正确,静态内部类可以定义非静态类
public class A {public class B {public class C {}}}// 正确,非静态内部类可以定义非静态内部类

总结:静态内部类可以定义静态方法与非静态方法、静态属性与非静态属性、静态内部类与非静态内部、静态常量属性,而非静态内部类只能定义静态常量属性,以及非静态的方法、属性、内部类。

欢迎大家提出问题!  大家一起讨论!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马