版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面向?qū)ο蟪绦蛟O(shè)計(jì)期末考試范圍面向?qū)ο蟛糠譃橹鰿hapter 8, 10, 11, 13, 14時(shí)間2小時(shí),英文題目,熟記每章后面的英文術(shù)語( Key Terms變量和方法變量、方法,如:變量的申明:數(shù)據(jù)類型 變量名int a;方法的申明:返回類型 方法名(參數(shù)列表)語句int add(int a, int b), void setParameter(int a, int b), 注意大小寫main方法main方法是一個(gè)特殊的方法,是程序運(yùn)行的入口main方法的形式是固定的。public static void main(String args) /String args int a = 10;
2、int b = 12;int sum = a + b;Java程序構(gòu)成Java是一種完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,程序中不允許單獨(dú)出現(xiàn)任何方法類是構(gòu)成Java程序的基本單位,也就是說,前面出現(xiàn)的變量、方法 都必須申明在類的內(nèi)部。這些變量和方法稱為類的成員變量(屬性,Attribute)和成員方法(Method),統(tǒng)稱為類的成員(Member)。一個(gè)Java程序可以包含多個(gè)類,這些類可以封裝在不同的包中Java類申明類的語法規(guī)則修飾符class類名變量的申明成員變量(屬性)方法的申明成員方法)申明成員變量和申明成員方法的次序無關(guān)一個(gè)類可以同時(shí)申明多個(gè)成員變量和成員方法,也可以不申明任何變量或者方法
3、,這些都是合法的。在方法的內(nèi)部也可以申明變量,這樣的變量稱為局部變量。Java類舉例public class Person屬性:name、age、gender方法:setName方法:getNameJava程序舉例綜合以上知識(shí),我們將前面的 main方法申明為類Test的一個(gè)成員:public class Testpublic static void main(String args)int a = 10; /變量a是一個(gè)局部變量int b = 12;int sum = a + b;習(xí)慣:類名首字母大寫,變量/方法名首字母小寫數(shù)據(jù)類型簡(jiǎn)單數(shù)據(jù)類型:如int類也是一種數(shù)據(jù)類型,稱為引用數(shù)據(jù)類型(
4、復(fù)雜數(shù)據(jù)類型,referencetype)。因此以下變量和方法的申明都是正確的:int a = 10;Person p;Test b;Person getPerson() 我們有時(shí)候也將類稱為類型,如變量p的類型為Person類型,注意:這時(shí)候程序中必須已經(jīng)申明了 Person類,否則將產(chǎn)生錯(cuò)誤。Java程序舉例class Person public class Testpublic static void main(, )int a = 10; /變量a是一個(gè)局部變量int b = 12;int sum = a + b;Person p;該Java程序由Person和Test兩個(gè)類構(gòu)成自定義
5、類和預(yù)定義類Java已經(jīng)預(yù)先定義了很多類,這些類稱為預(yù)定義類如:String與此相對(duì)應(yīng),由我們自己定義的類則稱為自定義類,如前面的Person類和Test類如前面所說,類是一種數(shù)據(jù)類型。因此,無論是預(yù)定義類還是自定義類,在程序中我們都可以用它們來申明變量的數(shù)據(jù)類型、或者作為方法的返回類型。Java類舉例public class PersonString name;int age;public void setName(String str) public String getName()return name;Java源程序源程序保存在后綴名為.java的文件中。一個(gè)Java源文件可以同時(shí)包含
6、多個(gè)類的申明,但是其中最多只能有一個(gè)用public修飾的類,即公有類。源文件的名稱必須和公有類的名稱相一致,包括大小寫舉例:Hello.javapublic class Hellopublic static void main(String args)System.out.println( Hello World!” );對(duì)象的創(chuàng)建對(duì)象是類的實(shí)例假設(shè)程序中申明了 Person類,那么我們就可以在程序的任何地方創(chuàng)建任意的Person類的實(shí)例,即Person類型的對(duì)象對(duì)象創(chuàng)建的語法形式:new類名(,);括號(hào)中是否有參數(shù),要依據(jù)構(gòu)造方法比如:new Person();Person 類public
7、class PersonString name;int age;public void setAge(int a)age = a;public int getAge()return a;對(duì)象的存在形式對(duì)象存在于內(nèi)存(堆,heap)0 x3A5C對(duì)象的引用對(duì)象由相應(yīng)類型的變量引用,如:Person pl = new Person();Person p2 = new Person();nameageQx3A5c對(duì)象的操作語法形式:對(duì)象.成員,如:p1.setAge(18);p2.setAge(29);nameage0 x3 A 5c必須是對(duì)象.成員,不能是類.成員,除非該成員是static修飾的P
8、erson.setAge(20) Error關(guān)于方法調(diào)用如方法有返回類型,則必須使用return語句,返回的值必須與返回類型匹配void返回類型可以沒有return語句,也可以包含一個(gè)沒有值的return 語句public class Personint age;public void setAge(int a)age = a;return;構(gòu)造方法(ConstructorJava中的每個(gè)類都有構(gòu)造方法,構(gòu)造方法具有和類名相同的名稱(包括大小寫),而且無任何返回值(包括 void)。構(gòu)造方法一般對(duì)成員變量賦一些初值;如果一個(gè)類沒有聲明構(gòu)造方法,Java自動(dòng)為該類生成一個(gè)默認(rèn)的無參的構(gòu)造方法,并
9、且該默認(rèn)構(gòu)造方法的內(nèi)容為空。即,Java類可以通過兩種方式獲得構(gòu)造方法使用系統(tǒng)默認(rèn)的無參構(gòu)造方法顯式定義一個(gè)或多個(gè)構(gòu)造方法一旦顯式定義了構(gòu)造方法,系統(tǒng)不再提供默認(rèn)構(gòu)造方法一個(gè)類至少有一個(gè)構(gòu)造方法,可以有多個(gè)構(gòu)造方法,根據(jù)參數(shù)的不同決定執(zhí)行哪一個(gè)(重載)Perso讀public class PersonString name;int age;public Person() / 構(gòu)造方法public void setAge(int a)age = a;public int getAge()return a;引用數(shù)據(jù)類型8種基本數(shù)據(jù)類型int long short boolean char doub
10、le float byte除此以外的數(shù)據(jù)類型稱為引用類型引用類型數(shù)據(jù)以對(duì)象的形式存在引用類型變量的值是某個(gè)對(duì)象的句柄(對(duì)象在內(nèi)存中的地址),而不是 對(duì)象本身聲明引用類型變量時(shí),系統(tǒng)只為該變量分配引用空間,并未創(chuàng)建一個(gè) 具體的對(duì)象,引用類型可賦值為null類中的變量屬性變量(成員變量):在方法體外定義的變量,是類的成員,可以是 基本類型、引用類型甚至是類本身,只要對(duì)象存在其屬性變量就存在。作用域:類。局部變量:在方法體內(nèi)定義的變量,也稱為 stack variable,作用域: 方法。方法執(zhí)行時(shí)存在,方法執(zhí)行完畢后消失局部變量在使用前必須進(jìn)行初始化,而屬性變量可以不需要顯式進(jìn)行初始化,因?yàn)樵趧?chuàng)建
11、對(duì)象時(shí)會(huì)進(jìn)行默認(rèn)的初始化。舉例:MyDate類public class MyDate private int day = 12;private int month = 6;private int year = 1900;public Mydate(int d, int m, int y) year = y;month = m;day = d;public void display() System.out.println(year + / + month + / +day);public static void main(String args) MyDate m;m = new MyDate
12、(22, 9, 2001); m.display();)對(duì)象的構(gòu)造和初始化(1)為引用類型變量分配引用空間MyDate m;m null創(chuàng)建新對(duì)象-首先為新對(duì)象分配內(nèi)存空間,并進(jìn)行屬性(實(shí)例變量)的默認(rèn)初始化,newday mnull month year對(duì)象的構(gòu)造和初始化(2)Java引用類型成員變量默認(rèn)初始化原則成員中呈至耳物侑忡。0short0Ifit0longOLU1000TfloatOOFdoubleO.gboceontai所有中瞅里nnull對(duì)象的構(gòu)造和初始化(3)進(jìn)行屬性(成員變量)的顯式初始化,顯式初始化取值來自于類的定義中屬性聲明部分private int day = 12;
13、private int month = 6;private int year = 1900;m null對(duì)象的構(gòu)造和初始化(4)執(zhí)行構(gòu)造方法public Mydate(int y, int m, int d) year = y;month = m;day = d;new MyDate(22, 9, 2001);innull對(duì)象的構(gòu)造和初始化(5)為引用類型變量m賦值m = new MyDate(22, 9, 2001);0 xja4-Sb封裝類Java編程語言提供wrapper類來操作作為對(duì)象的原始數(shù)據(jù)元素。每個(gè)Java原始數(shù)據(jù)類型在java.lang包中具有相應(yīng)的 wrapper類。使用wr
14、apper類的示例:int pInt = 420;Integer wInt = new Integer(pInt);/ this is called boxingint p2 = wIValue();/ this is called unboxing自動(dòng)裝箱與開箱Integer intArray - new Integer (2), Eqm 虱 ctI integer intArray - i2r 3);new Integer (4) , new Integer 3);Integer i = 3;不僅限于Integer,所有 wrapper類都可以O(shè)bject o = 3, fal
15、se); / 合法轉(zhuǎn)換Integer integerObject = Integer.valueOf(12);int number = Integer.parseInt (12);注:Integer.parseInt (“xyz”)編譯時(shí)沒問題,但運(yùn)行時(shí)會(huì)異常訪問權(quán)限(Permission)Public; Protected;缺省(default); privateModifier on members in a classAccessed from the same classAccessedAccessedfrom thefrom asame package subclassAccesse
16、d from a different packagepublicVprotectedMMdefaultprivateM數(shù)組數(shù)組由一組相同類型的元素構(gòu)成元素的個(gè)數(shù)稱為數(shù)組的長(zhǎng)度,通過數(shù)組下標(biāo)訪問元素,下標(biāo)0代表第一個(gè)元素?cái)?shù)組是一個(gè)對(duì)象,數(shù)組類型屬于引用數(shù)據(jù)類型,可賦值為 null.數(shù)組的申明和創(chuàng)建數(shù)組的申明inta;或int a;Point p;或Point p;數(shù)組對(duì)象必須通過他w關(guān)鍵字創(chuàng)建數(shù)組的初始化mtn a = 1,2, 3,4, 5);Point口 p = newPointfljl), new Point(2,2);StringQ users = “John”, “Mary”;參數(shù)傳遞
17、1基本變量傳值,引用變量傳地址class MyDate private int day;private int month;private int year;public MyDate(int d,int m,int y)day = d; month = m; year = y;public void setDay(int d) day = d; public void setMonth(int m) month = m; public void setYear(int y) year = y; public int getDay() return day; public int getMon
18、th() return month; public int getYear() return year;public void display()System.out.println(day + - + month + - + year);參數(shù)傳遞2基本變量傳值,引用變量傳地址public class Examplepublic static void main(String args)Example ex = new Example();int date = 9;MyDate d1= new MyDate(7,7,1970);MyDate d2= new MyDate(1,1,2000);e
19、x.change1(date);ex.change2(d1);ex.change3(d2);System.out.println(date= + date);d1.display();d2.display();public void change1(int i)i = 1234;public void change2(MyDate b)b = new MyDate(22,2,2004);public void change3(MyDate b)b.setDay(22);參數(shù)傳遞演示1public class Examplepublic static void main(String args)
20、Example ex = new Example();int date = 9;BirthDate d1= new BirthDate(7,7,1970);BirthDate d2= new BirthDate(1,1,2000);ex.changel(date);ex.change2(d1);ex.change3(d2);System.out.println(date= + date);d1.display();d2.display();public void change1(int i)i = 1234;public void change2(BirthDate b)b = new Bir
21、thDate(22,2,2004);public void change3(BirthDate b)b.setDay(22);參數(shù)傳遞演示2public class Examplepublic static void main(String args)Example ex = new Example();int date = 9;BirthDate d1= new BirthDate(7,7,1970);BirthDate d2= new BirthDate(1,1,2000);ex.changel(date);ex.change2(d1);ex.change3(d2);System.out.
22、println(date= + date);d1.display();d2.display();public void change1(int i)i = 1234;public void change2(BirthDate b)b = new BirthDate(22,2,2004);public void change3(BirthDate b)b.setDay(22);mam參數(shù)傳遞演示3public class Examplepublic static void main(String args口)Example ex = new Example();int date = 9;Birt
23、hDate d1= new BirthDate(7,7,1970);BirthDate d2= new BirthDate(1,1,2000);ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println(date= + date);d1.display();d2.display();public void change1(int i) i = 1234;public void change2(BirthDate b)b = new BirthDate(22,2,2004);public void change3(Birth
24、Date b)b.setDay(22);參數(shù)傳遞演示4public class Examplepublic static void main(String args)Example ex = new Example();int date = 9;BirthDate d1= new BirthDate(7,7,1970);BirthDate d2= new BirthDate(1,1,2000);ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println(date= + date);d1.display();d2.displ
25、ay();public void change1(int i)i = 1234;public void change2(BirthDate b)b = new BirthDate(22,2,2004);public void change3(BirthDate b)b.setDay(22);參數(shù)傳遞演示5public class Examplepublic static void main(String args)Example ex = new Example();int date = 9;BirthDate d1= new BirthDate(7,7,1970);BirthDate d2=
26、 new BirthDate(1,1,2000);ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println(date= + date);d1.display();d2.display();public void change1(int i)i = 1234; public void change2(BirthDate b)b = new BirthDate(22,2,2004);public void change3(BirthDate b)b.setDay(22);main參數(shù)傳遞演示6public class Exa
27、mplepublic static void main(String args)Example ex = new Example();int date = 9;BirthDate d1= new BirthDate(7,7,1970);BirthDate d2= new BirthDate(1,1,2000);ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println(date= + date);d1.display();d2.display();public void change1(int i)i = 1234;new
28、public void change2(BirthDate b)BirthDate(22,2,2004);public void change3(BirthDate b)b.setDay(22);棧內(nèi)存change2 bd2main Jdldateex110925卜處內(nèi)存狀態(tài)7T1970587934354752587934T參數(shù)傳遞演示7public class Examplepublic static void main(String args)Example ex = new Example();int date = 9;BirthDate d1= new BirthDate(7,7,19
29、70);BirthDate d2= new BirthDate(1,1,2000);ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println(date= + date);d1.display();d2.display();public void change1(int i)i = 1234;public void change2(BirthDate b) b = newBirthDate(22,2,2004);public void change3(BirthDate b)b.setDay(22);棧內(nèi)存change2
30、b 666888 f d2 354752參數(shù)傳遞演示8public class Examplepublic static void main(String args口)Example ex = new Example();int date = 9;BirthDate d1= new BirthDate(7,7,1970);BirthDate d2= new BirthDate(1,1,2000);ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println(date= + date);d1.display();d2.disp
31、lay();public void change1(int i)i = 1234; public void change2(BirthDate b)b = new BirthDate(22,2,2004);public void change3(BirthDate b)b.setDay(22);參數(shù)傳遞演示9public class Examplepublic static void main(String args)Example ex = new Example();int date = 9;BirthDate d1= new BirthDate(7,7,1970);BirthDate d
32、2= new BirthDate(1,1,2000);ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println(date= + date);d1.display();d2.display();)public void change1(int i)i = 1234;public void change2(BirthDate b)b = new BirthDate(22,2,2004);public void change3(BirthDate b) b.setDay(22);public class Examplepubl
33、ic static void main(String args)Example ex = new Example();int date = 9;BirthDate d1= new BirthDate(7,7,1970);BirthDate d2= new BirthDate(1,1,2000);ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println(date= + date);d1.display();d2.display();public void change1(int i)i = 1234;public void
34、 change2(BirthDate b)b = new BirthDate(22,2,2004);public void change3(BirthDate b)b.setDay(22); 參數(shù)傳遞演示11public class Examplepublic static void main(String args)Example ex = new Example();int date = 9;BirthDate d1= new BirthDate(7,7,1970);BirthDate d2= new BirthDate(1,1,2000);ex.change1(date);ex.chan
35、ge2(d1);ex.change3(d2);System.out.println(date= + date);d1.display();d2.display();public void change1(int i)i = 1234;public void change2(BirthDate b)b = new BirthDate(22,2,2004);public void change3(BirthDate b)b.setDay(22); 靜態(tài)方法以static關(guān)鍵字申明的方法就稱為靜態(tài)方法,也稱為類方法對(duì)于靜態(tài)方法,可以由類直接調(diào)用,當(dāng)然,也可以通過對(duì)象進(jìn)行調(diào)用靜態(tài)變量一個(gè)由static
36、關(guān)鍵字修飾的變量,就稱為靜態(tài)變量,也稱為類變量,(請(qǐng)對(duì)照實(shí)例變量)如果一個(gè)類變量的訪問級(jí)別為public,那么可以通過類直接訪問該靜態(tài)變量靜態(tài)變量是多個(gè)對(duì)象間共享的方法的重載在同一個(gè)類中可以定義多個(gè)同名方法-方法重載public class PrintStream TOC o 1-5 h z public void println(int i) ,public void println(float f) ,public void println(String s) ,重載方法的參數(shù)列表必須不同重載方法的返回值類型可以相同,也可以不同構(gòu)造方法重載構(gòu)造方法重載舉例:public class Pro
37、ject TOC o 1-5 h z public Project() ,public Project(String code) ,public Project(String code, String name) ,構(gòu)造方法重載,參數(shù)列表必須不同可以在構(gòu)造方法的第一行使用this關(guān)鍵字調(diào)用其它(重載的)構(gòu)造方法關(guān)鍵字this指代當(dāng)前對(duì)象自身public class Project private String proj_code =;private String proj_name =;public void setName(String name)j_name=name; /
38、 等價(jià)于 proj_name=name, public class Test public static void main(String args)Project proj_1 = new Project(); proj_1.setName( “abc” );/this 是 proj_1Project proj_2 = new Project(); proj_2.setName( “xyz” );/this 是 proj_2public void setName(String proj_name)j_name=proj_name; /解決了變量的命名沖突和 不確定性問題),調(diào)
39、用重載的構(gòu)造方法public class Project private String proj_code =;private String proj_name =;public Project(String code) , )public Project()this( “abc”); /this必須是方法中的第一條語句, )this指代當(dāng)前對(duì)象,可以return thisthis可以調(diào)用重載的構(gòu)造方法,但不能直接用this初始化對(duì)象,newthis()是非法的類的繼承類繼承語法規(guī)則 class extends (Object類是所有Java類的最高層父類Java只支持單繼承,不允許多重繼承一
40、個(gè)子類只能有一個(gè)父類一個(gè)父類可以繼承出多個(gè)子類public class Person public String name;public int age;public Date birthDate;public String getInfo() 為描述和處理學(xué)生信息,定義類 Studentpublic class Student public String name;public int age;public Date birthDate;public String school;public String getInfo() 通過繼承,簡(jiǎn)化Student類的定義public class Pe
41、rson public String name;public int age;public Date birthDate;public String getInfo() .public class Student extends Personpublic String school;方法的重寫/覆蓋在子類中可以根據(jù)需要對(duì)從父類中繼承來的方法進(jìn)行改造-方法的重寫重寫方法必須和被重寫方法具有相同的方法名稱、參數(shù)列表和返回值類型重寫方法不能使用比被重寫方法更嚴(yán)格的訪問權(quán)限構(gòu)造方法不能被重寫,只能通過 super調(diào)用方法重寫舉例public class Person protected String
42、name;protected int age;protected Date birthDate;public String getInfo() return Name: + name + n +age: + age;public class Student extends Personprotected String school;public String getInfo() return Name: + name + nage: + age + nschool: +school;關(guān)鍵字super 在Java類中使用super來引用父類的成分super可用于訪問父類中定義的屬性super可用
43、于調(diào)用父類中定義的成員方法super可用于在子類構(gòu)造方法中調(diào)用父類的構(gòu)造方法super的追溯不僅于直接父類關(guān)鍵字super舉例public class Person protected String name;protected int age;protected Date birthDate;public String getInfo() return Name: + name + n +age: + age;public class Student extends Personprotected String school;public String getInfo() /調(diào)用父類的方法r
44、eturn super.getInfo() + nschool: + school;調(diào)用父類構(gòu)造方法在子類的構(gòu)造方法中可使用super(argument_list)語句調(diào)用父類的構(gòu)造方法,super語句必須是構(gòu)造方法的第一條語句如果子類的構(gòu)造方法中沒有顯示地調(diào)用父類構(gòu)造方法,也沒有使用this關(guān)鍵字調(diào)用重載的其它構(gòu)造方法,則系統(tǒng)默認(rèn)調(diào)用父類無參數(shù)的構(gòu)造方法如果子類構(gòu)造方法中既未顯式調(diào)用父類構(gòu)造方法,而父類中又沒有無參的構(gòu)造方法,則編譯出錯(cuò)在子類中,不能通過父類的構(gòu)造方法名調(diào)用父類的構(gòu)造方法,只能通過super關(guān)鍵字調(diào)用父類構(gòu)造方法舉例public class Person private St
45、ring name;private int age;private Date birthDate;public Person(String name, int age, Date d) = name;this.age = age;1011121314151617181920212212345678this.birthDate = d;)public Person(String name, int age) this(name, age, null);)public Person(String name, Date d) this(name, 30, d);)public P
46、erson(String name) this(name, 30);)/ ,)public class Student extends Person private String school;public Student(String name, int age, String s) super(name, age);school = s;)public Student(String name, String s) super(name);school = s; TOC o 1-5 h z )public Student(String s) / 編譯出錯(cuò):no super() super()
47、;13school = s;14)15)不能通過this關(guān)鍵字去初始化父類的屬性,只能通過super利用父類的構(gòu)造方法去初始化父類的屬性,不能通過父類構(gòu)造方法名調(diào)用父類 構(gòu)造方法public class Student extends Person private String school;public Student(String name, int age, String s) = name; this.age = age /errorschool = s;)public Student(String name, String s) Pernson(name); /e
48、rrorschool = s;11public Student(String s) / 編譯出錯(cuò):no super()super();school = s;)多態(tài)(1)多態(tài)-在Java中,子類的對(duì)象可以替代父類的對(duì)象使用一個(gè)對(duì)象只能有一種確定的數(shù)據(jù)類型一個(gè)引用類型變量可能指向(引用)多種不同類型的對(duì)象,父類的引用變量可以指向子類實(shí)例,反之不成立Person p = new Student();Object o = new Person();o = new Student();Object口 o = new Person(), new Student();Student s = new Pers
49、on() /error多態(tài)(2)一個(gè)引用類型變量如果聲明為父類的類型, 但實(shí)際引用的是子類對(duì)象,那么該變量就不能再訪問子類中添加的屬性和方法Student m = new Student();m.school = pku; / 合法Person e = new Student();e.school = pku; / 非法public class Person public int getInfo()Object o = new Person();o.getInfo() 非法動(dòng)態(tài)綁定/虛方法調(diào)用正常的方法調(diào)用Person e = new Person(); e.getInfo();Student
50、 e = new Student(); e.getInfo();動(dòng)態(tài)綁定(多態(tài)情況下)Person e = new Student();e.getInfo(); 此時(shí)調(diào)用的是 Student類中定義的getInfo方法Person a = new Person(), new Student()Person0.getInfo() 調(diào)用 Person類中的方法Person1.getInfo() / 調(diào)用 Student 類中的方法編譯時(shí)類型和運(yùn)行時(shí)類型多態(tài)性應(yīng)用舉例(1)同類收集(homogenous collections)MyDate口 m = new MyDate2;m0 = new MyD
51、ate(22, 12, 1964);m1 = new MyDate(22, 7, 1964);異類收集(heterogeneous collections)Person p= new Person3;p0 = new Student();p1 = new Person();p2 = new Graduate();多態(tài)性應(yīng)用舉例(2)方法聲明的參數(shù)類型為父類類型,可以使用子類的對(duì)象作為實(shí)參調(diào)用該方法public class Testpublic void method(Person e) /,e.getInfo();)public static void main(Stirng args)Tes
52、t t = new Test();Student m = new Student();t.method(m);instance。臊作符 public class Person extends Object, public class Student extends Person, public class Graduate extends Person, Person p = new Student();p instanceof Student; /true因此從(p instanceof Student)不能推斷p被聲明為Student類型 public void method1(Perso
53、n e) if (e instanceof Student) /處理Student類型及其子類類型對(duì)象 else if (e instanceof Graduate) 處理Graduate類型及其子類類型對(duì)象 else 處理Person類型對(duì)象=#作符與equals方法public boolean equals(Object obj) return (this = obj);)Object中的equals()方法利用=實(shí)現(xiàn)Person a = new Person(); Person b = a; b.equals(a)=true;基本類型使用=時(shí)比較值;引用類型使用= 寸僅比較地址;如果想要
54、比較引用類型不同實(shí)例的值(內(nèi)容),必須重寫equals方法舉例public boolean equals(Object o) if (o instanceof Circle) return radius = (Circle)o).radius;)elsereturn false;)Circle a = new Circle( 1”);Circle b = new Circle ( 1 );a!=b 和 a.equals(b) = true 同時(shí)成立toString(方法任彳Java類都是Object的子類Object定義了一個(gè)toString()方法,它返回一個(gè)實(shí)例(對(duì)象)所屬類的名 稱亥對(duì)象在內(nèi)存的地址;System.out.println(person);等價(jià)于 System.out.println(person.toString();同樣:Person : + person ;等價(jià)于 “ Person : + person.toString();抽象類在有些情況下,可以暫時(shí)不實(shí)現(xiàn)類的某個(gè)成員方法,這時(shí)可以用abstract關(guān)鍵字修飾類、以及相應(yīng)的方法。以abstract修飾的類稱為抽象類,以abstract修飾的方法稱為抽象方 法不能對(duì)抽象類直接進(jìn)行實(shí)例化。在子
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 橡膠籃球場(chǎng)施工方案
- Unit 4 History and Traditions Listening and Talking 說課稿-2024-2025學(xué)年高中英語人教版(2019)必修第二冊(cè)
- 二零二五年度幕墻工程施工進(jìn)度與質(zhì)量保證合同4篇
- 二零二五版鋁窗安裝與建筑門窗工程保修合同4篇
- 2025年度民間借款擔(dān)保與知識(shí)產(chǎn)權(quán)保護(hù)合同4篇
- 二零二五年度2025版木材產(chǎn)業(yè)園區(qū)投資合作協(xié)議3篇
- 五年級(jí)數(shù)學(xué)(小數(shù)四則混合運(yùn)算)計(jì)算題專項(xiàng)練習(xí)及答案匯編
- 倉庫出租合同私人
- 施工組織設(shè)計(jì)的施工方案
- 專業(yè)乳膠漆粉刷服務(wù)合同合同2024版版B版
- 2025年度杭州市固廢處理與資源化利用合同3篇
- 2024年安徽省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 部編版二年級(jí)下冊(cè)《道德與法治》教案及反思(更新)
- 充電樁項(xiàng)目運(yùn)營(yíng)方案
- 退休人員出國(guó)探親申請(qǐng)書
- 高中物理競(jìng)賽真題分類匯編 4 光學(xué) (學(xué)生版+解析版50題)
- 西方經(jīng)濟(jì)學(xué)-高鴻業(yè)-筆記
- 幼兒園美術(shù)教育研究策略國(guó)內(nèi)外
- 2024屆河南省五市高三第一次聯(lián)考英語試題及答案
- 孕婦學(xué)校品管圈課件
- 《愿望的實(shí)現(xiàn)》交流ppt課件2
評(píng)論
0/150
提交評(píng)論