黑马程序员技术交流社区
标题:
Java使用getXxx()不能对构造方法在堆内存中赋的值进行获取吗?
[打印本页]
作者:
n_Nie1991
时间:
2015-12-29 23:04
标题:
Java使用getXxx()不能对构造方法在堆内存中赋的值进行获取吗?
class Person {
private String name;
private int age;
Person (String name , int age) {
System.out.println("这个人的姓名是:"+name+" 这个人的年龄是:"+age);
}
void setAge(int age) {
this.age = age;
}
int getAge() {
return age;
}
void setName(String name) {
this.name = name;
}
String getName() {
return name;
}
}
class Demo {
public static void main(String[] args){
Person p = new Person("张三",20);
System.out.println(p.getAge()+" "+p.getName());
}
}
为什么 p.getAge() 和 p.getName() 的值为 0 和 20 ,难道一定要用setXxx()方法赋值.
作者:
1158147908
时间:
2015-12-29 23:29
可以的呀,用的就是堆内存的
作者:
唱一些温暖
时间:
2015-12-30 10:13
怎么会是0和20,难道不是0和null。你上面传进去的("张三",20),只在Person (String name , int age)方法内有效。
作者:
qinrongchang
时间:
2015-12-30 10:25
试了下 是 0 和null
作者:
李永佳
时间:
2015-12-30 15:25
当然啦,你在构造函数中没有给Person初始化值,当然只能通过setXxx方法赋值了
作者:
我有一个邮箱了
时间:
2015-12-30 22:13
这样写构造方法
Person (String name , int age) {
this.name = name;
this.age = age;
System.out.println("这个人的姓名是:"+name+" 这个人的年龄是:"+age);
}
作者:
窃贼
时间:
2015-12-30 22:29
class Person {
private String name;
private int age;
Person (String name , int age) {
this.name = name;
this.age = age;
System.out.println("这个人的姓名是:"+name+" 这个人的年龄是:"+age);
}
void setAge(int age) {
this.age = age;
}
int getAge() {
return age;
}
void setName(String name) {
this.name = name;
}
String getName() {
return name;
}
}
class Demo {
public static void main(String[] args){
Person p = new Person("张三",20);
System.out.println(p.getAge()+" "+p.getName());
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2