一、類(lèi)
1.1 如何定義類(lèi)
類(lèi)的定義格式如下:
修飾符 class 類(lèi)名 { ? ?// 1.成員變量(屬性) ? ?// 2.成員方法 (行為) ? ?// 3.構(gòu)造方法 (初始化類(lèi)的對(duì)象數(shù)據(jù)的) }
例如:
public class Student { ? ?// 1.成員變量 ? ?public String name ; ? ?public char sex ; // '男' '女' ? ?public int age; }
1.2 如何通過(guò)類(lèi)創(chuàng)建對(duì)象
類(lèi)名 對(duì)象名稱(chēng) = new 類(lèi)名();
例如:
Student stu = new Student();
1.3 封裝
1.3.1 封裝的步驟
- 使用
private
關(guān)鍵字來(lái)修飾成員變量。 - 使用
public
修飾getter和setter方法。
1.3.2 封裝的步驟實(shí)現(xiàn)
1.private修飾成員變量
public class Student { ? ?private String name; ? ?private int age; }
2.public修飾getter和setter方法
public class Student { ? ?private String name; ? ?private int age; ? ? ?public void setName(String n) { ? ? name = n; ? } ? ? ?public String getName() { ? ? return name; ? } ? ? ?public void setAge(int a) { ? ? ? ?if (a > 0 && a <200) { ? ? ? ? ? ?age = a; ? ? ? } else { ? ? ? ? ? ?System.out.println("年齡非法!"); ? ? ? } ? } ? ? ?public int getAge() { ? ? return age; ? } }
2.static定義格式和使用
????????static是靜態(tài)的意思。 static可以修飾成員變量或者修飾方法。
2.1 靜態(tài)變量及其訪(fǎng)問(wèn)
????????有static修飾成員變量,說(shuō)明這個(gè)成員變量是屬于類(lèi)的,這個(gè)成員變量稱(chēng)為類(lèi)變量或者靜態(tài)成員變量。 直接用 類(lèi)名訪(fǎng)問(wèn)即可。因?yàn)轭?lèi)只有一個(gè),所以靜態(tài)成員變量在內(nèi)存區(qū)域中也只存在一份。所有的對(duì)象都可以共享這個(gè)變量。
如何使用呢
????????例如現(xiàn)在我們需要定義傳智全部的學(xué)生類(lèi),那么這些學(xué)生類(lèi)的對(duì)象的學(xué)校屬性應(yīng)該都是“傳智”,這個(gè)時(shí)候我們可以把這個(gè)屬性定義成static修飾的靜態(tài)成員變量。
定義格式
修飾符 static 數(shù)據(jù)類(lèi)型 變量名 = 初始值; ? ?
舉例
public class Student { ? ?public static String schoolName = "交大"; // 屬于類(lèi),只有一份。 ? ?// ..... }
靜態(tài)成員變量的訪(fǎng)問(wèn):
格式:類(lèi)名.靜態(tài)變量
public static void ?main(String[] args){ ? ?System.out.println(Student.schoolName); ? ?Student.schoolName = "交大"; ? ?System.out.println(Student.schoolName); // 交大 }
2.2 實(shí)例變量及其訪(fǎng)問(wèn)
????????無(wú)static修飾的成員變量屬于每個(gè)對(duì)象的, 這個(gè)成員變量叫實(shí)例變量,之前我們寫(xiě)成員變量就是實(shí)例成員變量。
需要注意的是:實(shí)例成員變量屬于每個(gè)對(duì)象,必須創(chuàng)建類(lèi)的對(duì)象才可以訪(fǎng)問(wèn)。
格式:對(duì)象.實(shí)例成員變量
2.3 靜態(tài)方法及其訪(fǎng)問(wèn)
有static修飾成員方法,說(shuō)明這個(gè)成員方法是屬于類(lèi)的,這個(gè)成員方法稱(chēng)為類(lèi)方法或者靜態(tài)方法**。 直接用 類(lèi)名訪(fǎng)問(wèn)即可。因?yàn)轭?lèi)只有一個(gè),所以靜態(tài)方法在內(nèi)存區(qū)域中也只存在一份。所有的對(duì)象都可以共享這個(gè)方法。
與靜態(tài)成員變量一樣,靜態(tài)方法也是直接通過(guò)類(lèi)名.方法名稱(chēng)即可訪(fǎng)問(wèn)。
舉例
public class Student{ ? ?public static String schoolName = "交大"; // 屬于類(lèi),只有一份。 ? ?// ..... ? ?public static void study(){ ? System.out.println("我們都在交大上學(xué)!"); ? ? } }
靜態(tài)成員變量的訪(fǎng)問(wèn):
格式:類(lèi)名.靜態(tài)方法
public static void ?main(String[] args){ ? ?Student.study(); }
2.4 實(shí)例方法及其訪(fǎng)問(wèn)
????????無(wú)static修飾的成員方法屬于每個(gè)對(duì)象的,這個(gè)成員方法也叫做實(shí)例方法。
需要注意的是:實(shí)例方法是屬于每個(gè)對(duì)象,必須創(chuàng)建類(lèi)的對(duì)象才可以訪(fǎng)問(wèn)。
格式:對(duì)象.實(shí)例方法
示例:
public class Student { ? ?// 實(shí)例變量 ? ?private String name ; ? ?// 2.方法:行為 ? ?// 無(wú) static修飾,實(shí)例方法。屬于每個(gè)對(duì)象,必須創(chuàng)建對(duì)象調(diào)用 ? ?public void run(){ ? ? ? ?System.out.println("學(xué)生可以跑步"); ? } // 無(wú) static修飾,實(shí)例方法 ? ?public ?void sleep(){ ? ? ? ?System.out.println("學(xué)生睡覺(jué)"); ? } ? ?public static void study(){ ? ? ? ? ? } }public static void main(String[] args){ ? ?// 創(chuàng)建對(duì)象 ? ?Student stu = new Student ; ? ?stu.name = "李四"; ? ?// Student.sleep();// 報(bào)錯(cuò),必須用對(duì)象訪(fǎng)問(wèn)。 ? ?stu.sleep(); ? ?stu.run(); }
2.5?小結(jié)
1.當(dāng) static
修飾成員變量或者成員方法時(shí),該變量稱(chēng)為靜態(tài)變量,該方法稱(chēng)為靜態(tài)方法。該類(lèi)的每個(gè)對(duì)象都共享同一個(gè)類(lèi)的靜態(tài)變量和靜態(tài)方法。任何對(duì)象都可以更改該靜態(tài)變量的值或者訪(fǎng)問(wèn)靜態(tài)方法。但是不推薦這種方式去訪(fǎng)問(wèn)。因?yàn)殪o態(tài)變量或者靜態(tài)方法直接通過(guò)類(lèi)名訪(fǎng)問(wèn)即可,完全沒(méi)有必要用對(duì)象去訪(fǎng)問(wèn)。
2.無(wú)static修飾的成員變量或者成員方法,稱(chēng)為實(shí)例變量,實(shí)例方法,實(shí)例變量和實(shí)例方法必須創(chuàng)建類(lèi)的對(duì)象,然后通過(guò)對(duì)象來(lái)訪(fǎng)問(wèn)。
3.static修飾的成員屬于類(lèi),會(huì)存儲(chǔ)在靜態(tài)區(qū),是隨著類(lèi)的加載而加載的,且只加載一次,所以只有一份,節(jié)省內(nèi)存。存儲(chǔ)于一塊固定的內(nèi)存區(qū)域(靜態(tài)區(qū)),所以,可以直接被類(lèi)名調(diào)用。它優(yōu)先于對(duì)象存在,所以,可以被所有對(duì)象共享。
4.無(wú)static修飾的成員,是屬于對(duì)象,對(duì)象有多少個(gè),他們就會(huì)出現(xiàn)多少份。所以必須由對(duì)象調(diào)用。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-721165.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-721165.html
到了這里,關(guān)于Java---類(lèi)、static(靜態(tài))詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!