




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、類中方法的使用一個類中肯定會有多個方法class string name; int age; void say () system.out.println(hello); void print() say(); public class oodemo01 public static void main (string args) person p=new person (); p.print(); 我們發現print()方法調用了say()方法,類中的方法確實可以相互調用哈class person string name; int age; void say () system.out.pri
2、ntln(hello); void print() /如果特別想表示是在本類中的方法,我們可以在前面加上this. this.say(); public class oodemo01 public static void main(string args) person p=new person(); p.print(); 程序執行效果一樣哈我們看一下一個練習題哈,找出程序中的錯誤,并將錯誤改正哈對象沒有被實例化就直接使用了,則肯定在運行的時候會出現錯誤 nullpointerexception。這樣就ok了封裝用我們上次類似的程序例子哈:我們發現程序執行正常哈我們看下不加封裝的時候程序的效果
3、:這個程序從語法上來說沒有任何錯誤。可以我年齡不可以是-26哈造成這種笑話的根本原因在于屬性對外部直接可見了。此時就只有加上封裝進行操作。一個屬性前面加上了private則此屬性對外部就不可見了。即:外部是不能直接訪問的。java ee(j2ee)原則:對于封裝的屬性的設置和取得必須通過setter和getter方法,而且這兩個方法也有自己的嚴格的命名要求。/命名要求哈private string name; public void setname(string n) name=n; public string getname() return name; 我們通過setter和getter方
4、法,兩個值確實賦值上去了哈 但是不符合常理的值沒有受到檢查哈。setter是入口。getter是出口,應該在setter方法處檢查。而getter方法只是將值簡單的返回。我們接著往下看哈我們發現年齡賦的-26判斷為非法年齡了哈。如果我們賦值年齡是正26呢?ok,輸出了正常的年齡哈,這就是加入封裝后的好處哈加入封裝之后,所有的操作都是通過方法的調用完成的。構造方法什么叫構造方法? 構造方法定義:構造方法是為類中的屬性初始化的。回顧: 對象產生的格式:類名稱 對象名稱 = new 類名稱() ; 其中類名稱() 就表示調用的構造方法一個類在使用時肯定至少擁有一個構造方法,如果在類中沒有聲明構造方法
5、,則肯定會自動生成一個無參的什么都不做的構造方法。在這種情況下,程序會出錯嗎?我們驗證一下哈發現程序執行正常哈效果一模一樣,說明確實生成了這樣一種構造方法。構造方法的定義及使用我們發現聲明對象時,構造方法有沒有被調用哈,執行效果說明沒有被調用哈我們加一行代碼p=new person();將對象實例化現在我們看下效果,確實構造方法被調用了改進程序: 使用構造方法為類中的屬性初始化。我們驗證一下:我們發現一個錯誤找不到構造函數person(),程序咋找無參的構造函數person(),我們分析一下哈我們發現上面我們定義了一個無參構造函數哈回顧: 如果一個類中沒有明確聲明任何一個構造方法,則肯定自動生
6、成一個無參的什么都不做的構造方法,相反如果一個類中已經明確的聲明了一個構造方法,則不會再自動生成構造,也就是說一個類中至少保持有一個構造方法。如果我們一定要使用person p=new person();我們可以在person類中再定義一個無參的構造方法,現在person類中有兩個構造方法,其中參數的個數和類型不同,這種情況叫做構造方法的重載。我們繼續改進我們的程序哈,調用我們定義的構造方法我們看下效果,和剛才的輸出也是一模一樣哈但是此程序中有一個缺陷,我們在定義時年齡給個-26哈:程序執行下看一下效果:程序提示非法年齡,為什么?因為我們在程序中定義了一個三目運算檢測年齡賦值是否合法。但是我們
7、所賦的年齡值-26有沒在程序中進行運算?確實進行運算了哈,因為程序中age=a;已經進行賦值運算了哈所以說我們的構造方法中沒有進行檢測而讓屬性直接進行賦值了哈而segage()方法中有檢測數據是否合法哈我們看下效果,的確年齡取值是-1了哈通過構造方法為屬性初始化的時候,最好也經過setter方法完成。構造方法的使用要求匿名對象:只使用一次的對象。new person(王乾,26) 本身就是一個實例化對象,只是之前我們將這個對象給了一個對象名字。因為現在沒有任何的對象名稱指向它,所以使用一次之后就會等待被回收了。匿名對象使用:有些時候需要為一些其他的類實例化的時候使用匿名對象。下面我們做一個練習
8、題哈,鞏固一下所說的知識:程序代碼:class employee /員工號 private string empno; /姓名 private string name; /薪水 private float salary; /部門 private string dept; /無參的構造方法一般都是寫在第一個哈 public employee() public employee(string no) this.setempno(no); this.setname(無名氏); this.setsalary(0.0f); this.setdept(未定); public employee(string
9、 no,string na) this.setempno(no); this.setname(na); this.setsalary(1000.0f); this.setdept(后勤); public employee(string no,string na,float sa,string d) this.setempno(no); this.setname(na); this.setsalary(sa); this.setdept(d); /顯示信息 public void showmsg() system.out.println(員工信息為:); system.out.println(t
10、|- 員工號:+empno); system.out.println(t|- 姓名:+name);system.out.println(t|- 薪水:+salary); system.out.println(t|- 部門:+dept); /代碼之后必須有setter和getter public void setempno(string a) empno=a; public void setname(string n) name=n; public void setsalary(float s) if (s=0.0f) salary=s; public void setdept(string d) dept=d; public string getempno() return empno; public string getname() return name; public float getsalary() return salary; public string getdept() return dept; /主類 public class oodemo10 pub
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車間燈具維修方案(3篇)
- 舊城設施改造方案(3篇)
- 社區窗簾改造方案(3篇)
- 高空吊橋維修方案(3篇)
- 庭院樹木修剪方案(3篇)
- 樓面破裂修補方案(3篇)
- 生殖健康培訓課件
- 情知識培訓方案(3篇)
- 商場應急支援方案(3篇)
- 浙江音樂學院《分子生物學專題》2023-2024學年第二學期期末試卷
- 國際法學(山東聯盟)知到智慧樹章節測試課后答案2024年秋煙臺大學
- 農產品安全生產技術與應用
- 中國特色社會主義理論體系的形成的歷史條件
- 環境藝術設計專業職業生涯規劃
- 2024-2025學年陜西省西安市雁塔區高新一中七年級(上)期中數學試卷
- 《西方經濟學(本)》形考任務(1-6)試題答案解析
- 《消防應急疏散培訓》課件
- 分公司特種設備使用安全風險日管控、周排查、月調度管理制度特種設備安全風險管控清單記錄表等
- 甲狀腺癌手術治療護理查房
- 2024-2030年中國礦用錨桿行業發展現狀需求分析報告
- 護士角色轉換與適應
評論
0/150
提交評論