2-7代码请提意见
public class Monkey {
//成员属性,名字 特征
public String name;
public String feature;
//无参构造方法
public Monkey(){
System.out.println("名称:长尾猴");
System.out.println("特征:尾巴长");
}
public Monkey(String name,String feature){
this.name = name;
this.feature = feature;
}
}
public class TestMonkey {
public static void main(String[] args){
Monkey m = new Monkey();
System.out.println(m);
Monkey m1 = new Monkey("白头叶猴","头上有白毛,喜欢吃树叶");
System.out.println("名称:"+m.name);
System.out.println("特征:"+m.feature);
}
}
正在回答
你好!根据题目要求,无参构造方法中是给属性赋值为默认值,比如name="长尾猴"; 而带参构造方法中,是用参数赋值,如:this.name=name;在主方法中用对象获取属性值并输出,如System.out.println("名称:"+m.name);
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
关于你对于构造方法中赋值的理解,其实可以在main方法中,添加几条输出语句进行验证。譬如:
public class TestMonkey {
public static void main(String[] args) {
Monkey m = new Monkey();
System.out.println(m.name);
System.out.println(m.feature);
Monkey m1 = new Monkey("白头叶猴", "头上有白毛,喜欢吃树叶");
System.out.println(m1.name);
System.out.println(m1.feature);
}
}此时就可以发现,运行结果
。
之所以会产生这个结果,就是因为之前的输出语句是在构造方法中直接打印的传入方法的参数,但是由于数据并没有传给类中的属性,所以导致类外操作的时候,输出结果为null。
如果想要类外操作的时候也能正常显示,需要修改构造方法,譬如:
public Monkey(String name, String feature) {
this.name=name;
this.feature=feature;
}祝学习愉快~
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星