黑马程序员技术交流社区
标题:
内部类问题
[打印本页]
作者:
黑马-王泽斌
时间:
2012-8-10 22:23
标题:
内部类问题
class InnerClassDemo
{
public static void main(String[] args) {
A a = new A();
A.B b = a.new B();
这里的a.new B();如果换成 new A().new B() 打印的name为什么是null?
a.name = "aaa";
b.name = "bbb";
}
}
class A
{
String name;
void fun() {
}
class B
{
String name;
void fun1() {
}
}
}
作者:
李知伦
时间:
2012-8-10 23:43
public class test
{
public static void main(String[] args) {
A a = new A();
A.B b = new A().new B();
a.name = "aaa";
b.name = "bbb";
System.out.println(a.name);
System.out.println(b.name);
}
}
class A {
String name;
void fun() {}
class B {
String name;
void fun1() {}
}
}
复制代码
你是意思是这样吗?
结果没问题啊?
作者:
李知伦
时间:
2012-8-10 23:44
public class test
{
public static void main(String[] args) {
A a = new A();
A.B b = new A().new B();
a.name = "aaa";
b.name = "bbb";
System.out.println(a.name);
System.out.println(b.name);
}
}
class A {
String name;
void fun() {}
class B {
String name;
void fun1() {}
}
}
复制代码
你是意思是这样吗?
结果没问题啊
作者:
zhaosenyang
时间:
2012-8-10 23:52
你这个代码没贴清楚,但我也大概知道你啥意思了。
A.B b = a.new B(); 这里的a.new B();如果换成
new A()
.new B() 打印的name为什么是null?
你想的是A.B b= new A().new B() ;吧?你如果这样,你那个 a.name = "aaa";只是给a对象的name赋值,红色部分你建立的等于说是匿名对象,你并没有赋值,所以打印的才是默认初始化值,null。
不知道你是不是这个意思
作者:
zhaosenyang
时间:
2012-8-10 23:53
你这个代码没贴清楚,但我也大概知道你啥意思了。
A.B b = a.new B(); 这里的a.new B();如果换成
new A()
.new B() 打印的name为什么是null?
你想的是A.B b= new A().new B() ;吧?你如果这样,你那个 a.name = "aaa";只是给a对象的name赋值,红色部分你建立的等于说是匿名对象,你并没有赋值,所以打印的才是默认初始化值,null。
不知道你是不是这个意思
作者:
黑马-王泽斌
时间:
2012-8-11 03:50
已经解决
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2