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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
* 学生:
* 属性: 姓名name  年龄age
* 行为:睡觉 sleep
*
* */
public class Student_Test {

        public static void main(String[] args) {
       
                new Student().setName("momo");
                new Student().setAge(18);
                System.out.println(new Student().getName()+"..."+new Student().getAge());
               
                new Student().sleep();
        }
}

class Student {
        private String name;                                        //封装姓名
        private int age;                                                //封装年龄
       
        public void setName(String name){
                this.name = name;
        }
        public String getName() {
                return name;
        }
        public void setAge(int age){
                this.age = age;
        }
        public int getAge(){
                return age;
        }
       
        public static void sleep(){
                System.out.println("上课爱睡觉!");
        }
}


结果是  null   0    还有上课爱睡觉 ,前面两个答案有点不理解啊?

3 个回复

倒序浏览
每一次new Student()都是创建一个对象的过程,你new了四次,有四个对象,
第一个对象你给他名字,第二对象你给他年龄,
第三个对象你什么都没对他做就输出name,当然结果也是初始值null,
第四个对象你什么都没对他做就输出age,当然结果是初始值0,
回复 使用道具 举报
new Student().setName("momo"); //相当于Student s = new Student;s.setName("momo");匿名对象返回的是一个对象,所以可以直接去调方法。下面的同上。
                 new Student().setAge(18);
                 System.out.println(new Student().getName()+"..."+new Student().getAge());
                 
                new Student().sleep();
回复 使用道具 举报
每一个new字就是新建一个对象哦,兄弟。
System.out.println(new Student().getName()+"..."+new Student().getAge());
这句里面新建了两个对象,分别用空值和0给name和age赋值.说以输出null和0
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马