1、this调用构造方法

  (1)构造方法之间的调用,可以通过this关键字来完成;

  (2)构造方法调用格式

this(参数列表);

  (3)小案例

 class Person {
// Person的成员属性
private int age;
private String name; // 无参数的构造方法
Person() {
} // 给姓名初始化的构造方法
Person(String nm) {
name = nm;
} // 给姓名和年龄初始化的构造方法
Person(String nm, int a) {
// 由于已经存在给姓名进行初始化的构造方法 name = nm;因此只需要调用即可
// 调用其他构造方法,需要通过this关键字来调用
this(nm);
// 给年龄初始化
age = a;
}
}

2、成员变量和局部变量同名问题

  当在方法中出现了局部变量和成员变量同名的时候,可以在成员变量名前面加上this.来区别成员变量和局部变量。

 class Person {
private int age;
private String name; // 给姓名和年龄初始化的构造方法
Person(String name, int age) {
// 当需要访问成员变量是,只需要在成员变量前面加上this.即可
this.name = name;
this.age = age;
} public void speak() {
System.out.println("name=" + this.name + ",age=" + this.age);
}
} class PersonDemo {
public static void main(String[] args) {
Person p = new Person("张三", 23);
p.speak();
}
}

3、在Person类中定义功能,判断两个人是否是同龄人

 class Person {
private int age;
private String name; // 给姓名和年龄初始化的构造方法
Person(String name, int age) {
// 当需要访问成员变量是,只需要在成员变量前面加上this.即可
this.name = name;
this.age = age;
} public void speak() {
System.out.println("name=" + this.name + ",age=" + this.age);
} // 判断是否为同龄人
public boolean equalsAge(Person p) {
// 使用当前调用该equalsAge方法对象的age和传递进来p的age进行比较
// 由于无法确定具体是哪一个对象调用equalsAge方法,这里就可以使用this来代替
/*
* if(this.age == p.age) { return true; } return false;
*/
return this.age = p.age;
}
}

最新文章

  1. Springboot框架
  2. Atitti 大话存储读后感 attilax总结
  3. 雅美尓(yaml)实战
  4. 签名 cd
  5. c++/java/c# 几种编程语言的指针、引用比较
  6. HTML第四天学习笔记
  7. Adnroid Studio使用技巧
  8. android通过代码判断手机是否root
  9. 打包zip下载
  10. 文件lseek操作产生空洞文件的方法
  11. 数据分析 - 美国金融科技公司Prosper的风险评分分析
  12. SQL中常用数学函数
  13. 剑指offer(52)正则表达式的匹配
  14. Javascript 来判断数组的假值如 null false "" NaN
  15. Hive UDF作业
  16. Python之 ---成员修饰符
  17. .net 根据网址生成静态页
  18. Slickflow.NET 开源工作流引擎高级开发(三) -- 并行分支容器与会签工作流模式的组合
  19. 20165318 2017-2018-2 《Java程序设计》第五周学习总结
  20. 2018 CTSC&APIO 游记

热门文章

  1. Redis基础理论
  2. python_22(Form-CRM)
  3. SSAS 维度属性自定义排序
  4. nodejs 生成验证码
  5. iOS Block的本质(四)
  6. 限制UITextField输入长度
  7. UVA1660 Cable TV Network (无向图的点连通度)
  8. Codeforces Round #317 div2 E div1 C CNF 2 (图论,匹配)
  9. "Uncaught SyntaxError: Unexpected token <"错误完美解决
  10. 用函数创建对象、类创建对象,以及使用prototype的好处