为什么静态方法不可以直接new 一个 非静态内部类 的 对象,还得加上外部...
静态内部类:是可以被独立实例化的,而不依赖外部类实例化,且内部类中可以有静态属性,但是只能访问外部类静态属性 非静态内部类:要实例化必须先实例化外部类,他是依赖于外部类实例的,所以他才能够有资格访问外部类的非静态属性,即使是private属性,但是非静态内部类中是不能有静态属性的 严格来说,...
JAVA中 在static方法内部能否调用非静态方法?
static方法内部不能直接调用非静态方法,可以在调用之前实例化非静态方法所在的类,再用类点方法来调用。例:非静态方法是className类里面的method();className cn=new className();cn.method();这样就可以了。希望能帮助你。
java 内部类为什么不能用静态方法
首先内部的静态类他是不能直接被实例化的。你必须实例化外部类才能实例化它。而外部类不是默认加载的,他只有在手动实例化之后才有内存分配。这时问题出现了。既然静态对象是默认加载,那么静态内部类应该先于外部类被加载到内存中。那么这是又和我们之前的一个结论相反(首先内部的静态类他是不能直接被...
无法从静态上下文中引用非静态
main方法里面改下,内部类对象无法直接在外部new生成,需要由外部类对象调用。其实非静态方法调用也是一样的,只不过非静态方法中的this对象一般都省略掉了。
java中 main()方法中为什么不能new 内部类
1.首先你的内部类不是静态的对吧(不是static class)。2.而main方法是静态的。3.main 方法是个静态方法,而 静态 类不是个静态内部类,所以不能直接初始化。对main方法而言,虽然写在类中,它是游离于任何类之外的(就跟C++一样,单独一个main方法),因此某类的非静态内部类对它而言是不直接可见...
...先new出对象在引用 类内部的成员方法为什么可直接使用?
因为在类内部的时候默认为this,也就是本对象。但是如果你在该类中的main方法中的话,只是一个程序的入口,不代表该类,你要使用该类还是得new
Static Nested Class 和 Inner Class的不同
我想可能是既然静态成员类似c语言的全局变量,而内部类通常是用于创建内部对象用的,所以,把“全局变量”放在内部类中就是毫无意义的事情,既然是毫无意义的事情,就应该被禁止),内部类可以直接访问外部类中的成员变量,内部类可以定义在外部类的方法外面,也可以定义在外部类的方法体中,如下所示:publi...
java为什么非静态内部类中不能有static修饰的属性,但却可以有常量?
a ,问题就出在加载内部类上面,我们可以把内部类看成外部类的非静态成员,它的初始化必须在外部类对象创建后以后进行,要加载内部类必须在实例化外部类之后完成 ,java虚拟机要求所有的静态变量必须在对象创建之前完成,这样便产生了矛盾。(有点绕,呵呵)而java常量放在内存中常量池,它的机制与变量是不...
java 请问非静态类为什么持有外部类的引用
非静态内部类依赖于外部类,没有外部类就不能创建内部类,内部类可以直接访问外部类的属性,包括私有属性
java在类内部的静态方法中可以new 一个其子类的对象吗?如代码_百度知 ...
java在类内部的静态方法中【可以】new一个其【子类】的对象 但是在类内部的静态方法中【不可以】直接new一个其【内部类】的对象