方法重载

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

  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. Blender 画正四面体

    正四面体打开“添加网格”菜单(Shift + A),然后选择“锥形”.将“顶点数”设置为3,将“半径1”保留为默认值1.000,将“半径2”设置为0.000.现在,将深度设置为 {根号2,约等于1.4 ...

  2. Atom编辑神器

    最近喜欢上了Atom编辑神器,安装就不说了,重点讲配置. 一:软件配置 1.先将欢迎界面去掉,每次打开Atom的时候都会出现,实在是很烦人. 就在欢迎界面里面有个复选框,去掉选中就可以了. 2.让At ...

  3. hdu1796 How many integers can you find 容斥原理

    Now you get a number N, and a M-integers set, you should find out how many integers which are small ...

  4. springMvc前后台传值各种情况

    本文转载至:https://blog.csdn.net/pangliang_csdn/article/details/52486787 以后自述...

  5. mysql中不直接通过密码连接 还要指定ip地址进行连接----------DCL数据库控制语言

    线上如果用root超级用户连接数据库,非常容易造成隐私泄漏.一般线上不用root数据控制. 今天和大家分享的是  输入密码还不可以连接数据库,必须要输入ip地址以后,才可以连接. 正常的访问数据库都是 ...

  6. 本地连接服务器的mongodb

    首先说中心思想,和连接本地数据库是一样的,不同的是修改数据库的配置项: module.exports = { dbs:'mongodb://账号:密码@服务器ip27017/数据库名称' } 但是总是 ...

  7. MongoDB 副本集 pymongo使用

    搭建没有仲裁节点的副本集,推荐使用 2.清空node2的db文件夹 和 log 文件夹 rm -rf /var/lib/mongod/* rm -rf /var/log/mongod/* 3.修改no ...

  8. MySQL Transaction--TPS计算规则

    TPS计算规则 在MYSQL 中,TPS(Transaction Per Second)的计算方法为 (com_commit+com_rollback)/time,但com_commit和com_ro ...

  9. DevExpress DateEdit控件选择精确到秒

    先看看下面的效果图: 设置以下属性 dateEdit1.Properties.VistaDisplayMode = DevExpress.Utils.DefaultBoolean.True; date ...

  10. yum 安装 Mysql 5.7,忘记密码解决方案

    Linux卸载yum安装的mysql 一.系统情况 Linux:Centos7.4(64位) Mysql:5.6 二.卸载mysql 1.查看安装了哪些mysql程序 Bash rpm -qa | g ...