第六章作业

it2024-02-01  64

实验:利用IDE的debug功能给例6.4和例6.6的new语句设置断点,使用单步调试(step into/step over)跟踪子类对象实例化(初始化)的执行顺序,并总结该过程。

以下方代码为例

SonAddClass p1 = new SonAddClass(2, 3, 5); 首先调用SonAddClass类中的输入三个参数的构造方法;然后在这个构造方法中调用了父类AddClass的输入三个参数的构造方法然后在这个函数中又调用了输入两个方法的构造方法然后调用输入一个参数的构造方法然后在父类AddClass中初始化x,y,z均为0然后在AddClass函数中将x赋值为2然后在两个形参的AddClass函数中将y赋值为3然后在三个形参的AddClass构造方法中将z赋值为5然后进入子类SonAddClass中对a,b,c初始化为0令a=x+4,也就是6同样的b为7,c为9最后计算出a+b+c=22

如何实现两个对象之间互发消息,请举例说明。

class A{ private B b; public void setB(B _b){ if(_b!-null){b=_b} } public B getB(){ if(b!=null){return b} else return null; } } class B{ A a; public B(A aa){ this.a=aa; aa.setB(this); } }

谈谈组合与继承的区别以及两者的使用场景(即什么时候宜用组合?什么时候宜用继承?)。

没有找到极其强烈无法辩驳的用继承的原因的时候一律用组合

-组合体现为实现层面 -继承主要体现在扩展方面 如果并不是需要一个类的所有东西(包括接口和属性),那么就不需要用继承,相反就用组合。 用继承那就必须是所有的都继承,不是所有的都继承,那么就是滥用继承。

组合在编译依赖和不同版本的运行时兼容性上优于继承;继承在合理复用实现的潜力优于组合

继承偏重集体,具有特殊性的集体(派生类)可以看作是一般性集体(基类)的一部分,如汽车对于交通工具。 组合偏重个体,某个功能对象被宿主对象看成自己的一部分,如轮子对于汽车。 与看待事物的角度有关,继承偏抽象,组合偏具体。

Java中的运行时多态的含义是什么?有什么作用?请举例说明。

代码当中体现多态性,概括为一句话,父类引用指向子类对象。

//父类名称 对象名 =new 子类名称(); //接口名称 对象名=new 实现类名称(); //父类 package cn.itcast.day10.demo04; public class Fu(){ System.out.println("父类方法"); } //子类 package cn.itcast.day10.demo04; public class Zi(){ System.out.println("子类方法"); } package cn.itcast.day10.demo04; public class Demo01Multi{ public static void main(String[] args){ //使用多态的方法 //左侧父类的引用,指向了右侧子类的对象 Fu obj =new Zi(); obj.method(); } }

使用接口改写例6.8中的程序。

简述运算符instanceof的使用场景。

instanceof用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。就是判断一个对象的声明是否为该对象的实例引用。 如

A a=new A()

那么使用instanceof时为true或者

A a=new B()

然后B是A的子类那么结果为 false反过来为true

最新回复(0)