博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
this与super关键字
阅读量:6715 次
发布时间:2019-06-25

本文共 1632 字,大约阅读时间需要 5 分钟。

this

this使用的场景一

  • 当属性名与方法的参数名相同的时候,可以使用 this.名称 表示属性名,而使用 名称 表示参数名。
1 String name = "野猫";2 void setName(String name) {3 // this.name 代表属性名name4 // name 代表参数名5   this.name = name;6 }
  • 如果参数名与属性名不相同,这样既可以使用this,也可以不用

this使用的场景二

  • 在一个构造器中调用另一个构造器 使用this()
String name;// 在一个构造器中调用另一个构造器 使用this()Cat() {  this("野猫");}Cat(String name) {this.name = name;}

 

this使用的场景三

  • 返回当前类对象本身。以便使用者进行链式调用(初学者慎用)
int age = 0;Cat incr() {  age++;  return this;}
// 年龄增加 链式调用(初学者不建议使用)cat1.incr().incr().incr().incr();System.out.println(cat1.age);

 

this使用的场景四

  • 把this作为参数传递到方法中
public class Fruit {  String name;  Fruit(String name) {  this.name = name;}// 水果被人吃void getEated(Man man) {  man.eat(this);}}
public class Man {  void eat(Fruit fruit) {    System.out.println("man eat " + fruit.name);  }}
// 水果被人吃Man man = new Man();Fruit fruit = new Fruit("apple");fruit.getEated(man);

 

super

super是关键字。表示当前类父类的引用。

super使用场景一

  • 在子类中访问父类的方法或属性
public class Animal {public void eat() {System.out.println("Animal eat");}}
public class Dog extends Animal {public void eat() {System.out.println("Dog eat");}public void tryeat() {super.eat();}}

 

Super使用场景二

  • 在子类的构造器中,调用父类的构造器
public class Animal {public Animal() {System.out.println("Animal Constructor");}}
public class Dog extends Animal {public Dog(String name) {System.out.println("Dog Constructor");}public Dog() {super();}}

 

如果一个类中不写任何构造器,相当于

public Cat() {super();}

 

如果写了构造器,但其中不写任何super的东西 相当于在第一行插入

super();

 

转载于:https://www.cnblogs.com/glennwang/p/7270475.html

你可能感兴趣的文章
统计一个文件中出现字符'a'的次数
查看>>
将Eclipse包括第一3正方形jar包裹Project Export并产生能够执行jar
查看>>
Google Pagespeed,自动压缩优化JS/CSS/Image
查看>>
Gentoo源码安装图解
查看>>
【转载】COM 组件设计与应用(三)——数据类型
查看>>
Python yield与实现
查看>>
购物车特效收集
查看>>
Access中一句查询代码实现Excel数据导入导出
查看>>
2015第49周二
查看>>
Sphinx/Coreseek 4.1的安装流程
查看>>
邮件服务器Postfix的管理 重启php-fpm
查看>>
Android Studio 项目代码全部消失--出现原因及解决方法
查看>>
SQL Server---存储过程
查看>>
MySQL Performance-Schema(二) 理论篇
查看>>
搭建SSH详细步骤及相关说明
查看>>
Android IOS WebRTC 音视频开发总结(五五)-- 音视频通讯中的抗丢包与带宽自适应原理...
查看>>
Libgdx: 将Texturepacker打包的PNG图片还原成一张一张的单个的
查看>>
再议Swift操作符重载
查看>>
pc机进入android的shell
查看>>
javascript Date format(js日期格式化)
查看>>