1、通过“this”调用本类普通方法的例子:
package com.mydemo;
// 创建一个“PersonDemo”类
public class PersonDemo {
public static void main(String args[]) {
Person per = new Person("张三", 18);
// 声明并实例化对象
per.tell();
// 进行方法的调用
}
}// 定义一个“人”类
class Person {
private String name;
// 【成员属性】人的姓名
private int age;
// 【成员属性】人的年龄/**
* 定义双参构造方法,该方法中的参数名称与成员属性名称相同
* @param name
* @param age
*/
public Person(String name, int age) {
this.setName(name);
// 调用本类setName()方法
setAge(age);
// 不使用“this.方法()”也表示调用本类方法
}/**
* 定义一个信息获取的操作方法,此方法可以输出属性内容
*/
public void tell() {
// 使用this明确标注本类属性
System.out.println("姓名:" + this.name + "、年龄:" + this.age);
}public String getName() {
return name;
}public void setName(String name) {
this.name = name;
}public int getAge() {
return age;
}public void setAge(int age) {
this.age = age;
}}
运行结果:姓名:张三、年龄:18
2、通过“this()”实现本类构造方法的互相调用的例子:【所有类的构造方法是在对象实例化的时候被默认调用,而且是在调用普通方法之前调用,所以使用this()调用构造方法的操作,一定要放在构造方法的首行】
package com.mydemo;
// 创建一个“PersonDemo”类
public class PersonDemo {
public static void main(String args[]) {
Person per = new Person("张三", 18);
// 声明并实例化对象
per.tell();
// 进行方法的调用
}
}// 定义一个“人”类
class Person {
private String name;
// 【成员属性】人的姓名
private int age;
// 【成员属性】人的年龄// 【构造方法重载】无参构造
public Person() {
System.out.println("****** 一个新的Person类对象实例化了 ******");
}// 【构造方法重载】单参构造
public Person(String name) {
this();
// 调用本类无参构造---该语句只能够放在构造方法的首行
this.name = name;
// 设置name属性内容
}// 【构造方法重载】双参构造
public Person(String name, int age) {
this(name);
// 调用本类单参构造---该语句只能够放在构造方法的首行
this.age = age;
// 设置age属性内容
}/**
* 定义一个信息获取的操作方法,此方法可以输出属性内容
*/
public void tell() {
// 使用this明确标注本类属性
System.out.println("姓名:" + this.name + "、年龄:" + this.age);
}public String getName() {
return name;
}public void setName(String name) {
this.name = name;
}public int getAge() {
return age;
}public void setAge(int age) {
this.age = age;
}}
运行结果:
****** 一个新的Person类对象实例化了 ******
姓名:张三、年龄:18
【重温java知识(七、this关键字之二、(方法))】3、利用构造方法相互调用实现代码重用的例子:【所有类的构造方法是在对象实例化的时候被默认调用,而且是在调用普通方法之前调用,所以使用this()调用构造方法的操作,一定要放在构造方法的首行】
package com.mydemo;
// 创建一个“EmpDemo”类
public class EmpDemo {public static void main(String args[]) {
Emp emp = new Emp(9999, "张三", "研发部", 30000.00);
//Emp emp = new Emp(9999, "张三", "研发部");
//Emp emp = new Emp(9999, "张三");
//Emp emp = new Emp(9999);
//Emp emp = new Emp();
System.out.println(emp.getInfo());
}}// 定义一个“员工”类
class Emp {
private long empNo;
// 员工编号
private String empName;
// 员工姓名
private String deptName;
// 部门名称
private double salary;
// 基本工资// 【构造方法重载】四参构造
public Emp(long empNo, String empName, String deptName, double salary) {
this.empNo = empNo;
// 设置empNo属性内容
this.empName = empName;
// 设置empName属性内容
this.deptName = deptName;
// 设置deptName属性内容
this.salary = salary;
// 设置salary属性内容
}// 【构造方法重载】三参构造
public Emp(long empNo, String empName, String deptName) {
// 调用四参构造方法
this(empNo, empName, deptName, 2500.00);
}// 【构造方法重载】双参构造
public Emp(long empNo, String empName) {
// 调用四参构造方法
this(empNo, empName, "未定", 2500.00);
}// 【构造方法重载】单参构造
public Emp(long empNo) {
// 调用四参构造方法
this(empNo, "新来的", "未定", 2500.00);
}// 【构造方法重载】无参构造
public Emp() {
// 调用四参构造方法
this(1000, "无姓名", "未定", 0.0);
}public String getInfo() {
String info = "员工编号:" + this.empNo + "、员工姓名:" + this.empName + "、部门名称:" + this.deptName + "、基本工资:" + this.salary;
return info;
}public long getEmpNo() {
return empNo;
}public void setEmpNo(long empNo) {
this.empNo = empNo;
}public String getEmpName() {
return empName;
}public void setEmpName(String empName) {
this.empName = empName;
}public String getdeptName() {
return deptName;
}public void setdeptName(String deptName) {
this.deptName = deptName;
}public double getSalary() {
return salary;
}public void setSalary(double salary) {
this.salary = salary;
}}
运行结果:
员工编号:9999、员工姓名:张三、部门名称:研发部、基本工资:30000.0
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)