作业求解以及get方法的疑问

来源:2-21 编程练习

做条咸鱼才最好

2021-07-07 23:03:16

图片描述
图片描述
图1:这里属性默认值,是在父类直接初始化为对应值吗?还是在get里面加if,如果传默认值0就赋值2和1?

图2:无参构造中赋值
方法体这样写吗?this.setTyreNum(3); 还是 this.tyreNum=3;两种哪种好点?

第三个问题:get/set方法get方法体,return this.属性名可以用吗?和return 属性名有区别吗?
在有继承关系的父类和子类中,直接return 属性名 ,是返回调用对象的属性还是父类中的属性?

写回答

1回答

好帮手慕小小

2021-07-08

同学你好,解答如下:

1、属性默认值是在父类中直接进行初始化,无需在get方法中使用if判断,可在定义属性时直接对属性进行初始化赋值。

    http://img.mukewang.com/climg/60e6734909011a4002840079.jpg

2、轮子属性是需要定义在父类中的私有属性,所以在子类中无法使用this.tyreNum方式访问。

    可以在无参构造方法中使用this.setTyreNum(3); 或super.setTyreNum(3);都是可以的。

    另外轮子是定义在父类中的属性,所有子类共有的,所以建议将轮子属性名修改为 wheelNum。

    代码如下:

    http://img.mukewang.com/climg/60e6755d0900c5e902970102.jpg

    http://img.mukewang.com/climg/60e6757e094d274102470104.jpg

3、get方法返回值:return this.属性名与return 属性名的效果是一致的,没有区别。

    'return 属性名'这种方法的属性名前未写this但默认也是有this的。

4、子类无法访问父类的私有属性。一般情况下return 属性名,返回的是当前类中定义的属性。

祝学习愉快~


0

0 学习 · 9886 问题

查看课程