廖雪峰Java2面向对象编程-2数据封装-1方法重载

Posted singleSpace

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了廖雪峰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)
  • 重载方法返回值类型应该相同

以上是关于廖雪峰Java2面向对象编程-2数据封装-1方法重载的主要内容,如果未能解决你的问题,请参考以下文章

廖雪峰Java2-2数据封装-2构造方法

廖雪峰Java2面向对象编程-4抽象类和接口-1抽象类

廖雪峰Java2面向对象编程-6Java核心类-1字符串和编码

廖雪峰Java2面向对象编程-6Java核心类-3包装类型

廖雪峰Java2面向对象编程-3继承和多态-1继承

廖雪峰Java2面向对象编程-5包和classpath-1包package