中国高校课件下载中心 》 教学资源 》 大学文库

《Java程序设计》课程教学课件(PPT讲稿)04 Java面向对象4-面向对象特征(2/3)

文档信息
资源类别:文库
文档格式:PPTX
文档页数:42
文件大小:172.34KB
团购合买:点击进入团购
内容简介
《Java程序设计》课程教学课件(PPT讲稿)04 Java面向对象4-面向对象特征(2/3)
刷新页面文档预览

1 Java的面向对象特征(2) ZUST Software Institute

2 抽象类(abstract class) ◼ 一个未完成的类 ◼ 仅仅抽象类可以包含抽象方法(abstract methods) ◼ 抽象方法: 仅仅申明了方法,但未实现 ◼ 有访问修饰词 ◼ 返回值类型 ◼ 方法名 ◼ 参数列表 ◼ 无方法体

3 抽象类举例 abstract class Point { int x = 1, y = 1; void move(int dx, int dy) { x += dx; y += dy; alert(); } abstract void alert(); } abstract class ColoredPoint extends Point { int color; } class SimplePoint extends Point { void alert() { } } 抽象方法: 有访问修饰词、 返回值类型、方法名和 参数列表,无方法体

4 5.1.2 抽象类特点 ◼ 抽象类不能被实例化,例Point p = new Point(); ◼ 子类继承抽象类时,必须重写抽象方法, 否则仍为抽象类 abstract class Point { int x = 1, y = 1; void move(int dx, int dy) { x += dx; y += dy; alert(); } abstract void alert(); } abstract class ColoredPoint extends Point { int color; } class SimplePoint extends Point { void alert() { } } Point p = new SimplePoint();

5 5.1.3 抽象类的多态性 ◼ 多态性 abstract class Graphics { abstract void parameter(); abstract void area(); } class Rectangle extends Graphics { double h, w; Rectangle (double u, double v) { h = u; w = v; } void parameter() { System.out.println(h + “ “ + w); } void area() { System.out.println(h*w); } } Rectangle rec = new Rectangle(1.0, 2.0); Circle cir = new Circle(3.0, “Red”); Graphics[] g = {rec, cir}; for (int i = 0; i < g.length; i++) { g[i].parameter(); g[i].area(); } class Circle extends Graphics { double r; String c; Circle (double u, String v) { r = u; c = v; } void parameter() { System.out.println(r + “ “ + c); } void area() { System.out.println(Math.PI*r*r); } } 运行结果 1.0 2.0 2.0 3.0 Red 28.274333882308138 多态性(polymorphism) 应用场合: 不同子类可以用 不同的方式实现同一共同 接口,该共同接口建立了 一个基本形式

6 对象 ◼ 引用对象的变量 ◼ 格式: 对象名.变量名 ◼ 引用对象的方法 ◼ 格式: 对象名.方法名 ◼ 例1 ◼ Vector v = new Vector(); ◼ v.addElement(“hello world”); ◼ 例2 ◼ int a[]= {1, 2, 3, 4, 5}; ◼ int size = a.length; ◼ 例3 ◼ System.out.println();

7 对象引用对象 ◼ 通过对象引用对象的成员变量和成员方法 class Qangle { int a, h; Qangle () {a = 10; h = 20;} Qangle(int x, int y) {a = x; h = y;} Qangle(Qangle r) { a = r.width(); h = r.height(); } void set(int x, int y) { a=x; h =y;} } ▪ q1.set(30, 40); ▪ q1.a = 30; ▪ q1.h = 40; 目的相同 第一方式更安全、 更面向对象(数据封装) 直接操纵变量

8 5.2.2 对象的释放 ◼ 将对象从内存中清除 ◼ 内存的管理(枯燥、容易出错) ◼ 垃圾回收(Garbage Collection) ◼ 垃圾搜集器(Garbage Collector) ◼ 周期性地释放不再被引用的对象,自动完成 ◼ 手动完成,System.gc(); ◼ public static void gc() - Runs the garbage collector. The Java platform allows you to create as many objects as you want (limited, of course, by what your system can handle), and you don't have to worry about destroying them. The Java runtime environment deletes objects when it determines that they are no longer being used. This process is called garbage collection

9 对象的使用 ◼ 访问对象的私有(private)成员 ◼ 通过定义一个公共方法来实现 class Student { private String name; private String id; Student(String s1, String s2) {name = s1; id = s2;} String getName() {return name;} void setName(String s) {name=s;} } Student st = new Student(“aloha”, “001”); String n = st.getName(); . . st.setName(“csma”); n = st.getName(); .

10 对象作为参数 ◼ 对象作为方法的参数 [访问权限修饰符] 方法返回类型 方法名(参数) [throws 异常名]{ 方法体; } ◼ 参数: 类型 变量名, . . ◼ 类型: 基本数据类型/复合类型(对象) ◼ 参数的传递 ◼ Pass by value

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档