程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 第七講:面向對象編程(二)

第七講:面向對象編程(二)

編輯:C++入門知識

第七講:面向對象編程(二)


向前吧,蕩起生命之舟,不必依戀和信泊,破浪的船自會一路開放常新的花朵。


本講內容:成員變量、方法、方法的重載、構造函數

一、成員變量(類或對象的狀態)
(1)、認識成員變量、類變量、實例變量、局部變量、方法參數之間的區別


1、成員變量(field)是沒有定義在代碼塊(包括初始化塊、成員方法)中的變量。成員變量是類變量還是實例變量取決於在其聲明中是否使用了static關鍵字。
2、類變量在聲明是用了static關鍵字,它的另一個名字叫靜態變量、靜態成員變量(static field) 。
3、實例變量是在聲明時沒有使用static關鍵字的成員變量,它的另一個名字叫非靜態成員變量(non-static field)。
4、定義在代碼塊裡的變量被稱為局部變量(local variable)。
5、定義在方法聲明中的變量叫方法參數。

區別如下:

public class text {
	static String s1 = "類變量";
	String s2 = "實例變量";
	{
		String s3 = "初始化代碼塊裡的局部變量";
	}
	static {
		String s4 = "靜態初始化代碼塊裡的局部變量";
	}
	// s5方法的參數和方法裡的局部變量
	public void printString(String s5) {
		String s6 = "方法裡的局部變量";
	}
	// 靜態類方法(可以直接被類名所調用)
	public static void printString() {
		String s7 = "類方法裡的局部變量";
		System.out.println(s7);
	}
	public static void main(String[] args) {
		text.printString(); //直接被類名所調用靜態類方法
		Lei08_1 a=new Lei08_1();//創建對象
		a.printString("參數的值");//調用實例方法
	}
}


(2)、變量的初始化
實例變量一經定義就會有初始值(默認的,第二講講到),局部變量定義時不賦初值而直接使用,編譯器會報錯

public class text {
	int i;
	{
		int j;
		System.out.println(j);//會報錯
	}
	public static void main(String[] args) {
	}
}



二、方法(類或對象的行為)
Java中類的行為由類的成員方法來實現。類的成員方法由方法的聲明和方法體兩部分組成。

\

1、修飾符,可選,用於指定誰有權限訪問此方法。
2、返回值類型,必選,用於指定該方法的返回值數據類型;如果該方法沒有返回值,則要用關鍵字 void 進行標示。方法的返回值只能有一個。
3、參數列表,可以有0到多個,多個參數之間要用逗號隔開,參數的寫法形如:String[] args, int age 這樣。
4方法名,必選,命名規則是方法名和變量名的首字母要小寫,不要弄個大寫方法名出來。
5方法體,可選,
6、大括號,可選,大括號不寫的方法叫抽象方法。


<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+16LS4qO6yvTQ1LrNt723qNauvOS1xLnYz7U8YnI+CqGw17TMrNOwz+zQ0M6qo6zQ0M6q07DP7Ne0zKyhsaGjyOe5+8O/uPa21M/ztrzKx7TTzazSu7j2wODW0Mn6s8mz9sC0o6zDv7j2ttTP88jnufu2vNK7w/7Su9H5o6zEx8O01eK49srAvefKx7K7ysfMq87eyKTBy6GjztLDx7+0tb3Jz9K7vbK1xMD919PW0KOs0KG5t7XEtPPQocr00NTTsM/swcvL+73QtcS3vcq9oaPNqLn9yejWw7m3tPPQobXEt723qNPWuMSx5MHLy/y1xNe0zKyho9Xi0KnK9NDUus23vbeotcTPuL3ayc+1xLK7zay1vNbCwcujrLbg18u24LLKtcS21M/zo6zO0sPHuvPD5ru5u+G9srW9uPy24LXEvLzK9aOs0rK74bW81sK4/LbgtcS24NH50NShozxicj4KPC9wPgo8cD48YnI+CjwvcD4KPHA+PGJyPgrI/aGit723qNbY1Nggb3ZlcmxvYWQ8YnI+CtTaSmF2YSDW0NTK0O3A4Lao0uXW0LbguPa3vbeotcS3vbeow/vP4M2so6zWu9Kqy/zDx7XEss7K/cn5w/eyu82svLS/yaGj1eLW1sfpv/bPwqOsuMO3vbeovs2xu7PGzqrW2NTYo6hvdmVybG9hZGVkIKOpo6zV4tbWt73Kvb7NvdDX9re9t6jW2NTYo6htZXRob2Qgb3ZlcmxvYWRpbmcgo6mho7e9t6jW2NTYysfKtc/Ws8zQ8rbg0fnQ1LXE0ru49tbY0qrK1rbOoaPSsr/J0tSzxtf3tuDMrLXE0rvW1rHtz9a3vcq9oaM8YnI+CjwvcD4KPHA+PHByZSBjbGFzcz0="brush:java;">class Num{ public void max(int a,int b){ System.out.println(a>b?a:b); } public void max(double a,double b){ System.out .println(a>b?a:b); } public void max (int a,int b,int c){ int max=a>b?a:b; System.out.println(max>c?max:c); } } public class L6 { public static void main(String[] args) { Num a=new Num(); a.max(45, 3); a.max(3.2, 6.5); a.max(8, 9, 2); } }上面的例子說明了參數的個數,類型和順序任意一項不同就算不同的參數聲明


四、構造函數(即構造方法)
在Java中,對象是構造出來的,特意用了一個new關鍵字來標示這個創建的過程。
\

class Lion{
	private String name;
	private int age;
	public Lion() {
		System.out.println("無參數構造方法");
	}
	public Lion(String name,int age){//有參數構造方法
		this.name=name;
		this.age=age;
		System.out.println("姓名:"+name+"\t年齡:"+age);
	}
}
public class L7 {
	public static void main(String[] args) {
		Lion a=new Lion();
		Lion b=new Lion("黎開權", 20);
	}
}
我們看到創建對象的過程就是執行構造函數的過程,而且也看到構造方法也可以重載。

注意:構造函數或者說構造方法,它不是方法。它們之間的三大區別
1、構造函數沒有返回值

2、構造函數和類名相同

3、構造函數不能用final、static、abstract修飾


本講就到這裡,Take some time and enjoy it

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved