zoukankan      html  css  js  c++  java
  • 廖雪峰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)
    • 重载方法返回值类型应该相同
  • 相关阅读:
    【译文】四十二种谬误(一)
    .NET笔记(二)
    设计模式C#实现(十六)——中介者模式
    设计模式C#实现(十五)——命令模式
    《程序员修炼之道》笔记
    《学会提问》读书笔记
    设计模式C#实现(十四)——责任链模式
    设计模式C#实现(十三)——享元模式(蝇量模式)
    学以致用——读《学会提问》
    访问苹果开发者网站太慢
  • 原文地址:https://www.cnblogs.com/csj2018/p/10263377.html
Copyright © 2011-2022 走看看