廖雪峰Java2面向物件程式設計-2資料封裝-1方法過載
阿新 • • 發佈:2019-01-13
方法過載
方法過載Overload是指:多個方法的方法名相同,但各自的引數不同
- 引數的個數不同
- 引數的型別不同
- 引數位置不同
- 方法返回值型別通常都是相同的
目的:相同功能的方法使用同一名字,便於呼叫
如以indexOf()為例
public static void main(String[] args) { String s = "Test"; int n1 = s.indexOf('e');//返回字元的索引 int n2 = s.indexOf("st");//返回字串的索引 int n3 = s.indexOf('t', 2);//從index=2處開始,返回字元的索引 int n4 = s.indexOf("st", 3);//從index=3開始,返回字元的索引。無結果返回-1 System.out.println(n1); System.out.println(n2); System.out.println(n3); System.out.println(n4); }
2.使用過載方法改寫Person類的setName()方法
Person.java
public class Person { private String name; public void setName(String name) { this.name = name; } public void setName(String firstName,String lastName) { this.name = firstName+lastName; } public void setName(String firstName, String middleName,String lastName) { this.name = firstName+ middleName +lastName; } public String getName() { return name; } }
Hello.java
public class Hello { public static void main(String[] args) { Person ming = new Person(); ming.setName("小明"); System.out.println(ming.getName()); Person hong = new Person(); hong.setName("李","紅"); System.out.println(hong.getName()); Person wang = new Person(); wang.setName("王","寶","強"); System.out.println(wang.getName()); } }
3.總結:
- 過載方法應該完成相同的功能,參考String的indexOf()
- 過載方法主要依靠引數型別和數量區分
* indexOf(String str)
* indexOf(String str, int fromIndex) - 不要去交換引數順序
* indexOf(String str, int fromIndex)
* indexOf(int from Index, String str) - 過載方法返回值型別應該相同