Java的面向?qū)ο缶幊?/a>">Java的面向?qū)ο缶幊?/a>
959
2022-05-30
1.1 權(quán)限修飾符
1.被public修飾的域和方法,不管在所屬類所在的包還是在其他包,都可以被所屬類或者所屬類對(duì)象直接訪問(wèn)。
2.默認(rèn)訪問(wèn)權(quán)限(又叫包訪問(wèn)權(quán)限 friendly, java語(yǔ)言中是沒有friendly這個(gè)修飾符的,這樣稱呼應(yīng)該是來(lái)源于c++ )修飾的域或方法,只能在所屬類的包被直接訪問(wèn),在其他包不能直接訪問(wèn)。其訪問(wèn)的范圍就如它名稱一樣—包訪問(wèn)權(quán)限,只能在所屬包內(nèi)訪問(wèn)。
3.被protected修飾的域或方法,其直接訪問(wèn)的范圍與包訪問(wèn)權(quán)限的一樣,基本沒有差別。
4.被private修飾的域或方法,只能在自己所屬類才能被直接訪問(wèn)。而即使另外一個(gè)類與其同在一個(gè)包中,前者也不能直接訪問(wèn)。
1.2 狀態(tài)修飾符
final(最終態(tài))
static(靜態(tài))
final 關(guān)鍵字是最終的意思,可以修飾成員變量,成員方法,類
final修飾的特點(diǎn):
1.修飾方法:表示該方法是最終方法,不能被重寫
2.修飾變量:表示該變量是常量,不能被再次賦值
3.修飾類:表示改類是最終類,不能被繼承
父類:
package ceshi; public final class Fu { public final void method() { System.out.println("Fu中method方法被調(diào)用"); } }
子類:
package ceshi; public class Zi extends Fu{ //報(bào)錯(cuò)了,不能被繼承 public final int age = 20; public void show() { // age = 100; 被final修飾為常量無(wú)法改變 System.out.println(age); } }
變量是基本類型:final修飾的是基本類型的數(shù)據(jù)值,不能改變
變量是引用類型:final修飾的是引用類型的地址值,不能改變,但是地址里面的內(nèi)容可以改變
Student類
package ceshi; public class Student { public int age = 20; }
測(cè)試類
package ceshi; public class Demo { public static void main(String[] args) { //final修飾基本類型變量 final int age =20; // age = 100; //final修飾后就不能重新賦值 System.out.println(age); //20 //final修飾引用類型變量 final Student s = new Student(); //final修飾的s,s的地址不能變,s.age是內(nèi)容 s.age =100; System.out.println(s.age); //100 //反證 // s = new Student(); //報(bào)錯(cuò) } }
static關(guān)鍵字是靜態(tài)的意思,可以修飾成員變量,成員方法
static修飾的特點(diǎn):
被類的所有對(duì)象共享 (這也是我們判斷是否使用靜態(tài)關(guān)鍵字的條件)
2.可以通過(guò) 類名調(diào)用(推薦使用);也可以通過(guò)對(duì)象名調(diào)用
按照有無(wú)static修飾,成員變量和方法可以分為:
(一)成員變量
1、靜態(tài)成員變量(類變量):有static修飾的成員變量稱為靜態(tài)成員變量,也叫類變量,屬于類本身,直接用類名訪問(wèn)即可
2,、實(shí)例成員變量:無(wú)static修飾的成員變量稱為實(shí)例成員變量,屬于類的每個(gè)對(duì)象的,必須用類的對(duì)象來(lái)訪問(wèn)
(二)成員方法
1、靜態(tài)方法:有static修飾的成員方法稱為靜態(tài)方法,也叫類方法,屬于類本身的,直接用類名訪問(wèn)即可
2、實(shí)例方法:無(wú)static修飾的成員方法稱為實(shí)例方法,屬于類的每個(gè)對(duì)象的,必須用類的對(duì)象來(lái)訪問(wèn)
Student類
package ceshi; public class Student { public String name; public int age; //1: public String university; //2 public static String university; public void show() { System.out.println(name+","+age+","+university); } }
測(cè)試類:
package ceshi; public class StaticDemo { public static void main(String[] args) { //2:被static修飾的變量,推薦用類名訪問(wèn) Student.university="清華大學(xué)"; Student s = new Student(); s.name = "yy"; s.age = 20; //1 s.university = "清華大學(xué)"; s.show(); //yy,20,清華大學(xué) Student s1 = new Student(); s1.name = "yy1"; s1.age = 30; s1.show(); //1: yy1,30,null //2: yy1,30,清華大學(xué) } }
非靜態(tài)的成員方法
●能訪問(wèn)靜態(tài)的成員變量
●能訪問(wèn)非靜態(tài)的成員變量
●能訪問(wèn)靜態(tài)的成員方法
●能訪問(wèn)非靜態(tài)的成員方法
靜態(tài)的成員方法
●能訪問(wèn)靜態(tài)的成員變量
●能訪問(wèn)靜態(tài)的成員方法
總結(jié)成一句話就是:靜態(tài)成員方法只能訪問(wèn)靜態(tài)成員
Java
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。