以下代碼,匆忙写的,因为要下班了 未经测试:public class Lei{ public static class Leis{ public Leis(){ System.out.println("asd"); } } } class Mei{ Lei l = new lei().new Leis(); }
这取决于B类的内部类是静态内部类还是非静态内部类。如果是静态内部类,就用 外部类类名.内部类类名 对象名 = new 外部类类名.内部类构造函数 如果是非静态内部类除局部内部类之外, 用 外部类类名.内部类类名 对象名 = new 外部类构造函数.new 内部类构造函数 就可以了
4楼正解,B类调用A类中的内部类里的方法或属性代码如下:public class Aclass { class InnerClass{ private String hello = "hello world"; public String getHello(){ return hello; } }
static class staticInnerClass{ private String info = "static"; public String getInfo(){ return info; } }
} public class Bclass { public static void main(String[] args){ // 调用Aclass中非静态的内部类 Aclass.InnerClass inner = new Aclass().new InnerClass(); System.out.println(inner.getHello());
//调用Aclass中是静态的内部类 Aclass.staticInnerClass sinner = new Aclass.staticInnerClass(); System.out.println(sinner.getInfo()); } }
public class TestInner { public class InnerKlass { // 内部类的成员变量 private String password = "password"; String name = "test"; public String getName() { return name; } public String getPassword() { return password; } } public static void main(String[] args) { TestInner out = new TestInner(); TestInner.InnerKlass inner = out.new InnerKlass(); // 直接使用"."访问 System.out.println("直接使用\".\"访问 "+inner.name); // 直接使用getter方法访问 System.out.println("直接使用getter方法访问"+inner.getName()); // 私有的成员变量,使用get方法 System.out.println("直接使用getter方法访问私有成员变量"+inner.getPassword()); }}
public static class Leis{
public Leis(){
System.out.println("asd");
}
}
}
class Mei{
Lei l = new lei().new Leis();
}
外部类类名.内部类类名 对象名 = new 外部类类名.内部类构造函数
如果是非静态内部类除局部内部类之外, 用 外部类类名.内部类类名 对象名 = new 外部类构造函数.new 内部类构造函数
就可以了
class InnerClass{
private String hello = "hello world";
public String getHello(){
return hello;
}
}
static class staticInnerClass{
private String info = "static";
public String getInfo(){
return info;
}
}
}
public class Bclass {
public static void main(String[] args){
// 调用Aclass中非静态的内部类
Aclass.InnerClass inner = new Aclass().new InnerClass();
System.out.println(inner.getHello());
//调用Aclass中是静态的内部类
Aclass.staticInnerClass sinner = new Aclass.staticInnerClass();
System.out.println(sinner.getInfo());
}
}
public class TestInner { public class InnerKlass {
// 内部类的成员变量
private String password = "password";
String name = "test"; public String getName() {
return name;
} public String getPassword() {
return password;
}
} public static void main(String[] args) {
TestInner out = new TestInner();
TestInner.InnerKlass inner = out.new InnerKlass();
// 直接使用"."访问
System.out.println("直接使用\".\"访问 "+inner.name);
// 直接使用getter方法访问
System.out.println("直接使用getter方法访问"+inner.getName());
// 私有的成员变量,使用get方法
System.out.println("直接使用getter方法访问私有成员变量"+inner.getPassword()); }}