




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Java275——認識Java第三章面向對象基礎目標:類和對象的關系;構造方法的特征和作用;對象創建的內存模型。學時:4學時教學方法:講授ppt+上機練習類和對象的關系面向對象的思想(
Object
Oriented
Programming,簡稱
OOP)面向對象的基本思想是,從現實世界中客觀存在的事物出發來構造軟件系統,并在系統的構造中盡可能運用人類的自然思維方式面向對象更加強調運用人類在日常的思維邏輯中經常采用的思維方法與原則面向對象的三個特征封裝繼承多態類和對象的關系面向對象與面向過程public
class
Icebox
{static
void
putThings(String
things){System.out.println("把冰箱門打開");System.out.println("把"+things+"放進來");System.out.println("把冰箱門關上");}}void
OpenIcebox(){printf(“把冰箱門打開\n");}void
PutElephantI(){printf(“把大象放冰箱\n");}void
CloseIcebox(){printf(“把冰箱們關上\n");}int
main(){OpenIcebox();PutElephantIn();CloseIcebox();}public
class
Mine
{public
static
void
main(String
args[]){Icebox.putThings("大象");}}面向對象面向過程Icebox.javaMine.javaputElephantBox.c類和對象的關系類的定義把相似的對象劃歸成一個類。在軟件設計中,類,就是一個模板,它定義了通用于一個特定種類的所有對象的屬性(變量)和行為(方法)。類和對象的關系類的定義[訪問權限控制符]class類名{類的成員…}修飾符一般為public,也可以沒有修飾符。注意類名的命名規范。類名一般大寫類的成員:成員變量(屬性)成員方法(方法)通過“.”調用屬性和方法類和對象的關系類的定義Employee.javaclass
Employee
{String
name;intage;
double
salary;public
String
showName(){System.out.println(name);returnname;}public
int
showAge(){System.out.println(age);returnage;}public
voidupdateName(String
name2){name=
name2;}public
void
getSalary(){System.out.println("The
salary
of
this
month
is
2000");}}屬性方法類和對象的關系類的定義?
練習
Person.java定義一個Person類,Person類具有名字、年齡及性別等屬性,并具有一個getInfo()方法可以打印出Person類的屬性,sayHello()方法和大家說“Hello
everybody!”PersonnameagesexgetInfo()sayHello()類和對象的關系類的定義?
練習
MyDate.java
定義一個點類MyDate,包含三個成員變量year、month、day分別表示年、月、日,以及每個屬性對應的get和set方法(如,
year有getYear()方法用來獲得日期的年份,還有setYear(inty)方法用來修改或設置日期的年份),最后還有printDate()方法,調用該方法可以把日期按照“yyyy-mm-dd”的形式輸出。Java中的關鍵字this關鍵字代表對象自身的引用一個引用指向調用該方法的當前對象通常在類的方法定義中使用用this關鍵字的情況方法中的變量與成員變量重名在一個構造方法中,調用其它重載的構造方法返回當前對象的引用示例
Dog.java類和對象的關系類和對象的關系類(class)
—是對某一類事物的描述對象(object)
—是實際存在的某類事物的個體,也稱為實例(instance)類是創建對象的模板,對象是類的實例。類和對象的關系對象的創建語法格式示例TestEmployee.java類名對象名=new
構造函數Employee
zhang
=
new
Employee(
)類和對象的關系對象的創建?
練習
TestPerson.java在TestPerson類里寫一個main方法,在main()方法中:創建一個Person類的對象這個對象的名字叫小沈陽,年齡28,性別男在控制臺中打印這個實例的信息并調用這個對象的sayHello()方法,向大家問好類和對象的關系對象的創建?
練習
TestDate.java在TestDate類里寫一個main方法,在main()方法中:創建一個MyDate類的對象
通過setXXX()將該日期對象的時間設置為“2009年12月25日”在控制臺上打印該對象的月份把該日期對象按“2009-12-25”的格式輸出類和對象的關系匿名對象創建完對象,在調用該對象的方法時,也可以不定義對象的句柄,而直接調用這個對象的方法。這樣的對象叫匿名對象使用匿名對象的情況如果對一個對象只需要進行一次方法調用newPerson().sayHello()Person
p1
=
new
Person();p1.sayHello();方法的重載方法的重載(overload)函數的重載就是在同一個區域內同名但參數(個數、類型或順序)不同的多個方法互為重載,與返回值類型無關。方法重載的規則函數名稱相同函數的參數必須不同參數個數不同
或
參數類型不同
或
參數順序不同函數的返回值類型可以相同,也可以不同方法的重載方法的重載(overload)FuncSum.java方法的重載?
練習下列選項中,哪些可以與void
setAge(int
year,int
month,int
day)方法在同一個類中定義
?A.
public
void
setAge()
{ B.
void
setAge(int
age)
{}
}C.
void
setAge(int
y,int
m,int
d){ D.
int
setAge(Date
d)
{}
}E.
int
setAge(int
year,int
month,int
day){}F.
void
setage(intyear,intmonth,int
dat){}答案:ABDF方法的重載?
練習
Person.java在上一個Person類的基礎上,完成以下功能:聲明一個有參的構造方法,使得通過調用該構造方法可以對Person類的三個成員變量進行初始化再聲明一個無參的構造方法,實現構造方法的重載PersonnameagesexgetInfo()sayHello()方法的重載?
練習MethodAdd.java在類MethodAdd中,聲明三個方法add,分別計算兩個整數的和三個整數的和、兩個雙精度浮點數(double)數的和,并在該類寫一個主程序中調用這個三個函數,并將其結果打印構造方法構造方法(構造函數/構造器,Constructor)與類同名有參數,經常重載不返回值通常是public的,但是private的也有意義不能直接調用,通過new調用在一個類中,具有上述特征的方法就是構造方法。構造方法的作用完成對象的創建,即完成對象的實例化一般使用構造方法來完成對成員變量的初始化示例
Employee.javaPersonnameagesexgetInfo()sayHello()構造方法構造方法普通方法普通方法構造方法public
void
Employee(){……}public
Employer(
){……}public
Employee
(Stringname,intage){……}publicEmployee(){……}構造方法默認的構造方法在Java中,每個類都至少要有一個構造方法,如果程序員沒有在類里定義構造方法,系統會自動為這個類產生一個默認的構造方法;一旦編程者為該類定義了構造方法,系統就不再提供默認的構造方法class
Employee{……public
Employee(
)
{}……}class
Employee{}構造方法?
練習下列關于類的定義的選項中,哪些可以通過new
Thing()方法來創建該類的一個對象
?A.
public
class
Thing
{B.
public
class
Thing
{publicThing()
{}}D.
public
classThing
{public
Thing(String
s)
{}}}C.
public
classThing
{public
Thing(void)
{}}E.
public
class
Thing
{
public
void
Thing()
{}public
Thing(String
s)
{}}答案:A、B構造方法?
練習給定下列代碼的執行結果是
?public
class
A{void
A()
{System.out.println(“Class
A”);}public
static
void
main(String[]
args)
{new
A();}}A.
Class
AC.
編譯錯誤B.
在第2行處拋出異常D.
在第6行處拋出異常E.
代碼執行后沒有輸出答案:E對象創建的內存模型0x30000x80000x3000nameageheight“lisi”441.74……“zhang”331.73nameageheightPerson
qPerson
p0x8000引用類型變量的內存模型Personp=newPerson(
“zhang”,
33,1.73);Personq=newPerson(
“lisi”,
44,
1.74);對象創建的內存模型引用類型變量除了8種基本數據類型的變量,其他變量都是引用類型變量類(class)接口(interface)數組Person
p
;Animala;int[
]
c
;對象創建的內存模型0x8000“lisi”441.74Person
p0x8000nameageheightPerson
p
=
new
Person(“lisi”,
44,1.74);引用類型變量的內存模型程序執行過程硬盤程序.java編譯.class
文件內存③執行過程中的內存管理代碼JVM系統代碼stackheapdatasegmentcodesegment基本數據類型變量引用類型變量地址引用變量靜態變量常量存放代碼Java代碼在系統中的執行過程垃圾回收機制垃圾回收器(GC,Garbage
Collection)Java的一個重要特點句是具有一個垃圾回收器,并且能夠自動回收垃圾,這也是Java相對于其他語言有優勢的地方對內存的釋放和回收的工作是由Java運行系統(JRE)承擔的,不用編程者關注在Java程序運行過程中,一個垃圾回收器會不定時地被喚起檢查是否有不再被使用的對象,并釋放它們所占用的內存空間垃圾回收器的啟用不由程序員控制,也無規律可循垃圾回收機制垃圾回收機制—System.gc()、nullJava里提供了一個System.gc()方法,使用這個方法可以建議垃圾回收器回收垃圾在Java中,可以通過將對象的引用變量設置為null,來暗示垃圾回收器來回收cl該ass對Em象ployee{String
name;int
age;double
salary;publicstaticvoidmain(Stringargs[]){Employeee=
newEmployee();e
=
null;System.gc();System.out.println(“The
program
is
end”);}}垃圾回收機制后臺線程主線程Object
o2
=
new
Object(
);o2
=
null;Object
o1
=
new
Object(
);o1objectThe
heap檢查出對象沒有引用指向調用o2對象的finalize()方法垃圾回收機制回收分配給該對象的內存垃圾回收采用Java多線程機制o2object×垃圾回收機制垃圾回收機制?
練習什么時候程序會銷毀一個對象x
?A.
x.delete()B.
x.finalize()C.
System.gc()D.
設置對象的引用為nullF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 沙漠游記題目及答案解析
- 2023-2024學年山東省部分學校高二下學期期末聯合教學質量檢測數學試卷(解析版)
- 2023-2024學年湖北省十堰市高二下學期6月期末調研考試數學試卷(解析版)
- 2024-2025學年浙江省嘉興市高二上學期期末考試語文試題(解析版)
- 店面房屋租賃協議-房屋店面租賃合同模板-店面房屋租賃協議
- 高層建筑結構試題庫
- 高中語文選擇性必修下冊8《茶館》課件(32張課件)
- 飲酒檢討書范文
- 口服保肝藥講課件
- 佛山校園封閉管理制度
- DB62T 3081-2022 綠色建筑工程驗收標準
- 河北大學《民法學》2023-2024學年第二學期期末試卷
- 2025年全球視域下的中國文化試題及答案
- 食品供應商協議合同模板
- 揚州市儀征市2024-2025學年三下數學期末質量檢測試題含解析
- 口服給藥安全警示教育
- 黃金飾品購銷合同(2025版)
- 2025年廣西南寧市中考一模地理試題(含答案)
- 廣東省深圳市31校2025年中考物理一模試卷(含答案)
- 2025年河北雄安友信能源技術服務有限公司招聘筆試參考題庫含答案解析
- 云南開放大學水利工程材料與檢測作業1-3
評論
0/150
提交評論