天天看點

Java方法重載、this關鍵字用法方法重載this關鍵字下一篇文章

上一篇文章:Java中的數學函數、執行個體成員與類成員

本篇内容

  • 方法重載
  • this關鍵字
    • 用在執行個體方法中調用成員變量
    • 方法體内部的局部變量與成員變量重名時
    • 用在構造方法中調用本類體中的方法
    • 用在構造方法中調用本類體中其他的構造方法
  • 下一篇文章

Java中的兩種多态:重載(Overload)和重寫(Override),重寫是與繼承 *有關的多态。

方法重載

方法重載 通俗講就是在類體中定義了一些方法名相同的方法。雖然方法名相同,但是每個方法的參數個數或參數類型不同,以此來區分不同的方法,防止歧義。

class Compute {    //Compute類
	static int aplusb(int x, int y){     //定義一個類方法
		return x + y;
	}
	static double aplusb(double x, int y){
		return x + y;
	}
	static float aplusb(float x, int y){
		return x + y;
	}
}
public class Example {
	public static void main(String args[]){
		System.out.println(Compute.aplusb(3, 3));    //類方法可以通過類名直接調用
		System.out.println(Compute.aplusb(3.0, 3));
		System.out.println(Compute.aplusb(3.0F, 3));
	}
}
           
Java方法重載、this關鍵字用法方法重載this關鍵字下一篇文章
class Compute {
	float aplusb(int a, int b){     //執行個體方法
		return a + b;
	}
	static double aplusb(double a, int b){     //類方法
		return a + b;
	}
}
class Example {
	public static void main(String args[]){
		System.out.println(Compute.aplusb(3.0, 3));   //類方法通過類名直接調用
		//執行個體方法使用前必須先建立一個該類的對象
		Compute com = new Compute();    //建立一個名為com的Compute類對象
		System.out.println(com.aplusb(3, 3));
		System.out.println(com.aplusb(3.0, 3));    //建立的對象既可以調用執行個體方法,也可以調用類方法
	}
}
           
Java方法重載、this關鍵字用法方法重載this關鍵字下一篇文章

this關鍵字

用在執行個體方法中調用成員變量

在執行個體方法中使用成員變量

this.成員變量名

class A {
	int num = 666;
	void outPut(){
		System.out.println("成員變量num: "+this.num);
	}
}
public class Example {
	public static void main(String args[]){
		A a = new A();
		a.outPut();
	}
}
           

一般情況下,沒有局部變量與成員變量重名,this都是省略的:

class A {
	int num = 666;
	void outPut(){
		System.out.println("成員變量num: "+num);
	}
}
public class Example {
	public static void main(String args[]){
		A a = new A();
		a.outPut();
	}
}
           

方法體内部的局部變量與成員變量重名時

//使用this關鍵字之前
class A {
	int num = 666;    //成員變量
	void outPut(){     //定義了一個無傳回值的方法
		int num = 777;       //局部變量num與成員變量num重名了
		System.out.println("此時輸出的num是局部變量num"+num);
	}
}
public class Example {
	public static void main(String args[]){
		A a = new A();  //建立一個A類的對象a
		a.outPut();   //調用方法
	}
}
           
Java方法重載、this關鍵字用法方法重載this關鍵字下一篇文章
//使用this關鍵字之後
class A {
	int num = 666;    //成員變量
	void outPut(){     //定義了一個無傳回值的方法
		int num = 777;       //局部變量num與成員變量num重名了
		System.out.println("此時輸出的num是成員變量num"+this.num);
	}
}
public class Example {
	public static void main(String args[]){
		A a = new A();  //建立一個A類的對象a
		a.outPut();   //調用方法
	}
}
           
Java方法重載、this關鍵字用法方法重載this關鍵字下一篇文章

用在構造方法中調用本類體中的方法

class Example {
	Example(){
		this.outPut();    //在構造方法中調用本類體當中的方法
	}
	void outPut(){
		System.out.println("java程式設計真有趣");
	}
	public static void main(String args[]){
		Example a = new Example();
	}
}
           
Java方法重載、this關鍵字用法方法重載this關鍵字下一篇文章

為了簡化,在這種情況下,this關鍵字也可以省去:

//在這種情況下,this關鍵字也可以省去
class Example {
	Example(){
		outPut();    //在構造方法中調用本類體當中的方法,省去this關鍵字
	}
	void outPut(){
		System.out.println("java程式設計真有趣");
	}
	public static void main(String args[]){
		Example a = new Example();
	}
}
           
Java方法重載、this關鍵字用法方法重載this關鍵字下一篇文章

用在構造方法中調用本類體中其他的構造方法

class Example {
	int a;
	int b;
	double c;
	Example(int x, int y){
		a = x;
		b = y;
	}
	Example(int x, int y, double z){
		this(x, y);       //調用了上面的那個構造方法
		c = z;
	}
	public static void main(String args[]){
		Example a = new Example(666, 999, 1.314);
		System.out.println(a.a);
		System.out.println(a.b);
		System.out.println(a.c);
	}
}
           
Java方法重載、this關鍵字用法方法重載this關鍵字下一篇文章

這種寫法是為了簡化寫法,等效于:

class Example {
	int a;
	int b;
	double c;
	Example(int x, int y){
		a = x;
		b = y;
	}
	Example(int x, int y, double z){
		a = x;
		b = y;
		c = z;
	}
	public static void main(String args[]){
		Example a = new Example(666, 999, 1.314);
		System.out.println(a.a);
		System.out.println(a.b);
		System.out.println(a.c);
	}
}
           

下一篇文章

Java中的包、import語句、通路權限