java教程第三讲java语言中的面向对象特性(编辑修改稿)内容摘要:

式 例: = 10。 tx=new Point( ).x。 ◇ 调用对象的方法 格式: ([paramlist])。 例如: (30,20)。 new Point( ).move(30,20)。 3. 对象的清除 当不存在对一个对象的引用时,该对象成为一个无用对象。 Java 的垃圾收集 器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放。 ( )。 当系统内存用尽或调用 ( )要求垃圾回收时,垃圾回收线程与系统同步运行。 3. 2. 3 面向对象特性 Java 语言中有三个典型的面向对象的特性:封装性、继承性和多态性,下面将详细阐述。 1. 封装性 Java 语言中,对象就是对一组变量和相关方法的封装,其中变量表明了对象的状态,方法表明了对象具有的行为。 通过对象的封装,实现了模块化和信息隐藏。 通过对类的成员施以一定的访问权 限,实现了类中成员的信息隐藏。 ◇ 类体定义的一般格式: class className { [public | protected | private ] [static] [final] [transient] [volatile] type variableName。 //成员变量 [public | protected | private ] [static] [final | abstract] [native] [synchronized] returnType methodName([paramList]) [throws exceptionList] {statements} //成员方法 } ◇ Java 类中的限定词 Java 语言中有四种不同的限定词,提供了四种不同的访问权限。 1) private 类中限定为 private 的成员,只能被这个类本身访问。 如果一个类的构造方法声明为 private,则其它类不能生成该类的一个实例。 2) default 类中不加任何访问权限限定的成员属于 缺省的( default)访问状态,可以被这个类本身和同一个包中的类所访问。 3) protected 类中限定为 protected 的成员,可以被这个类本身、它的子类(包括同一个包中以及不同包中的子类)和同一个包中的所有其他的类访问。 4) public 类中限定为 public 的成员,可以被所有的类访问。 表 31 列出了这些限定词的作用范围。 【表 31】 Java 中类的限定词的作用范围比较 同一个类 同一个包 不同包的子类 不同包 非子类 private * default * * protected * * * public * * * * 2. 继承性 通过继承实现代码复用。 Java 中所有的类都是通过直接或间接地继承 类得到的。 继承而得到的类称为子类,被继承的类称为父类。 子类不能继承父类中访问权限为 private 的成员变量和方法。 子类可以重写父类的方法,及命名与父类同名的成员变量。 但 Java 不支持多重继承 ,即一个类从多个超类派生的能力。 ◇ 创建子类 格式: class SubClass extends SuperClass { … } ◇ 成员变量的隐藏和方法的重写 子类通过隐藏父类的成员变量和重写父类的方法,可以把父类的状态和行为改变为自身的状态和行为。 例如: class SuperClass{ int x。 … void setX( ){ x=0。 } … } class SubClass extends SuperClass{ int x。 //隐藏了父类的变量 x … void setX( ) { //重写了父类的方法 setX() x=5。 } …. } 注意:子类中重写的方法和父类中被重写的方法要具有相同的名字,相同的参数表和相同的返回类型,只是函数体不同。 ◇ super Java 中通过 super 来实现对父类成员的访问, super 用来引用当前对象的父类。 Super 的使用有三种情况: 1)访问父类被隐藏的成员变量,如:。 2)调用父类中被重写的方法,如: ([paramlist])。 3)调用父类的构造函数,如: super([paramlist])。 【例 35】 import .*。 class SuperClass{ int x。 SuperClass( ) { x=3。 (in SuperClass : x= +x)。 } void doSomething( ) { (in ())。 } } class SubClass extends SuperClass { int x。 SubClass( ) { super( )。 //调用父类的构造方法 x=5。 //super( ) 要放在方法中的第一句 (in SubClass :x=+x)。 } void doSomething( ) { ( )。 //调用父类的方法 (in ())。 (=++ =+x)。 } } public class Inheritance { public static void main(String args[]) { SubClass subC=new SubClass()。 ()。 } } 运行结果 c:\ Java Inheritance in SuperClass: x=3 in SubClass: x=5 in () in () =3 =5 3. 多态性。 在 Java 语言中,多态性体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法重写实现的动态多态性( 运行时多态)。 1) 编译时多态 在编译阶段,具体调用哪个被重载的方法,编译器会根据参数的不同来静态确定调用相应的方法。 2) 运行时多态 由于子类继承了父类所有的属性(私有的除外),所以子类对象可以作为父类对象使用。 程序中凡是使用父类对象的地方,都可以用子类对象来代替。 一个对象可以通过引用子类的实例来调用子类的方法。 ◇ 重写方法的调用原则 : Java 运行时系统根据调用该方法的实例,来决定调用哪个方法。 对子类的一个实例,如果子类重写了父类的方法,则运行时系统调用子类的方法;如果子类 继承了父类。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。