java 成员常量
java中,定义在类体中的变量是成员变量非静态内部类有一个特点:不允许定义非静态成员变量,但是可以定义常量比如:publicclassOutner{classInner{...
java中,定义在类体中的变量是成员变量
非静态内部类有一个特点:不允许定义非静态成员变量,但是可以定义常量
比如:
public class Outner{
class Inner{
private static final int num = 10;
private int number = 10;
}
}
这个内部类中的常量是类的成员吗?
很多java教材中是这样讲的:非静态内部类不允许定义静态成员。
所以我对这一点有一点疑惑,请详细解答,谢谢!补充:
如果类的成员属性不包括常量
那类体中的 private static final int num = 10;
与方法体中的 final int num =10;怎样区分?外部常量,内部常量?不能叫做成员常量和局部常量吗? 展开
非静态内部类有一个特点:不允许定义非静态成员变量,但是可以定义常量
比如:
public class Outner{
class Inner{
private static final int num = 10;
private int number = 10;
}
}
这个内部类中的常量是类的成员吗?
很多java教材中是这样讲的:非静态内部类不允许定义静态成员。
所以我对这一点有一点疑惑,请详细解答,谢谢!补充:
如果类的成员属性不包括常量
那类体中的 private static final int num = 10;
与方法体中的 final int num =10;怎样区分?外部常量,内部常量?不能叫做成员常量和局部常量吗? 展开
2个回答
推荐于2016-07-16
展开全部
是得, 非静态内部类中不可以定义静态成员。
非静态内部类相当于实例变量,加载外部类的时候先加载静态代码属性方法代码块然后才是其他对应的部分,如果此时实例变量中包含静态代码块 那么我们到底改是怎么个加载顺序啦。
非静态内部类相当于实例变量,加载外部类的时候先加载静态代码属性方法代码块然后才是其他对应的部分,如果此时实例变量中包含静态代码块 那么我们到底改是怎么个加载顺序啦。
更多追问追答
追问
嗯,也感谢你的回答.....其实吧,我纠结的问题是
非静态内部类中不允许定义静态成员。
静态常量属不属于静态成员?
追答
静态常量当然是静态成员了,他是class Inner的成员呀。
2015-01-13
展开全部
加了 static 后,会一直常驻内存, 直到程序退出,
可以通过类名访问成员变量, 不用new一个对象. 比如你例子里面的 int a = Inner.num;
如果没有加static, 则在类中方法调用为: int a=this.number;
如果在类外调用, 这要new一个对象. 然后通过对象调用.
比如: Inner b=new Inner(); int a=b.number;
可以通过类名访问成员变量, 不用new一个对象. 比如你例子里面的 int a = Inner.num;
如果没有加static, 则在类中方法调用为: int a=this.number;
如果在类外调用, 这要new一个对象. 然后通过对象调用.
比如: Inner b=new Inner(); int a=b.number;
追问
感谢您的回答,不过您并没看清我问题的重点是什么
我想知道的是:
非静态内部类中不允许定义静态成员。
上述这句话是否是错误的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询