面向對象編程 創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站設計、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的振興網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴! |
筆記Notes
|
1.創(chuàng)建一個類,并在類中提供必要的屬性和方法 2.由類派生出對象。(創(chuàng)建對象) 3.調用對象中的屬性和方法。(對象名.屬性名/方法名) ? ? ? ? ?//創(chuàng)建一個類 class?Person{ //屬性 String?name; int?age; char?sex; //方法 public?void?run(){ ??System.out.println(name?+?"跑起來"); } public?void?say(){ ??System.out.println(name?+?"今年"?+?age); } } // main 方法中 ??Person?person?=?new?Person(); ??//調用屬性 :對象名.屬性名 ??person.name?=?"王慶港";?//給屬性賦值 ??person.age?= 23; ??//獲取屬性的值 ??String?name?=?person.name; ??System.out.println("name="?+?name); ??//調用方法 :對象名.方法名 ??person.run(); ??person.say();
①按照數(shù)據(jù)類型分 :基本數(shù)據(jù)類型?vs?引用數(shù)據(jù)類型 ②按照位置分 :成員變量??vs?局部變量
①變量的聲明的格式都是一樣的。 ②變量都有作用域 ③變量都是先聲明后使用
①局部變量:在方法里,方法的形參,構造器中,構造器的形參,代碼塊 ②成員變量:?在類中方法等結構外
①局部變量:不能使用權限修飾符修飾 ②成員變量:可以使用四種權限修飾符(public protected 缺省的(default) private)
①局部變量:在內(nèi)存的棧中 ②成員變量:在內(nèi)存的堆(對象)中
①局部變量 :沒有默認值 ②成員變量 :有默認值(和數(shù)組元素的默認值是一樣的) byte,short,int,long -> 0 float,double -> 0.0 boolean -> false char -> \u0000 引用數(shù)據(jù)類型 -> null class?Animal{ //屬性(成員變量) public?String?name?=?"動物"; int?legs; protected?boolean?isLive?=?true; {//代碼塊 ??String?address?=?"";//局部變量 } public?Animal(){}? //構造器 public?Animal(int?sex){//構造器的形參 ??int?a?= 10;//局部變量 } //方法 public?void?say(int?sex){//方法的形參 ??//局部變量 ??int?age?= 10; ??age?= 20; ??name?=?"大錘"; } }
修飾符?返回值類型?方法名(參數(shù)類型?形參1,?參數(shù)類型?形參2,?….){ 方法體程序代碼 return?返回值; }
①void/具體的類型(基本數(shù)據(jù)類型、引用數(shù)據(jù)類型): ②void : 表示該方法沒有返回值 具體的類型 :調用該方法會有返回值。 注意:返回數(shù)據(jù)需要使用return關鍵字。return 后面跟需要返回的數(shù)據(jù)。
(形參相同的情況下,同一個類中的方法名不能相同)。
①作用 :用來通知方法的調用者調用此方法時需要傳遞數(shù)據(jù)。 ②注意:實參的類型必須和形參的類型保持一致
注意 :只有調用方法時方法體才會執(zhí)行。 對象數(shù)組題目: 定義類Student,包含三個屬性:學號number(int),年級state(int),成績score(int)。創(chuàng)建20個學生對象,學號為1到20,年級和成績都由隨機數(shù)確定。 問題一:打印出3年級(state值為3)的學生信息。 問題二:使用冒泡排序按學生成績排序,并遍歷所有學生信息 提示: 1)?生成隨機數(shù):Math.random(),返回值類型double;? 2)?四舍五入取整:Math.round(double d),返回值類型long。 class?Student1{ int??number; int?state; int?score; @Override public?String toString() { ??return?"Student1 [number="?+?number?+?", state="?+?state?+?", score="?+?score?+?"]"; } } public?class?StuInfo { public?static?void?main(String[]?args) { ??// 創(chuàng)建對象數(shù)組 ??Student1[]?studentArr?=?new?Student1[20]; ??// 循環(huán)創(chuàng)建對象并賦值,傳給對象 ?? ??for?(int?i?= 0;?i?< 20;?i++) { ????????????Student1?student1?=?new?Student1(); ????????????student1.number?=?i; ????????????student1.state?= (int)Math.round( (Math.random()*7)); ????????????student1.score?= (int) (Math.random()*100);??? ????????????studentArr[i] =?student1; ??} ??System.out.println("---------打印排序前的學生信息-------------"); ??for?(int?i?= 0;?i?<?studentArr.length;?i++) { ????????????System.out.println(studentArr[i]); ??} ?? ??System.out.println("----------打印state為3的學生信息---------"); ??// 循環(huán)查找對象數(shù)組中state值為3的對象,打印輸出對象信息 ??for?(int?i?= 0;?i?<?studentArr.length;?i++) { ????????????if?(studentArr[i].state?== 3) { ?????????????????????System.out.println(studentArr[i]); ????????????} ??} ??System.out.println("----------------------------------------"); ??// 使用冒泡排序按學生成績排序,并遍歷所有學生信息 ??// 思路:兩個循環(huán)遍歷數(shù)組中的對象的成績,若對象的成績小于后一個,則交換對象的位置 ??for?(int?i?= 0;?i?<?studentArr.length?-1;?i++) {?// 外層循環(huán)決定冒泡排序的次數(shù),為數(shù)組長度-1 ????????????for?(int?j?= 0;?j?<?studentArr.length?-?i?-1;?j++) {?// 內(nèi)層循環(huán)決定每次多少次冒泡,為 ?????????????????????if?(studentArr[j].score?>?studentArr[j+1].score) {?// 如果前面的對象小于大于后面的,就叫交換類數(shù)組地址 ???????????????????????????????Student1?temp?=?studentArr[j]; ???????????????????????????????studentArr[j] =?studentArr[j+1]; ???????????????????????????????studentArr[j+1] =?temp; ?????????????????????} ????????????} ??} ??// 注意?。。。。。。。。?! ??// 冒泡排序交換的值的數(shù)組的下標為內(nèi)循環(huán)的循環(huán)變量 ??System.out.println("------打印排序后的信息-------"); ??// 打印排序后的信息 ??for?(int?i?= 0;?i?<?studentArr.length;?i++) { ????????????System.out.println(studentArr[i]); ????????????????????? ??} ?? } }
①在同一個類中,允許存在一個以上的同名方法,只要它們的參數(shù)個數(shù)或者參數(shù)類型不同即可。 ②與返回值類型無關,只看參數(shù)列表,且參數(shù)列表必須不同。 (參數(shù)個數(shù)或參數(shù)類型)。調用時,根據(jù)方法參數(shù)列表的不同來區(qū)別。 ③示例: //返回兩個整數(shù)的和 int?add(int?x,int?y){return?x+y;} //返回三個整數(shù)的和 int?add(int?x,int?y,int?z){return?x+y+z;} //返回兩個小數(shù)的和 double add(double?x,double?y){return?x+y;} 注意?。。?/p> ①不同的形參列表 :形參的個數(shù),順序,類型不同 ②方法的重載和權限修飾符,返回值類型,形參的名字無關。 ③判斷方法:只看 方法名?。?形參列表(看形參和實參的類型)
? ? ? ? ? ? ?①可變形參的底層就是一個數(shù)組 ? ? ? ? ? ? ?②在可變形參的方法中,和可變形參相同類型的數(shù)組的方法不構成重載。 ? ? ? ? ? ? ?③在形參列表中可變形參只能放在最后 ? ? ? ? ? ? ?④在同一個方法的形參列表中只能有一個可變形參。 ? ? ? ? ? ? ?⑤ 可變形參的個數(shù)可以是0個1個或多個
在創(chuàng)建對象以后,就可以通過對象名.屬性名這種方式對屬性直接進行操作。這種操作對于屬性只有類型和范圍的限制。但是在實際開發(fā)中我們會有更多的其它的限制條件。而這些限制條件又不能在屬性的聲明處加以限制。我們采取取如下方式 ①使用權限修飾符對屬性進行權限的限制,那么在類的外部就不能隨意的再調用類中的屬性 ②提供公共的方法,在方法中可以加以限制其它的條件。然后可以通過該方法給屬性賦值和獲取屬性的值。 ? ? ? ? ? ? ?
①將屬性私有化。(private修飾屬性) ②提供公共的set/get方法。(set方法用來給屬性賦值,get方法用來獲取屬性的值) ? ? ? ? ? ? ?
①可以使用四種權限修飾符:private,缺省的,protected,public ②四種權限修飾符可以修飾 :屬性,方法,構造器,內(nèi)部類 ③類只能被public和缺省的修飾。
① 默認初始化:int a; ② 顯式初始化:int a = 0; ③ 構造器中初始化 ④ 通過“對象.屬性“或“對象.方法”的方式賦值
① - ② - ③ - ④
①它在方法內(nèi)部使用,即這個方法所屬對象的引用; ②它在構造器內(nèi)部使用,表示該構造器正在初始化的對象。
具體的:我們可以用this來區(qū)分屬性和局部變量。 public?void?setAge(int?age){ age?=?age;//局部變量 :就近原則(屬性名和局部變量名相同時默認調用的是局部變量) ? ? ? ?System.out.println("==========="?+?age); }
|
總結Summary |
|
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
名稱欄目:Java編程基礎階段筆記day07面向對象編程(上)-創(chuàng)新互聯(lián)
路徑分享:http://muchs.cn/article34/csphpe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App設計、微信公眾號、營銷型網(wǎng)站建設、定制開發(fā)、微信小程序、移動網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容