教材第四五章 面向对象

151 阅读6分钟

1。名词解释:构造方法:构造方法是一个与类名相同的类方法。每当使用new关键字创建一个对象,为新创建对象开辟一个空间之后,Java系统将自动调用之这个构造方法初始化这个对象。 抽象:抽象就是从被研究对象中舍弃个别的、非本质的或者与研究对象无关的特征,抽取与研究内容相关的共性内容加以考察,形成对研究问题正确,简明扼要的认识。

2.对象位于堆中,对象的引用位于相应的方法栈中,声明能过引用对象就是通过声明储存着对象在堆中的地址空间。

3.基本数据类型作为参数传递是值传递而对象作为参数传递的方式是引用传递,也就是说传递的是对象在堆中的地址。

4.当一个自定义的对象没有任何引用指向该对象时,该对象将成为垃圾对象,当系统不忙时,才调用垃圾对象的finalize方法。

5.对象在没有任何的声明指向该对象时(也就是指向该对象的引用都为null),该对象将成为垃圾对象。当成为垃圾是时,系统还并不是主动的释放对象所占的内存资源,而是在资源不够的情况下才进行释放。判断对象成为垃圾对象的方法有:引用计数法和可达性分析法。

6.final修饰符修饰类属性该属性常量,修饰方法则该方法为最终的方法。

7.static修饰的属性专属于类,不属于任何的对对象,任何类的对象访问该属性都是同一个值,不会改变。 static修饰的方法为类方法,不属于类的任何的对象,可以被所有对象访问,static方法内部的代码只能访问类中static是属性和方法是的,不能访问类中非static属性或方法,非static属性和方法能访问static属性和方法。

8.执行Application文件时执行的其实是一个类。

第五章 1.面对对象的主要特征是什么? 封装,继承,多态

2.(1)修改属性的可见性,限制访问。   (2)设置属性的读取方法。   (3)在读取属性的方法中,添加对属性读取的限制。    3.当一个对象中存储着另一个对象的引用,就可以通过这个引用来访问该对象,条件是被访问的对象必须定义了相应的属性和方法,被访问的属性和方法,必须具有可访问的权限。

4.当属性和方法钱的修饰符为protected时,在类定义的层面上说,访问权限为包中所有的类和所有的子类。

5.protected Object clone()创建并返回此对象的一个副本。 boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。 protected void finalize()当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 Class<?> getClass()返回此 Object 的运行时类。 int hashCode()返回该对象的哈希码值。 void notify()唤醒在此对象监视器上等待的单个线程。 void notifyAll()唤醒在此对象监视器上等待的所有线程。 String toString()返回该对象的字符串表示。 void wait()在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。 void wait(long timeout)在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。 void wait(long timeout, int nanos)在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。

6.Java中重载的多个方法之间存在一定的调用关系,即一个方法具有实现功能,其他的方法采用委托的方式进行调用。

7.Java中子类方法覆盖父类的方法需要的条件是子类的访问修饰的符的权限必须大于或等于父类。子类中定义与父类同名的方法不一定就是覆盖,子类与父类定义的方法名称相同但是参数不相同,就是重载。

8.面向对象程序设计语言有三大特性:封装、继承和多态性。继承是面向对象语言的重要特征之一,没有继承的语言只能被称作“使用对象的语言”。继承是非常简单而强大的设计思想,它提供了我们代码重用和程序组织的有力工具。

类是规则,用来制造对象的规则。我们不断地定义类,用定义的类制造一些对象。类定义了对象的属性和行为,就像图纸决定了房子要盖成什么样子。

一张图纸可以盖很多房子,它们都是相同的房子,但是坐落在不同的地方,会有不同的人住在里面。假如现在我们想盖一座新房子,和以前盖的房子很相似,但是稍微有点不同。任何一个建筑师都会拿以前盖的房子的图纸来,稍加修改,成为一张新图纸,然后盖这座新房子。所以一旦我们有了一张设计良好的图纸,我们就可以基于这张图纸设计出很多相似但不完全相同的房子的图纸来。

基于已有的设计创造新的设计,就是面向对象程序设计中的继承。在继承中,新的类不是凭空产生的,而是基于一个已经存在的类而定义出来的。通过继承,新的类自动获得了基础类中所有的成员,包括成员变量和方法,包括各种访问属性的成员,无论是public还是private。当然,在这之后,程序员还可以加入自己的新的成员,包括变量和方法。显然,通过继承来定义新的类,远比从头开始写一个新的类要简单快捷和方便。继承是支持代码重用的重要手段之一。

类这个词有分类的意思,具有相似特性的东西可以归为一类。比如所有的鸟都有一些共同的特性:有翅膀、下蛋等等。鸟的一个子类,比如鸡,具有鸟的所有的特性,同时又有它自己的特性,比如飞不太高等等;而另外一种鸟类,比如鸵鸟,同样也具有鸟类的全部特性,但是又有它自己的明显不同于鸡的特性。

如果我们用程序设计的语言来描述这个鸡和鸵鸟的关系问题,首先有一个类叫做“鸟”,它具有一些成员变量和方法,从而阐述了鸟所应该具有的特征和行为。然后一个“鸡”类可以从这个“鸟”类派生出来,它同样也具有“鸟”类所有的成员变量和方法,然后再加上自己特有的成员变量和方法。无论是从“鸟”那里继承来的变量和方法,还是它自己加上的,都是它的变量和方法。