原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/8483623.html

一、概述

  Java中this有两种用途,一种是用于指代当前对象,一种适用于指代构造器,当前类的构造器。

  super就专用于指代构造器,而且是超类的构造器。

  this关键字和super关键字关联之处来与二者皆可用于构造器中来调用其他构造器。

二、this作用

2.1 指代当前对象

  this指代当前对象时,是属于对象级别的存在,不可用于类级别的内容(静态内容)中。

  this多用于变量名与参数名称存在冲突时,用于区分对象的变量与参数。下面代码第9行的this就是这个用途。

 public class ThisTest {
private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}

2.2 指代构造器

  this指代构造器的时候,只能指代当前类的中的构造器,而且只能写在构造器中,且位于第一行,不能与super同时出现。

 public class ThisTest {
public ThisTest(){}
public ThisTest(int i){
this();
}
public ThisTest(int i,int j){
this(i);
}
}

  无参表示调用无参构造器,带参数表示调用指定参数构造器。

三、super作用

  super类似于this第二个作用,不过它由于指代父类的构造器。

 class Father{
Father(){}
Father(String name){
this();
}
}
class Son extends Father{
Son(){
super();
}
Son(String name){
super(name);
}
}

  注意,如果父类中无无参构造器,那么子类中也不应该存在无参构造器。

  super的用法和this类似。

最新文章

  1. eclipse项目迁移到android studio(图文最新版)
  2. MVC + EF + Bootstrap 2 权限管理系统入门级(附源码)
  3. Chrome 文件另存为和打开本地资源时会卡死的问题
  4. yii2的安装
  5. 208. Implement Trie (Prefix Tree)
  6. Oracle的%type和%rowtype
  7. C++利用不完全实例化来获得函数模板参数的返回值和参数
  8. margin:0 auto在ie7浏览器里面无效
  9. java封装的方法
  10. SmartCoder每日站立会议 01
  11. 项目Alpha冲刺Day2
  12. Mac 下安装安卓 apk 文件
  13. ILRuntime入门笔记
  14. JS for循环 if判断、white循环。小练习
  15. [Swift]LeetCode334. 递增的三元子序列 | Increasing Triplet Subsequence
  16. 【java】字符串处理技巧记录
  17. php判断语句
  18. POJ1061 青蛙的约会(扩展欧几里得)题解
  19. sgu108. Self-numbers 2 滚动数组 打表 难度:1
  20. LAMP配置NFS页面共享,autofs实现挂载,DNS实现名称解析,纯手动操作

热门文章

  1. Spring核心
  2. 收集几个html和element-ui的录入控件
  3. c语言小程序以及java生成注释文档方法
  4. alfred3配置
  5. PIL库图像处理
  6. 《JavaScript 高级程序设计》读书笔记二 使用JavaScript
  7. linux下tomcat服务器的相关命令
  8. Converting Recursive Traversal to Iterator
  9. 包建强的培训课程(9):Android App性能优化
  10. MySQL Schema与数据类型的优化