重温java知识(七、this关键字之二、(方法))

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

    推荐阅读