1. 程式人生 > >面向物件——普通方法及構造方法及帶參方法和方法過載

面向物件——普通方法及構造方法及帶參方法和方法過載

普通方法

  類的方法是為了完成某個特定的應用程式功能存在的,我們要實現程式的某些功能的時候,一般都是某些類的功能,比如上一篇中的學生類,有一個展示學生資訊的方法,我們就可以把它放到學生類裡面(因為只要是學生,他就都有這個展示資訊的功能),而方法是有返回值的,也可以沒有返回值,返回型別為void。有返回值的時候,方法最後必須return 返回值。如:

//這是一個show方法,只是輸出hello,返回值為void
public void show(){ System.out.print("hello"); }

  

//這個show方法一樣可以輸出hello,但是他返回型別是String,所以必須return 一個String型別的東西,不一定是s,只要是String型別的就可以,比如return ""; 一樣可以執行,但是測試輸出的時候,輸出的不是hello,因為return返回什麼,就給什麼。

public String show(){ String s="hello" return s; }

構造方法和帶參構造方法

  每一個類都會預設有一個無參的構造方法,構造方法的方法名是和型別一致的,構造方法是缺少返回值的,如:

//Student類的預設無參構造方法Student()
public class Student{ public Student(){ } }

  無參的構造方法寫不寫都是存在的,但是如果寫了一個帶參的構造方法,預設的無參構造方法就會被帶參的構造方法覆蓋掉,這時候如果還想使用無參的構造方法,就需要手動寫出來。

  一般更多傾向於使用帶參的構造方法

  帶參構造方法的意義就在於建立物件的時候就可以直接初始化物件,省去程式碼的繁瑣,其實我們每一次建立一個物件,都在呼叫構造方法,例如:

public class Text {

	public static void main(String[] args) {
         //new 後面的 Student()就是呼叫了Student類的構造方法 Student s=new Student(); s.name="張三"; s.age=18; s.num=2014132209; s.score=100; s.showInfo(); } }

  所以我們可以寫一個帶參的構造方法,在建立物件的時候直接賦值初始化物件,減少程式碼量,如:

public class Student {
	public String name;//學生姓名
	public int age;//學生年齡
	public int num;//學生學號
	public float score;//學生成績
	
     public Student() {} public Student(String name, int age, int num, float score) { super(); this.name = name; this.age = age; this.num = num; this.score = score; } public void showInfo(){ System.out.println("姓名:"+name+"年齡:"+age+"學號:"+num+"成績:"+score); } }

  這就寫了一個帶參的構造方法,我們在main方法中建立物件的時候就可以直接賦值了:

  一樣的效果,更簡單的配方,這就是帶參構造方法的好處。

 

普通帶參方法

  普通帶參方法其實就是main方法中你呼叫這個普通方法的時候,你給我一個東西,我在我的方法裡面有使用到你給我的這個東西(引數)進行運算或者判斷等等實現具體的功能,再返回給你你需要的東西,在之後的具體專案中再深入體會。

  帶參方法有一下注意事項:

  1.方法定義處,引數叫作形式引數(形參),主要來約束引數的型別。

  2.形參名字可以隨意(但要具有意義),遵循駝峰命名規則---studentName;

  3.方法調用出處,引數叫作實際引數(實參),名字也要有意義,遵循駝峰規則。

  4.形參和實參型別必須一致,名字可以不一致,也可以一致。

  5.方法有沒有返回值,和方法有沒有引數,沒有任何關係。

  6.方法引數可以有多個,多個引數之間用逗號隔開。

  7.多個形參和實參的數量要一致,資料型別也要一致。

  當引數傳遞為基本資料型別的時候,引數變化不保留。

  當引數傳遞為引用資料型別的時候,引數變化會保留。Stiring和陣列都是引用資料型別。

 

方法過載

  就是一個類中的方法,允許出現多個同名但不同參的方法,叫作方法過載,主要為了方便呼叫方法的時候需要傳參的型別可能有時多有時少,但是方法的意義都是一樣的,增加程式碼的重用性和可閱讀性,如:

public Student(String name, int age, int num, float score) {
		super();
		this.name = name;
		this.age = age;
		this.num = num;
		this.score = score;
	}
	public Student(int age, int num, float score) {
		this.age = age;
		this.num = num;
		this.score = score;
	}
	public Student(int num, float score) {
		this.num = num;
		this.score = score;
	}