① java类中定义的类怎么 实例化
首先这是个内部类。
内部类只能在类里面实例化
就你这个例子来说
publicclassa{
publicclassb{}
publica(){
bxx=newb();//这样才可以。
}
}
例外的是,如果内部类是静态的。可以其他类中实例化。
比如
publicclassa{
publicstaticclassb{}
}
a.bxx=newa.b();
② java 内部类为什么不能用静态方法
静态的对象,在内存中实默认实例派察化尘咐茄的,在加载的时候就会存放到内存中。也就是可以直接调用而不需要手动实例化。理解这个就不难理解楼主说的问题了。首先内部的静态类他是不能直接被实例化的。你必须实例化外部类才能实例简亩化它。而外部类不是默认加载的,他只有在手动实例化之后才有内存分配。这时问题出现了。既然静态对象是默认加载,那么静态内部类应该先于外部类被加载到内存中。那么这是又和我们之前的一个结论相反(首先内部的静态类他是不能直接被实例化的。你必须实例化外部类才能实例化它。)所以这种写法是错误的。
③ 在java中,怎么实例化内部类
内部类的实例化方式如下例子所示:
public class Animal {
class Head{
}
}
测试如何实例化内部类:
public class TestInstanceInnerClass {
public TestInstanceInnerClass() {
Animal animal=new Animal();//首先实例化外部类
Head head=animal.new Head();//把内部类当成一个成员变量进行实例化
}
}
④ java中静态类能否实例化
静态类,一般使用在某个类的内容,简称静态内部类。
静态Static又有全局的意思,对于一般的public定义的外部类,没有必要static关键词,因为可以直接导入包得到该类的引用(只是在访问其非静态成员时需要实例化它);
而在一个类内部定义另一个类,如果该内部类不是静态的,需要实例化它,就得先有一个外部类的对象,
如:public class A{
public class B{}
}
实例化B:
A a = new A();
B b = a.new B();
如果B是静态的(全局的),即如下:
public class A{
public static class B{}
}
实例化B:
B b = A.new B();或者B b = new A.B();