第三次作业
一、学习要点
认真看书并查阅相关资料,掌握以下内容:
掌握类的继承概念和设计
掌握构造方法的继承原则
掌握方法重写
掌握super键字和final关键字
掌握对象转型,理解通过向上转型实现对象多态。
掌握抽象类的设计
掌握接口的设计
掌握接口回调
理解简单工厂设计模式
理解抽象类和接口的区别
掌握包装类的应用
掌握对象的比较方法和比较器的使用
学习使用日期操作类
学习匿名内部类的使用
二、作业要求
发布一篇随笔,主要包括以下几部分的内容:
(一)学习总结
1.阅读下面程序,分析是否能编译通过?如果不能,说明原因。应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能不能反过来?
不能,将super("Hello.Grandparent.");这句话去掉是三个类无参输出,在子类的无参构造方法中,有隐含的程序:super(),这句话的意义是调用父类的无参构造方法。
2.阅读下面程序,分析程序中存在哪些错误,说明原因,应如何改正?正确程序的运行结果是什么?
这个程序里存在覆写的问题,即当父类与子类当中存在相同的方法名,这个时候程序会优先调用子类里的方法,即(“汪汪叫”);我们可以是父类向下转型
Dog dog =(Dog)animal;dog.shout();完成向下转型,可以调用父类的shout方法
3.运行下列程序
(1)程序的运行结果如下,说明什么问题?
说明返回的是地址的值,而不是地址。
(2)那么,程序的运行结果到底是什么呢?利用eclipse打开println(per)方法的源码,查看该方法中又调用了哪些方法,能否解释本例的运行结果?
返回原本数据类型
public void println(String x) {
synchronized (this) {
print(x);
newLine();
}
}
(3)在Person类中增加如下方法
4.汽车租赁公司,出租汽车种类有客车、货车和皮卡三种,每辆汽车除了具有编号、名称、租金三个基本属性之外,客车有载客量,货车有载货量,皮卡则同时具有载客量和载货量。用面向对象编程思想分析上述问题,将其表示成合适的类、抽象类或接口,说明设计思路。现在要创建一个可租车列表,应当如何创建?
将编号,名称,租金定义进成借口,载客量和载货量分别定义借口,创建三个汽车类,来实现所对应的借口
再定义一个类,用于展示所有信息和元素改变时进行的操作,在主函数中进行客户所需要的操作
5.阅读下面程序,分析代码是否能编译通过,如果不能,说明原因,并进行改正。如果能,列出运行结果
不能,改正如下
package 测试;
interface Animal{
void breathe();
void run();
void eat();
}
class Dog implements Animal{
public void breathe(){
System.out.println("I'm breathing");
}
public void eat(){
System.out.println("I'm eating");
}
@Override
public void run() {
System.out.println("I'm runing");
}
}
public class Demo{
public static void main(String[] args){
Dog dog = new Dog();
dog.breathe();
dog.eat();
dog.run();
}
}
6.对于接口我在网上看到了一个有趣的例子,有人和我打电话,让我去完成一件事,但是我现在在执行别的任务,所以要等到以后才可以完成这件事,但是我不能让对面一只打着电话等着我,所以呢,我让对方先挂了电话,等到我完成的时候,我再打电话过去,这样,接口的意义就完成了。
实验四第一题
在主类中设有参构造方法,将贸易额和密码等由测试类传递给主类,如果要单独调用一种东西时,是需要将该类实例化,然后用get方法实现
实验四第二题
在父类员工类进行员工信息的输入输出,然后令子类管理类定义管理信息,员工也可以是管理员,只需要进行标记就可以
实验四第三题
我定义了9个类,6个类分别对应数学模型的半径,底长和高等,一个测试类,一个返回面积类和返回体积类,抽象类是无法实例化的,我是用随机方法定义输入的
不过最好用nextInt,因为用double类型会多出麻烦的小数
实验四第四题
定义一个类,输出喂食三种动物,在定义一个类,其中调用这三种方法,在测试类中定义动物个数,饲养人员。注意传参的问题因为我好像将引用喂食方法简化了,可用有瑕疵
实验五第一题
在主函数传递宠物的品种,颜色,价格,数量,金额,展示这里有点懵,找来找去不知道怎么展示,于是在颜色哪里加了一个“色”通用字,这样通过查找色就可以展示所有信息了
实验五第二题
如果子类和父类中有相同的名字的方法,这样父类的会被腹泻,而super就是为了调用父类的而存在的,我将animal定义为借口,cat,dog来实现接口,simulator来实现接口回调,在测试类实例化cat或dog,来分别调用cat和dog的叫声
实验五第三题
依题意实现三个信息的类和两个信息的类,令别的类继承,并输出快递前中后的信息,这道题我实例化JD后,调用toString想要输出,接货得不出结果,最后发现因为System.out.print(jd.toString)的原因,这个是输出,我写的只是调用,返回值不能输出。