java面向对象ppt_java面向对象课件
PPT內容
這是java面向對象課件,包括了類和對象的關系,構造方法,對象創建的內存模型,Java中的關鍵字等內容,歡迎點擊下載。
第三章??? 面向對象基礎
本章要點
類和對象的關系
面向對象的思想
子類實例化的過程
對象的創建
構造方法
變量的初始化順序
對象創建的內存模型
垃圾回收機制
Java中的關鍵字
this關鍵字
static關鍵字
主要內容
類和對象的關系
面向對象的思想( Object Oriented Programming,簡稱OOP)
面向對象的基本思想是,從現實世界中客觀存在的事物出發來構造軟件系統,并在系統的構造中盡可能運用人類的自然思維方式
面向對象更加強調運用人類在日常的思維邏輯中經常采用的思維方法與原則
面向對象的三個特征
封裝
繼承
多態
類和對象的關系
面向對象與面向過程
類和對象的關系
類的定義
把相似的對象劃歸成一個類。
在軟件設計中,類,就是一個模板,它定義了通用于一個特定種類的所有對象的屬性(變量)和行為(方法)。
類和對象的關系
類的定義
?西游記游戲軟件中的游戲人物
孫悟空:孫悟空的武器是金箍棒,戰斗力五顆星,耐力五顆星
唐? 僧:唐僧沒有武器,戰斗力為零,耐力五顆星
豬八戒:豬八戒的武器是耙子,戰斗力四顆星,耐力兩顆星
沙? 僧:沙僧的武器是月牙鏟 ,戰斗力三顆星,耐力四顆星
類和對象的關系
類的定義
修飾符一般為public,也可以沒有修飾符。
注意類名的命名規范。類名一般大寫
類的成員:
成員變量(屬性)
成員函數(方法)
通過“.”調用屬性和方法
類的完全聲明形式
[public] [abstract | final] class 類名稱
[extends 父類名稱]
[implements 接口名稱列表]
{
變量成員聲明及初始化;
方法聲明及方法體;
}
變量聲明格式
[public | protected | private]
[static][ final][transient] [volatile]
變量數據類型? 變量名1[=變量初值],
變量名2[=變量初值], … ;
格式說明
public、protected、private 為訪問控制符
static指明這是一個靜態成員變量
final指明變量的值不能被修改
transient指明變量是臨時狀態
volatile指明變量是一個共享變量
格式說明
方法修飾
public、protected、private 為存取控制符
static指明方法是一個類方法
final指明方法是一個終結方法
abstract指明方法是一個抽象方法
native用來集成java代碼和其它語言的代碼
synchronized用來控制多個并發線程對共享數據的訪問
方法調用
給對象發消息意味著調用對象的某個方法
從對象中取得信息
修改對象的狀態或進行某種操作
進行計算及取得結果等
調用格式
.([參數列表])
稱點操作符“.”前面的為消息的接收者(receiver)
參數傳遞
值傳遞:參數類型為基本數據類型時
引用傳遞:參數類型為對象類型或數組時
訪問修飾符
訪問修飾符
訪問修飾符可訪問性
類和對象的關系
類的定義
Employee.java
類和對象的關系
類的定義
?? 練習????? Person.java
定義一個Person類,Person類具有名字、年齡及性別等屬性,并具有一個getInfo( )方法可以打印出Person類的屬性, sayHello()方法和大家說“Hello everybody!”
類和對象的關系
類的定義
?? 練習????? Point.java
定義一個點類Point,包含兩個成員變量x、y分別表示x和y的坐標,一個movePoint(int dx,int dy)方法實現點的位置的移動。
public class Point{
int x,y;
void? movePoint(int dx,int dy){
x=dx;??? y=dy;
}
}
類和對象的關系
類的定義
?? 練習????? MyDate.java
定義一個點日期MyDate,包含三個成員變量year 、month、day分別表示年、月、日,以及每個屬性對應的get和set方法(如,year有getYear( )方法用來獲得日期的年份,還有setYear(int y)方法用來修改或設置日期的年份),最后還有printDate()方法,調用該方法可以把日期按照“yyyy-mm-dd”的形式輸出。
類和對象的關系
類和對象的關系
類(class) — 是對某一類事物的描述
對象(object) — 是實際存在的某類事物的個體,
也稱為實例(instance)
類是創建對象的模板,對象是類的實例。
類和對象的關系
對象的創建
語法格式
示例
TestEmployee.java
類和對象的關系
對象的創建
?? 練習????? TestPerson.java
在TestPerson類里寫一個main方法,在main( )方法中:
創建一個Person類的對象
這個對象的名字叫小沈陽,年齡28,性別男
在控制臺中打印這個實例的信息
并調用這個對象的sayHello( )方法,向大家問好
類和對象的關系
對象的創建
?? 練習???? TestPoint.java
在TestPoint類里寫一個main方法,在main( )方法中:
創建一個Point類的對象
這個點的坐標是(3,2)
將這個點移動到坐標為(5,6)的位置
并把移動后的點的坐標按“(x,y)”形式打印在控制臺上
類和對象的關系
對象的創建
?? 練習???? TestDate.java
在TestDate類里寫一個main方法,在main( )方法中:
創建一個MyDate類的對象
通過setXXX方法將該日期對象的時間設置為“2013年10月8日”
在控制臺上打印該對象的月份
把該日期對象按“2013-10-8”的格式輸出
類和對象的關系
匿名對象
創建完對象,在調用該對象的方法時,也可以不定義對象的句柄,而直接調用這個對象的方法。這樣的對象叫匿名對象
使用匿名對象的情況
如果對一個對象只需要進行一次方法調用
Contents
構造方法
構造方法(構造函數/構造器,Constructor)
具有與類相同的名稱
不含返回值類型
不能在方法中用return語句返回一個值
一般訪問權限為public
在一個類中,具有上述特征的方法就是構造方法。
構造方法的作用
完成對象的創建,即完成對象的實例化
一般使用構造方法來完成對成員變量的初始化
示例?? TestPerson.java
構造方法
默認的構造方法
在Java中,每個類都至少要有一個構造方法,如果程序員沒有在類里定義構造方法,系統會自動為這個類產生一個默認的構造方法
一旦編程者為該類定義了構造方法,系統就不再提供默認的構造方法
構造方法
構造方法
構造方法
類和對象的關系
?? 練習?????? XiyoujiRole.java
構造一個完整的西游記人物類,并定義一個構造方法,通過這個方法可以創建不同的西游記人物,并寫一個main函數進行驗證。
孫悟空:孫悟空的武器是金箍棒,戰斗力五顆星,耐力五顆星
唐??? 僧:唐僧沒有武器,戰斗力為零,耐力五顆星
豬八戒:豬八戒的武器是耙子,戰斗力四顆星,耐力兩顆星
沙?? 僧:沙僧的武器是月牙鏟 ,戰斗力三顆星,耐力四顆星
方法的重載
方法的重載(overload)
函數的重載就是在同一個類中允許同時存在一個以上同名的函數
方法重載的規則
函數名稱相同
函數的參數必須不同
參數個數不同?? 或
參數類型不同
函數的返回值類型可以相同,也可以不同
方法的重載
方法的重載(overload)
方法的重載
方法的重載
?? 練習????? Person.java
在上一個Person類的基礎上,完成以下功能:
聲明一個有參的構造方法,使得通過調用該構造方法可以對Person類的三個成員變量進行初始化
再聲明一個無參的構造方法,實現構造方法的重載
方法的重載
?? 練習? MethodAdd.java
在類MethodAdd中,聲明三個方法add,分別計算
兩個整數的和
三個整數的和、兩個雙精度浮點數(double)數的和,
并在該類寫一個主程序中調用這個三個函數,
并將其結果打印
Contents
對象創建的內存模型
引用類型變量
除了8種基本數據類型的變量,其他變量都是引用類型變量
類(class)
接口(interface)
數組
對象創建的內存模型
對象創建的內存模型
變量的作用域
變量的作用域
全局變量
類體中聲明的成員變量為全局變量
全局變量在類的整個生命周期中都有效
局部變量
方法體中聲明的變量,方法中的參數,或代碼塊中聲明的變量,都是局部變量
局部變量只在方法調用的過程中有效,方法調用結束后失效
變量的作用域
變量的作用域
變量的作用域
變量初始化的順序
隱式賦予變量默認值
成員變量
顯式賦予初始值
通過構造方法體賦予新值
示例??? PersianCat.java
變量的作用域
程序執行過程
補充:參數傳值
當方法被調用時,如果方法有參數,參數必須要實例化,即參數變量必須有具體的值。
public class Date???????????????????? //類聲明
{
int year,month,day;??????????????? //成員變量,表示年、月、日
void setDate(int y,int m,int d)??? //成員方法,設置日期值
{????????????????????????????????? //無返回值,有4個參數
year = y;
month = m;
day = d;
}
public static void main(String args[])
{
Date1 aday = new Date1() ;???? //創建對象
aday.setDate(2013,9,28);?????? //調用類方法
}
}
1.基本數據類型參數的傳值——值
這種數據傳遞方式被稱為是值傳遞,方法接收參數的值,但不能改變這些參數的值。
class People {
String face;
void setFace(String s) {
face = s;
}
}
class C {
void f(int x, double y, People p) {
x = x + 1;
y = y + 1;
p.setFace("笑臉");
System.out.println("參數x和y的值分別是:" + x + "," + y);
System.out.println("參數對象p的face是:" + p.face);
}
}
public class Ep4_8 {
public static void main(String args[]) {
int m = 100;
double n = 100.88;
People zhang = new People();
zhang.setFace("很嚴肅的樣子");
C a = new C();
a.f(m, n, zhang);
System.out.println("main方法中m和n的值仍然分別是:" + m + "," + n);
System.out.println("main方法中對象zhang的face是:" + zhang.face);
}
}
補充內容——對象數組
在Java中不但可以聲明由原始數據組成的數組,還可以聲明由對象組成的數組;
聲明對象數組的方式如:
對象數組==引用數組
對象數組示例
對象數組的存放形式
垃圾回收機制
垃圾回收器(GC, Garbage Collection)
Java的一個重要特點句是具有一個垃圾回收器,并且能夠自動回收垃圾,這也是Java相對于其他語言有優勢的地方
對內存的釋放和回收的工作是由Java運行系統(JRE)承擔的,不用編程者關注
在Java程序運行過程中,一個垃圾回收器會不定時地被喚起檢查是否有不再被使用的對象,并釋放它們所占用的內存空間
垃圾回收器的啟用不由程序員控制,也無規律可循
垃圾回收機制
垃圾回收機制 — System.gc( )、null
Java里提供了一個System.gc( )方法,使用這個方法可以建議垃圾回收器回收垃圾
在Java中,可以通過將對象的引用變量設置為null,來暗示垃圾回收器來回收該對象
垃圾回收機制
垃圾回收機制
Contents
Java中的關鍵字
this關鍵字
代表對象自身的引用
一個引用
指向調用該方法的當前對象
通常在類的方法定義中使用
用this關鍵字的情況
方法中的變量與成員變量重名
在一個構造方法中,調用其它重載的構造方法
返回當前對象的引用
成員變量和局部變量
Java中的關鍵字
static關鍵字
static可以修飾的元素
屬性
方法
代碼塊
需要注意的問題
只能修飾類成員,不能修飾局部變量。
Java中的關鍵字
static修飾的變量 — 靜態變量
所有對象共享
也稱為類變量
用static修飾的成員變量,它們在類被載入時創建,只要類存在,static變量就存在
兩種方式訪問:
直接訪問:類名.屬性;
實例化后訪問:對象名.屬性
Java中的關鍵字
static變量的內存模型
Java中的關鍵字
?? 練習???? Person.java
在Person類中添加一些代碼,使其可以統計在整個使用過程中一共產生了多少個Person類的實例對象
提示:利用static修飾的變量
Java中的關鍵字
static修飾的方法 — 靜態方法
不需要實例化,可以直接訪問
也稱為類方法
兩種方式訪問:
直接訪問:類名.方法名()
實例化后訪問:對象名.方法名()
static方法的作用
簡化方法的使用;
便于訪問靜態屬性;
注意事項
靜態方法里只能直接訪問靜態成員,而不能直接訪問類中的非靜態成員
靜態方法中不能使用this、super關鍵字
靜態方法不能被非靜態方法覆蓋,靜態方法不能修飾構造方法
Java中的關鍵字
static修飾的代碼塊 — 靜態代碼塊
一個類中由static關鍵字修飾的,不包含在任何方法體中的代碼塊
當類被載入時,靜態代碼塊被執行,且只被執行一次
靜態塊經常用來進行類屬性的初始化
Java中的關鍵字
?? 練習
總 結
類和對象的關系
如何定義類
對象的創建
構造方法
如何定義構造方法
方法的重載
對象創建的內存模型
引用類型變量
變量的初始化
垃圾回收機制
Java中的關鍵字
this關鍵字
static關鍵字
相關PPT
《java面向對象課件》是由用戶礙人心于2017-08-06上傳,屬于課件PPT。
總結
以上是生活随笔為你收集整理的java面向对象ppt_java面向对象课件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 西门子S7 200smart与欧姆龙E5
- 下一篇: jpg转换成PDF转换器最新版