《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
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Java程序设计》课程教学课件(PPT讲稿)04 Java面向对象3-面向对象特征(1/3).pptx
- 清华大学出版社:《计算机操作系统教程》习题解答与实验指导(教材PDF电子版,第2版,编著:张尧学).pdf
- 《汇编语言与接口技术》课程教学资源(作业习题)汇编语言与接口技术练习题(答案).doc
- 《汇编语言与接口技术》课程教学资源(作业习题)汇编语言与接口技术练习题(题目).doc
- 《汇编语言与接口技术》课程教学资源(PPT课件)第7章 串并行接口技术.ppt
- 《汇编语言与接口技术》课程教学资源(PPT课件)第8章 中断和DMA技术.ppt
- 《汇编语言与接口技术》课程教学资源(PPT课件)第5章 软件接口技术.ppt
- 《汇编语言与接口技术》课程教学资源(PPT课件)第6章 存储器技术.ppt
- 《汇编语言与接口技术》课程教学资源(PPT课件)第2章 80x86微处理器.ppt
- 《汇编语言与接口技术》课程教学资源(PPT课件)第4章 80x86汇编语言程序设计.ppt
- 《汇编语言与接口技术》课程教学资源(PPT课件)第1章 微型计算机概述.ppt
- 《汇编语言与接口技术》课程教学资源(PPT课件)第3章 80x86指令系统和寻址方式.ppt
- 《汇编语言与接口技术》课程教学大纲 Assembly Language and Interface Technology.doc
- 浙江科技大学:《计算机网络》课程教学资源(PPT课件)第6章 应用层.ppt
- 浙江科技大学:《计算机网络》课程教学资源(PPT课件)第5章 运输层.ppt
- 浙江科技大学:《计算机网络》课程教学资源(PPT课件)第7章 网络安全.ppt
- 浙江科技大学:《计算机网络》课程教学资源(PPT课件)第4章 网络层.ppt
- 浙江科技大学:《计算机网络》课程教学资源(PPT课件)第3章 数据链路层.ppt
- 浙江科技大学:《计算机网络》课程教学资源(PPT课件)第1章 概述(主讲:马伟锋).ppt
- 浙江科技大学:《计算机网络》课程教学资源(PPT课件)第2章 物理层.ppt
- 《Java程序设计》课程教学课件(PPT讲稿)04 Java面向对象5-面向对象特征(3/3).pptx
- 《Java程序设计》课程教学课件(PPT讲稿)05 Java异常处理.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)06 Java文件输入输出.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)07 Java线程.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)08 Java网络编程.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)09 Java数据库编程(1/2).pptx
- 《Java程序设计》课程教学课件(PPT讲稿)09 Java数据库编程(2/2).pptx
- 《Java程序设计》课程教学课件(PPT讲稿)0 1Java概述.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)02 Java程序设计基础1—运算符和表达式.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)03 Java程序设计基础2—数组.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)03 Java程序设计基础3—程序流程控制.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)04 Java面向对象1-软件开发周期简介.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)04 Java面向对象2-面向对象程序设计基础.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)Coding_Standard_Java.pptx
- 《数据结构》课程教学大纲 Data Structure.doc
- 《数据结构》课程教学课件(PPT讲稿)第一章 绪论.ppt
- 《数据结构》课程教学课件(PPT讲稿)第三章 栈和队列.ppt
- 《Java基础入门》课程电子教案(PPT教学课件)第1章 Java开发入门.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第2章 Java编程基础.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第3章 面向对象(上).pptx
