Java語言的方法重載
方法的重載有3個(gè)條件
1.函數(shù)位于同一類下面;
2.方法名必須一樣;
3.方法的參數(shù)列表不一樣;
下面該類中定義了3個(gè)方法,但是3個(gè)方法的參數(shù)列表不一樣;

在主函數(shù)中調(diào)用這個(gè)類:

看看運(yùn)行結(jié)果:

從控制臺(tái)的輸出可以看出,我在主函數(shù)中實(shí)例化一個(gè)student對(duì)象,分別調(diào)用了這個(gè)對(duì)象的3中方法,由于3個(gè)方法的參數(shù)不一樣,所以可以看到輸出的結(jié)果也不一樣;
構(gòu)造函數(shù)
構(gòu)造函數(shù)的使用:
定義一個(gè)Sutdent類,類里面定義兩個(gè)屬性:
class Student {
String name;
int age;
}
主函數(shù)中實(shí)例化兩個(gè)對(duì)象:
public class Test {
/**
* @param args
* @author weasleyqi
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Student st = new Student();
st.name = "張三";
st.age = 10;
Student st2 = new Student();
st2.name = "李四";
st2.age = 20;
}
}
從主函數(shù)可以看出,此時(shí)的Student對(duì)象的屬性比較少,創(chuàng)建的實(shí)例也比較少,如果屬性多再創(chuàng)建多個(gè)實(shí)例的話,這個(gè)代碼的量就很大,這時(shí)候,我們可以添加一個(gè)帶參數(shù)的構(gòu)造函數(shù),如下:
class Student {
Student(String n, int a)
{
name = n;
age = a;
}
String name;
int age;
}
主函數(shù)的代碼如下:
public class Test {
/**
* @param args
* @author weasleyqi
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Student st = new Student("張三",10);
Student st2 = new Student("李四",20);
System.out.println("st的name:" + st.name +", st的age:" + st.age);
System.out.println("st2的name:" + st2.name +", st的age:" + st2.age);
}
}
此時(shí)系統(tǒng)運(yùn)行的結(jié)果如圖:

從運(yùn)行結(jié)果可以看出,我們?cè)趯?shí)例化Student對(duì)象的時(shí)候,調(diào)用了帶參數(shù)的構(gòu)造函數(shù),節(jié)省了很多的代碼,要注意:如果我們?cè)赟tudent類中定義了一個(gè)帶參數(shù)的構(gòu)造函數(shù),但是沒有寫無參的構(gòu)造函數(shù),這個(gè)時(shí)候我們?cè)谥骱瘮?shù)中就不能定義 Student st = new Student();如果在Student類中加上無參的構(gòu)造函數(shù)就可以實(shí)現(xiàn)這樣的實(shí)例化。