辅导课程十六.

Slides:



Advertisements
Similar presentations
主要内容 Java 的常用包 Java 的常用包 “ == ” 和 “ equals ” 的用法 “ == ” 和 “ equals ” 的用法 基本数据类型与引用类型 基本数据类型与引用类型 String 和 StringBuffer String 和 StringBuffer 对象的克隆( clone.
Advertisements

Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
单元二:面向对象程序设计 任务二:借书卡程序设计.
第四章 类、对象和接口.
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
项目6 通用堆栈.
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
面向对象的程序设计(一).
第一章 面向对象程序设计.
第二章 JAVA语言基础.
類別的繼承-一般關係: 繼承是宣告的類別繼承現存類別的部份或全部的成員資料和方法 , 新增額外的成員資料和方法或覆寫和隱藏繼承類別的方法
Ch07 介面與多重繼承 物件導向程式設計(II).
JAVA程序设计 (03) JAVA Programming
第5章 进一步讨论对象和类.
第六章 JAVA语言中的面向对象特性 6.1 类 6.2 对象 6.3 面向对象的特性 6.4 抽象类、接口和Inner Class.
第5章 Java中类、对象、接口 及包的概念 5.1 类的基本概念 5.2 类的继承概念 5.3 抽象类和接口 5.4 包.
Ch08 巢狀類別 物件導向程式設計(II).
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
Java语言程序设计 第七部分 多线程.
Java基础 JavaSE异常.
Classes Lecturer: 曾學文.
第六章 类的扩展与继承.
Java 程式設計 講師:FrankLin.
本單元介紹何謂變數,及說明變數的宣告方式。
西南科技大学网络教育系列课程 高级语程序设计(Java) 第五章 继承、接口与范型.
程式設計實作.
抽象类 File类 String类 StringBuffer类
CH09 套件 物件導向程式設計(II).
Java软件设计基础 5. 继承与多态.
Java程序设计 第9章 继承和多态.
辅导课程六.
Ch01 物件與類別複習 物件導向系統實務.
辅导课程十三.
類別的繼承 Vehicle Car.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
第9讲 Java的继承与多态(一) 类的继承 子类的创建 方法覆盖.
2019/1/16 Java语言程序设计-类与对象 教师:段鹏飞.
Java程序设计 第2章 基本数据类型及操作.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
辅导课程八.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
《JAVA程序设计》 语音答疑 辅导老师:高旻.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
$9 泛型基础.
Vision for 2007 相片: 南寧德天大瀑布- 靖西通靈大峽谷 – 明仕田園 文字: 阿虫 音樂: 幽蘭逢春 (笛子)
C#程序设计基础 $3 成员、变量和常量.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
本节内容 类成员的访问控制 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
辅导课程十五.
第二章 Java基本语法 讲师:复凡.
第6章 面向对象的高级特征 学习目标 本章要点 上机练习 习 题.
十二月份的由來 整理者:Tracy 資料來源:網路.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
辅导课程十二.
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
第二章 Java基础语法 北京传智播客教育
Naning Mountain Scenes
第6章 继承和多态 伍孝金
Summary
Presentation transcript:

辅导课程十六

final关键字 TestFinal/TestFinal.java final可以修饰变量(成员变量、局部变量)、方法和类 final修饰的局部变量(形参)。相当于C++中的const final修饰的方法不能够被重写 final修饰的类不能够被继承 JDK中用final修饰的类 类java.lang.System 类java.lang.String 类java.lang.Math 类java.lang.Boolean/Character/Interger/Double… JDK中用final修饰的成员变量 类java.lang.Math中的public static final double PI 类java.lang.System中的public static final PrintStream out TestFinal/TestFinal.java

接 口 接口(interface)是抽象方法和常量值的定义的集合。 从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。 接口定义举例: public interface Runner { public static final int id = 1; public void start(); public void run(); public void stop(); }

接口特性 接口中所有成员变量的属性默认为 public static final 的、也只能是public static final的; 接口中只能定义抽象成员方法,而且这些方法默认为public的、也只能是public的; 接口可以继承(extends)其它的接口,并添加新的属性和抽象方法。 public interface Runner { public static final int id = 1; public void start(); public void run(); public void stop(); }

接 口 多个无关的类可以实现同一个接口。 一个类可以实现多个无关的接口。 与继承关系类似,接口与实现类之间存在多态性。 定义Java类的语法格式: < modifier> class < name> [extends < superclass>] [implements < interface> [,< interface>]* ] { < declarations>* }

接口举例一 TestInterface/TestInterface00.java interface Singer { public void sing(); public void sleep(); } class Student implements Singer { private String name; Student(String name) {this.name = name;} public void study() {System.out.println("studying");} public String getName() {return name;} public void sing() {System.out.println("student is singing");} public void sleep() {System.out.println("student is sleeping");} TestInterface/TestInterface00.java

heap stack sing() sleep() s:xx code seg

heap stack sing() sleep() study() getName() name:”wangke” s:xx Student:study() Student:sleep() s:xx Student:sing() Student:getName() code seg code seg

接口举例二 interface Singer { public void sing(); public void sleep(); } interface Painter { public void paint(); public void eat(); class Student implements Singer { private String name; Student(String name) {this.name = name;} public void study() {System.out.println("studying");} public String getName() {return name;} public void sing() {System.out.println("student is singing");} public void sleep() {System.out.println("student is sleeping");}

接口举例二 TestInterface/TestInterface05.java class Teacher implements Singer,Painter { private String name; public String getString() { return name; } Teacher(String name) {this.name = name;} public void teach() {System.out.println("teaching");} public void sing() {System.out.println("teacher is singing");} public void sleep() {System.out.println("teacher is sleeping");} public void paint() {System.out.println("teacher is painting");} public void eat() {System.out.println("teacher is eating");} TestInterface/TestInterface05.java

heap stack sing() sleep() t:xx code seg code seg

heap stack sing() sleep() paint() eat() t:xx code seg code seg

heap stack sing() sleep() paint() eat() teach() getName() name:”wake” Teacher:sleep() Teacher:teach() Teacher:eat() t:xx Teacher:sing() Teacher:paint() Teacher:getName() code seg code seg

接口举例三 public class TestInterface { public static void main(String args[]){ Singer s = new Student(“linda"); s.sing(); s.sleep(); Singer t = new Teacher("steven"); // 将Teacher对象当作Singer来看 t.sing(); t.sleep(); Painter p = (Painter)t; //也可以将Teacher对象当作当作Painter来看 p.paint(); p.eat(); } TestInterface/TestInterface.java 输出结果: student is singing student is sleeping teacher is singing teacher is sleeping teacher is painting teacher is eating

heap stack sing() sleep() study() getName() name Singer:s1 code seg 站到s1的角度上只能看到sing、sleep方法 Student:study() Student:sleep() Singer:s1 Student:sing() Student:getName() code seg code seg

heap stack sing() sleep() paint() eat() teach() getName() name 站到s2的角度上只能看到sing、sleep方法 teach() getName() name Singer:s2 Teacher:sleep() Teacher:teach() Teacher:eat() Teacher:sing() Teacher:paint() Teacher:getName() code seg code seg

heap stack sing() sleep() paint() eat() teach() getName() name Painter:p1 Singer:s2 Teacher:sleep() Teacher:teach() Teacher:eat() Teacher:sing() Teacher:paint() Teacher:getName() code seg code seg

接 口 包java.lang中定义的一些接口 public interface Appendable public interface Cloneable public interface Comparable<T>

产生常量群 采用如下方法取用其值 Months.JANUARY interface Months { int JANUARY = 1, FEBRUARY = 2, MARCH = 3, APRIL = 4, MAY = 5, JUNE = 6, JULY = 7, AUGUST = 8, SEPTEMBER = 9, OCTOBER = 10, NOVEMBER = 11, DECEMBER = 12; } 采用如下方法取用其值 Months.JANUARY

数据成员初始化 TestInterface/RandVals/Test.java import java.util.*; Random rand = new Random(); int randomInt = rand.nextInt(10); long randomLong = rand.nextLong() * 10; float randomFloat = rand.nextLong() * 10; double randomDouble = rand.nextDouble() * 10; } public class Test { public static void main(String[] args) { System.out.println(RandVals.randomInt); System.out.println(RandVals.randomLong); System.out.println(RandVals.randomFloat); System.out.println(RandVals.randomDouble); TestInterface/RandVals/Test.java

名称冲突 interface CanFight{ void fight(); } class ActionCharacter{ public void fight() {}; class Hero extends ActionCharacter implements CanFight{ 编译通过

名称冲突 interface I { void f(); } class C { public int f() { return 1; } class C1 extends C implements I { public void f() { } 编译报错:C1 中的 f() 无法覆盖 C 中的 f();正在尝试使用不兼容的返回类型。

名称冲突 interface I1 { void f(); } interface I2 { int f(); interface I3 extends I1,I2 { 编译报错:I2 和 I1 不兼容;两者都定义了 f(),但却带有不相关的返回类型。

接口用法总结 通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系。(就像人拥有一项本领) 通过接口可以指明多个类需要实现的方法。(描述这项本领的共同接口) 通过接口可以了解对象的交互界面,而不需了解对象所对应的类。 使用接口?还是抽象类? interface同时赋予了接口和抽象类的好处 如果父类可以不带任何函数定义,或任何成员变量,那么优先使用接口。

回顾 编程语言的发展 面向过程的设计思想 面向对象的设计思想 对象和类的概念 类(对象)之间的关系 Java 类的定义(class) 引用的概念 对象的创建和使用 new 构造方法的概念 方法重载(overload) 构造方法重载 this 关键字 static 关键字 package 和 import 语句 类的继承(extends) 访问控制(private/default/proteced/public) 方法的重写(overwrite,override) super关键字 final关键字 Object类 toString equals 对象转型(upcasting/downcasting) 多态(polymorphism) 抽象类(abstract class) 接口(interface) implements