方法重载

方法重载Overload是指:多个方法的方法名相同,但各自的参数不同

  • 参数的个数不同
  • 参数的类型不同
  • 参数位置不同
  • 方法返回值类型通常都是相同的

    目的:相同功能的方法使用同一名字,便于调用

    如以indexOf()为例

  1. public static void main(String[] args) {
  2. String s = "Test";
  3. int n1 = s.indexOf('e');//返回字符的索引
  4. int n2 = s.indexOf("st");//返回字符串的索引
  5. int n3 = s.indexOf('t', 2);//从index=2处开始,返回字符的索引
  6. int n4 = s.indexOf("st", 3);//从index=3开始,返回字符的索引。无结果返回-1
  7. System.out.println(n1);
  8. System.out.println(n2);
  9. System.out.println(n3);
  10. System.out.println(n4);
  11. }

2.使用重载方法改写Person类的setName()方法

Person.java

  1. public class Person {
  2. private String name;
  3. public void setName(String name) {
  4. this.name = name;
  5. }
  6. public void setName(String firstName,String lastName) {
  7. this.name = firstName+lastName;
  8. }
  9. public void setName(String firstName, String middleName,String lastName) {
  10. this.name = firstName+ middleName +lastName;
  11. }
  12. public String getName() {
  13. return name;
  14. }
  15. }

Hello.java

  1. public class Hello {
  2. public static void main(String[] args) {
  3. Person ming = new Person();
  4. ming.setName("小明");
  5. System.out.println(ming.getName());
  6. Person hong = new Person();
  7. hong.setName("李","红");
  8. System.out.println(hong.getName());
  9. Person wang = new Person();
  10. wang.setName("王","宝","强");
  11. System.out.println(wang.getName());
  12. }
  13. }

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方法重载的更多相关文章

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

    1.数据封装 一个class可以包含多个field.直接把field用public暴露给外部可能破坏了封装,例如传入不合理的数值(年龄填入1000).如下 public class Person { ...

  2. 廖雪峰Java2面向对象编程-1面向对象-1面向对象基础

    1.对象的概念 面向对象编程:Object-Oriented Programming 对现实世界建立计算机模型的一种编程方法. 现实世界 计算机模型 Java代码 人 类/class class Pe ...

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

    1.继承 继承是一种代码复用的方式. Student与Person有相同部分的代码. Student可以从Person继承,这样Student获得了Person的所有功能,只需要编写新增的功能即可.通 ...

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

    1.接口的定义 抽象方法本质上是定义接口规范. 在抽象类中定义了一个抽象方法,子类中必须实现这个抽象方法. public abstract class Person{ public abstract ...

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

    每个子类都可以覆写父类的方法 如果父类的方法没有实际意义,能否去掉方法的执行语句?子类会报编译错误 如果去掉父类的方法,就失去了多态的特性 可以把父类的方法声明为抽象方法. 如果一个class定义了方 ...

  6. 廖雪峰Java2面向对象编程-6Java核心类-6常用工具类

    1.Math Math提供了数学计算的静态方法 序号 方法 描述 1 abs() 返回参数的绝对值.Math.abs(-9)//9 2 ceil() 返回大于等于( >= )给定参数的的最小整数 ...

  7. 廖雪峰Java2面向对象编程-6Java核心类-5枚举类

    直接定义常量 public class Weekday { //定义int常量 public static final int SUN = 0; public static final int MON ...

  8. 廖雪峰Java2面向对象编程-6Java核心类-4JavaBean

    1.JavaBean定义 符合以下命名规范的class被成为JavaBean private 类型的field 针对这个field的get和set方法 public class Person { pr ...

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

    Java的数据类型: 基本类型:int boolean float 引用类型:所有class类型 为一个基本类型int赋值为null,会提示"incompatible types" ...

随机推荐

  1. css与html 与js的基础语法

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Sample_2-23456.a ...

  2. Python知识点整理,基础3 - 字典操作

  3. linux 控制结构

    一.if 注: 格式1.格式2:一个条件一个命令: 格式3:一个条件两个命令: 格式4:两个条件三个命令,注意条件的写法. 例1: #!/bin/sh#ifTest#to show the metho ...

  4. What is Zeebe?

    转自:https://zeebe.io/what-is-zeebe/ Zeebe is a workflow engine for microservices orchestration. This ...

  5. httpd

    http://httpd.apache.org/docs/2.2/logs.html httpd.conf文件 Configuration and logfile names: If the file ...

  6. python之路---05 字典 集合

    二十.字典 可变数据类型 {key:value}形式   查找效率高   key值必须是不可变的数据类型 1.增删改查 1).增    dic["新key"] = "新v ...

  7. 通过plsql develop查看建表语句

    右键--查看 右下角 如下显示,找出ddl语句 可以看到索引等

  8. docker for mac 安装 kubernetes、kubernetes dashboard

    安装参考地址(按照此文档,安装成功):https://yq.aliyun.com/articles/508460 官方说明:https://kubernetes.io/docs/tasks/acces ...

  9. git在不同平台windows、linux、mac 上换行符的问题

    0.01 不同平台上换行符的问题 1,不同平台对换行符的制定不同 windows <回车换行> (carriage return AND line feed) “\n\r” CRLF Un ...

  10. tp5服务器验证案例

    1.验证器代码 <?php namespace app\user\validate; use think\Validate; use Potting\IDCard; /** * 山区治理报名验证 ...