java面向物件2——過載
阿新 • • 發佈:2019-02-07
1. 方法的過載
方法的是指一個類中可以定義有相同的名字,但引數不同(引數資料型別不同或引數個數不同)的多個方法。呼叫時,會根據不同的引數表選擇對應的方法。只要在幾個方法在呼叫的過程中編譯器能區分開來到底呼叫哪一個不會造成混淆,這幾個方法就構成過載。
//資料型別不同時兩個數的比較
public class TestOverload{
void max(int a,int b){
System.out.println("int");
System.out.println(a>b?a:b);
}
void max(short a, short b){
System.out.println("short");
System.out.println(a>b?a:b);
}
void max(float a, float b){
System.out.println("float");
System.out.println(a>b?a:b);
}
public static void main(String[] args){
TestOverload t = new TestOverload();
//編譯器遇到整數預設為int,所以short和int不會混淆
t.max(3,4);
short a = 3;
short b = 4;
t.max(a,b);
}
}
2. 構造方法的過載
與普通方法一樣。
public class TestOverLoad {
public static void main(String[] args) {
//構造方法的過載
Person p = new Person();
Person p1 = new Person(400);
Person p2 = new Person(2 ,500);
//普通方法的過載
p.info();
p.info("ok");
}
}
class Person {
Person() {
id = 0;
age = 20;
}
Person(int _id) {
id = _id;
age = 23;
}
Person(int _id, int _age) {
id = _id;
age = _age;
}
//成員變數定義
private int id;
private int age = 20;
//方法定義
public int getAge() {return age;}
public void setAge(int i) {age = i;}
public int getId() {return id;}
void info() {
System.out.println("my id is : " + id);
}
void info(String t) {
System.out.println(t + " id " + id);
}
}