Java語言程序設(shè)計課件:04課ch04 EqDemo_第1頁
Java語言程序設(shè)計課件:04課ch04 EqDemo_第2頁
Java語言程序設(shè)計課件:04課ch04 EqDemo_第3頁
Java語言程序設(shè)計課件:04課ch04 EqDemo_第4頁
Java語言程序設(shè)計課件:04課ch04 EqDemo_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Ch04. EqDemoSystem.out.println(eq.equals(o);1 為什么不報錯?2 結(jié)果為什么和預(yù)期不符合?構(gòu)造方法 ch04.Employee一個新對象的初始化的最終步驟是去調(diào)用對象的構(gòu)造方法。構(gòu)造方法必須滿足以下條件:方法名必須與類名稱完全相匹配;不要聲明返回類型;不能被static、final、synchronized、abstract、native修飾。重載構(gòu)造方法 ch04.Employeepublic class Employee private String name; private int salary; public Employee(String

2、 n, int s) name = n; salary = s; public Employee(String n) this(n, 0); public Employee() this( Unknown ); Employee tom=new Employee(Tom,1000);Employee jack=new Employee(Jack);Employee someone=new Employee();構(gòu)造函數(shù)的調(diào)用 ch04.EmployeeEmployee e1=new Employee();Employee e2=new Employee(張三,1000);Employee e3

3、=new Employee(李四);構(gòu)造方法的語法規(guī)則ch04.Samplepublic class Sample int x; public void Sample() /這個不是構(gòu)造函數(shù) 因為void x=1; public static void main(String args) Sample s=new Sample(); System.out.println(s.x); 構(gòu)造方法如果調(diào)用了本類其他構(gòu)造方法,必須在第一句調(diào)用public Employee(String n) =n; public Employee() this( Unknown );System.o

4、ut.println(“沒名字”); /正確 如果:public Employee() System.out.println(“沒名字”); /錯誤 this( Unknown ); 默認構(gòu)造方法默認構(gòu)造方法是沒有參數(shù)的構(gòu)造方法,你可以顯式定義類的默認構(gòu)造方法。為了保證每個類至少有一個構(gòu)造方法,如果定義的類中一個構(gòu)造方法也沒有寫,Java將自動提供一個默認構(gòu)造方法。該構(gòu)造方法沒有參數(shù),用public 修飾,而且方法體為空。格式如下: public ClassName()只要類中顯式定義了一個或多個構(gòu)造方法,而且所有顯式定義的構(gòu)造方法都帶參數(shù),那么將失去默認構(gòu)造方法。默認構(gòu)造方法 ch04. S

5、ample3public class Sample2 public Sample2(int a)System.out.println(“My Constructor”);public class Sample3 public Sample3()System.out.println(“My Default Constructor”); Sample2 s2=new Sample2(); /非法Sample2 s22=new Sample2(1);Sample3 s3=new Sample3();子類調(diào)用父類構(gòu)造方法 superch04.SunFatherDemo調(diào)用自己的構(gòu)造函數(shù) this(xx

6、)調(diào)用父類的構(gòu)造函數(shù)super(xxx)每個構(gòu)造函數(shù)在開始以前,會默認的調(diào)用其父類的無參數(shù)構(gòu)造方法,除非這個類開始顯式的調(diào)用了其他的父類構(gòu)造函數(shù)。ch04.SunFatherDemo推論1:如果一個父類,顯式的聲明了構(gòu)造函數(shù),且沒有無參數(shù)構(gòu)造函數(shù),則其子類構(gòu)造函數(shù)的第一句必須顯示的調(diào)用父類的一個構(gòu)造函數(shù)(例子ch04.MySub)推論2:如果一個類,顯示的聲明了構(gòu)造函數(shù),且沒有無參數(shù)構(gòu)造函數(shù),則其子類必須顯式的聲明構(gòu)造函數(shù)(例子ch04.MySub2) 在構(gòu)造子類對象時,JVM會先調(diào)用父類的構(gòu)造方法子類構(gòu)造方法中通過super語句調(diào)用父類構(gòu)造方法如果子類構(gòu)造方法中沒有通過super語句調(diào)用父類

7、構(gòu)造方法,那么JVM會調(diào)用父類的默認構(gòu)造方法,如果不存在默認構(gòu)造方法,將導致編譯錯誤子類調(diào)用父類構(gòu)造方法關(guān)于importimport 精確的類名;import 包名;例如:import java.io.*;import java.io.IOException;任何引用的本包以外的類都要import java默認import java.lang.*;importimport a.*;不等于import a.b.*;import a.c.*;如果有2個類:a.b.c.C1a.b.C2import a.b.* 可以導入C2類但是無法導入C1import a.b.c.* 才可以導入C1Java.lan

8、g下面都有那些類?Integer Boolean String Double System除了這個類以外的類,都要importpublic boolean isOdd(int i) if(i%2=0) return true; if(i%2!=0) return false; /編譯錯誤,無返回值public boolean isOdd(int i) if(i%2=0) return true; elsereturn false; /編譯正確public boolean isOdd(int i) if(i%2=0) return true; if(i%2!=0) return false; r

9、eturn false;/編譯正確int i;int j=i;/ 錯誤沒有初始化遍歷數(shù)組的簡便寫法for(int i=0;ia.length;i+) System.out.pritln(ai);等價于:for (int x : a) System.out.println(x);修飾符修飾符的類型訪問控制修飾符(public,protected,private)static,abstract,final修飾符的修飾內(nèi)容(類,方法,變量)修飾符的作用使用修飾符的限制成員變量或成員方法的訪問控制 修飾符 同類 同包 子類 不同包 public 是 是 是 是protected 是 是 是 默認 是

10、是 private 是 static關(guān)鍵字-static變量帶有static類變量,否則成員(實例)變量。見ch04.Count.java靜態(tài)變量在裝載類的時候被分配內(nèi)存并初始化,類只能被裝載一次,所以靜態(tài)變量在內(nèi)存中只有一個拷貝實例變量在創(chuàng)建實例時被分配內(nèi)存并初始化,所以每個實例都有各自的實例變量同一個類的實例之間共享靜態(tài)變量靜態(tài)變量可以用類名.變量名訪問(Count.count),成員變量不行。static關(guān)鍵字-static方法用static修飾的方法叫類方法或靜態(tài)方法。否則叫示例方法,或者成員方法。靜態(tài)方法也和靜態(tài)變量一樣,不需創(chuàng)建類的實例,可以直接通過類名被訪問。靜態(tài)方法不能被修飾成protected和abstract。靜態(tài)方法中,不能訪問成員變量和成員方法見ch04. Wrongstatic關(guān)鍵字-靜態(tài)初始化程序用static修飾的程序段,會在類剛載入(沒有實例化)時候調(diào)用ch04. StaticInit類初始化的執(zhí)行順序 ch04.Ini

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論