A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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()方法赋值.

6 个回复

倒序浏览
1158147908 来自手机 中级黑马 2015-12-29 23:29:29
沙发
可以的呀,用的就是堆内存的
回复 使用道具 举报
怎么会是0和20,难道不是0和null。你上面传进去的("张三",20),只在Person (String name , int age)方法内有效。
回复 使用道具 举报
试了下 是 0 和null
回复 使用道具 举报
当然啦,你在构造函数中没有给Person初始化值,当然只能通过setXxx方法赋值了
回复 使用道具 举报
这样写构造方法
Person (String name , int age) {
               this.name = name;
                this.age = age;
                System.out.println("这个人的姓名是:"+name+" 这个人的年龄是:"+age);
        }
回复 使用道具 举报
窃贼 中级黑马 2015-12-30 22:29:42
7#
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());
        }
}

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马