回顧
14.5 this關(guān)鍵字的使用
14.6 static 關(guān)鍵字的使用
14.6.1 使用static定義屬性
學(xué)習(xí)小結(jié)
14.6.2 使用static定義方法
static聲明的方法被稱作“類方法”。使用static定義的方法可以由類名稱直接調(diào)用锨用。
范例 14-20 靜態(tài)方法的聲明
package com.Javastudy2;
/**
* @author Y.W.
* @date 2018年5月2日 下午10:23:34
* @Description TODO 靜態(tài)方法的聲明
*/
public class P376_14_20 {
public static void main(String[] args) {
Person37 p1 = new Person37("張三", 25);
Person37 p2 = new Person37("李四", 30);
Person37 p3 = new Person37("王五", 35);
System.out.println("修改之前信息:" + p1.talk());
System.out.println("修改之前信息:" + p2.talk());
System.out.println("修改之前信息:" + p3.talk());
System.out.println("********修改之后信息:********");
// 修改后信息
Person37.setCity("美國(guó)");
System.out.println("修改之后信息:" + p1.talk());
System.out.println("修改之后信息:" + p2.talk());
System.out.println("修改之后信息:" + p3.talk());
}
}
class Person37 {
String name; // 定義name屬性
private static String city = "中國(guó)"; // 定義靜態(tài)屬性city
int age; // 定義age屬性
public Person37(String name, int age) { // 聲明一個(gè)有參構(gòu)造方法
this.name = name;
this.age = age;
}
public String talk() { // 聲明一個(gè)無參方法
return "我是:" + this.name + "丰刊,今年:" + this.age + "歲,來自:" + this.city;
}
public static void setCity(String c) { // 聲明一個(gè)靜態(tài)方法
city = c;
}
}
運(yùn)行結(jié)果:
14.6.3 static主方法(main)
解釋main()方法的含義:由于Java虛擬機(jī)需要調(diào)用類的main()方法增拥,所以該方法的訪問權(quán)限必須是public啄巧,又因?yàn)閖ava虛擬機(jī)在執(zhí)行main()方法時(shí)不必創(chuàng)建對(duì)象,所以該方法必須是static的掌栅,該方法接收一個(gè)String類型的數(shù)組參數(shù)秩仆,該數(shù)組中保存執(zhí)行Java命令時(shí)傳遞給所運(yùn)行的類的參數(shù)。
傳遞參數(shù)命令:
java 類名稱 參數(shù)1 參數(shù)2 參數(shù)3
范例14-21 向類中傳遞參數(shù)
package com.Javastudy2;
/**
* @author Y.W.
* @date 2018年5月2日 下午10:45:04
* @Description TODO 向類中傳遞參數(shù)
*/
public class P378_14_21 {
/*
* public:表示公共方法
* static:表示此方法為一靜態(tài)方法猾封,可以由類名直接調(diào)用
* void:表示此方法無返回值main澄耍,系統(tǒng)定義的方法名稱
* String[] args:接收運(yùn)行時(shí)的參數(shù)
*/
public static void main(String[] args) {
// 取得輸入?yún)?shù)的長(zhǎng)度
int j = args.length; // 此時(shí)j = 0
for (int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
if (j != 2) {
System.out.println("輸入?yún)?shù)個(gè)數(shù)有誤!M堋逾苫!");
// 退出程序
System.exit(1);
}
}
}
運(yùn)行結(jié)果:
14.6.4 static應(yīng)用-static代碼塊及靜態(tài)導(dǎo)入
靜態(tài)代碼塊經(jīng)常用來進(jìn)行類屬性的初始化。只被執(zhí)行一次枚钓。
范例 14-22 靜態(tài)代碼塊的使用
package com.Javastudy2;
/**
* @author Y.W.
* @date 2018年5月2日 下午11:23:18
* @Description TODO 靜態(tài)代碼塊的使用
*/
public class P379_14_22 {
static {
System.out.println("3.P379_14_22 類的靜態(tài)代碼塊被調(diào)用铅搓!");
}
public static void main(String[] args) {
System.out.println("4.程序開始執(zhí)行!");
// 產(chǎn)生兩個(gè)實(shí)例化對(duì)象
new Person38(); // 載入類時(shí)只執(zhí)行一個(gè)靜態(tài)代碼塊
new Person38();
}
}
class Person38 {
public Person38() {
System.out.println("1.public Person38()");
}
static {
System.out.println("2.Person38類的靜態(tài)代碼塊被調(diào)用搀捷!");
}
}
運(yùn)行結(jié)果:
思考
Static關(guān)鍵字的使用星掰,特別是靜態(tài)代碼塊,我已經(jīng)使用上了嫩舟。
記于2018-5-2 22:12:23
By Yvan