廖雪峰Java2面向对象编程-2数据封装-1方法重载
方法重载
方法重载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) - 重载方法返回值类型应该相同