廖雪峰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数据封装-1方法
1.数据封装 一个class可以包含多个field.直接把field用public暴露给外部可能破坏了封装,例如传入不合理的数值(年龄填入1000).如下 public class Person { ...
- 廖雪峰Java2面向对象编程-1面向对象-1面向对象基础
1.对象的概念 面向对象编程:Object-Oriented Programming 对现实世界建立计算机模型的一种编程方法. 现实世界 计算机模型 Java代码 人 类/class class Pe ...
- 廖雪峰Java2面向对象编程-3继承和多态-1继承
1.继承 继承是一种代码复用的方式. Student与Person有相同部分的代码. Student可以从Person继承,这样Student获得了Person的所有功能,只需要编写新增的功能即可.通 ...
- 廖雪峰Java2面向对象编程-4抽象类和接口-2接口
1.接口的定义 抽象方法本质上是定义接口规范. 在抽象类中定义了一个抽象方法,子类中必须实现这个抽象方法. public abstract class Person{ public abstract ...
- 廖雪峰Java2面向对象编程-4抽象类和接口-1抽象类
每个子类都可以覆写父类的方法 如果父类的方法没有实际意义,能否去掉方法的执行语句?子类会报编译错误 如果去掉父类的方法,就失去了多态的特性 可以把父类的方法声明为抽象方法. 如果一个class定义了方 ...
- 廖雪峰Java2面向对象编程-6Java核心类-6常用工具类
1.Math Math提供了数学计算的静态方法 序号 方法 描述 1 abs() 返回参数的绝对值.Math.abs(-9)//9 2 ceil() 返回大于等于( >= )给定参数的的最小整数 ...
- 廖雪峰Java2面向对象编程-6Java核心类-5枚举类
直接定义常量 public class Weekday { //定义int常量 public static final int SUN = 0; public static final int MON ...
- 廖雪峰Java2面向对象编程-6Java核心类-4JavaBean
1.JavaBean定义 符合以下命名规范的class被成为JavaBean private 类型的field 针对这个field的get和set方法 public class Person { pr ...
- 廖雪峰Java2面向对象编程-6Java核心类-3包装类型
Java的数据类型: 基本类型:int boolean float 引用类型:所有class类型 为一个基本类型int赋值为null,会提示"incompatible types" ...
随机推荐
- C++学习(十一)(C语言部分)之 练习
/* 1.if 输入一个成绩 进行分级 输入一个数字 判断是否是水仙花数 比如 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 2.switch 提示 先对数字做处理 ...
- 重新生成ssh
解决码云出现git@gitee.com: Permission denied (publickey). 很久之前好像改了ssh的一些配置,导致现在对git进行一些操作时,就会出现 当时就去百度,结果很 ...
- 无线模块 RXB12-315m TXB12-315M 应用
近期有个产品用到这对模块,因为没有什么技术支持,就直接上机调试.測试结果为带障碍发射距离60米. 下面是应用的几个知识点: 1:编程操作.事实上比較简单,调制信号315M是模块自带的,不须要调制和解调 ...
- chrome浏览器好用的插件
1.Chrome批量保存所有选项卡网址 + 批量打开复制网址小插件 批量保存所有选项卡网址插件:Copy All Urls 经常搜索一些东西,下班时无法处理完所有网页内容,比如做笔记什么的,又不舍得关 ...
- 动态quartz新增、修改、删除
1.定义job导出类 public class MyQuartzJob implements Job { private static Logger logger = LoggerFactory.ge ...
- tomcat源码阅读之集群
一. 配置: 在tomcat目录下的conf/Server.xml配置文件中增加如下配置: <!-- Cluster(集群,族) 节点,如果你要配置tomcat集群,则需要使用此节点. clas ...
- mongodb之 3.4.0 mongodb sharing 副本集群搭建
系统系统 centos6.5三台服务器:10.100.25.42/43/44安装包: mongodb-linux-x86_64-rhel62-3.4.0.tgz 服务器规划:mongos mongos ...
- SQL Server数据库有三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式
SQL Server数据库有三种恢复模式:简单恢复模式.完整恢复模式和大容量日志恢复模式: 1.Simple 简单恢复模式, Simple模式的旧称叫”Checkpoint with truncate ...
- 用express快速写一个hello world
首页要具备 node.js环境, npm环境 创建一个目录, 然后进入此目录作为工作目录 mkdir myapp cd myapp 通过npm init 创建一个package.json文件 npm ...
- React 使用 PropTypes 进行类型检查
注意: React.PropTypes 自 React v15.5 起已弃用.请使用 prop-types 库代替. defaultProps 用来确保 this.props.name 在父组件没有特 ...