黑马程序员技术交流社区

标题: 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