Java2高级编程:面向对象特性详解

需积分: 18 1 下载量 42 浏览量 更新于2024-08-18 收藏 666KB PPT 举报
"Java2高级编程,主要涵盖了面向对象特性,包括访问控制符、静态属性和方法、抽象类与抽象方法、最终类和方法,以及继承和类的图形表示UML。" 在Java中,`this`关键字是用于引用当前对象自身的引用。在给出的描述中,`this`在`B`类的构造函数中被用来区分局部变量`y`和类成员`y`。`this.y = x;`表示将构造函数的参数`x`赋值给当前对象的成员`y`。同时,`this(0,0);`是调用同一类中的另一个构造函数,这称为构造函数的相互调用,它使得代码更简洁且易于维护。 访问控制符在Java中扮演着重要的角色,它们决定了类的属性和方法的可访问性: - `public`:任何地方都可以访问。 - 缺省(无修饰符):在同一包内的类可以访问。 - `private`:只有在定义它的类内部可以访问。 - `protected`:在同一包或任何子类中可以访问。 - `private protected`:这是一个不常用的概念,表示只能被所有子类访问,但不能被包内的其他类访问。 静态属性和方法是属于类的,而不是类的实例。`static`关键字标识了它们的存在,如`static int count;`是类属性,`static void printMessage();`是类方法。静态方法只能访问类的静态成员,但可以操作非静态的其他类对象。 抽象类和抽象方法是面向对象设计的重要概念。抽象类通常用`abstract`关键字定义,它不提供完整的实现,而是作为其他类的基类,提供公共接口。抽象方法没有具体实现,只有方法签名。例如,`abstract void fly();`。抽象类不能直接实例化,只能通过其非抽象子类来创建对象。抽象方法必须在抽象类中定义。 `final`关键字用于禁止进一步的修改或扩展。它可以修饰类、属性和方法: - `final class MyClass`表示MyClass不能被继承。 - `final int constant = 10;`定义了一个常量,`constant`的值不能改变。 - `final void myMethod()`表示这个方法不能被子类重写。 `finalize()`方法是一个特殊方法,当对象即将被垃圾收集器回收时,会调用它,通常用于资源的清理。 继承是面向对象编程的核心特性之一,允许一个类(子类)继承另一个类(父类)的属性和方法。例如,`PhoneCard`类可以作为各种电话卡类(如200卡、IP卡等)的基类,这些子类可以添加特定的特性和功能。 最后,UML(统一建模语言)用于绘制类和对象的关系图,如`Employee`类可以展示其属性(id, name, deptId)和方法(getId(), setName(), getDeptId()等),帮助开发者直观理解类的结构和交互。 这些知识点都是J2SE高级编程中的重要内容,理解和掌握它们对于编写高质量的Java代码至关重要。