JAVA中的super和this关键字的使用
一 this关键字
this关键字可以出现在构造方法和实例方法中,不能出现在静态方法中,这是因为静态方法可以用类名来调用,这时可能还没有任何对象诞生。
this主要有两种用法:
1 用在构造方法中,调用本类的其他构造方法。 格式为 this([实参列表]); 通过this调用本类的其他构造方法时,该语句必须出现在构造方法中,并且必须作为第一条语句出现。
2 代指当前对象
例如:
public class Person {
private String name;
private int age;
private String gender;
public Person() { //构造方法一
}
public Person(String name, int age) { //构造方法二
this(name, age, null); //使用this关键字调用本类中的构造方法三
}
public Person(String name, int age1, String gender) { //构造方法三
this.name = name; //因为参数与类中的成员变量名相同,所以用this.name来表示成员变量
age = age1; //因为参数与类中的成员变量名不同,所以可以不实用this.age,直接用age = age1
this.gender = gender;
}
}
二 super关键字
super关键字有两种用法:
1 在子类的构造方法中使用super关键字调用 直接父类 的构造方法,super语句必须是该子类构造方法中的第一句 。如果在子类中没有使用super关键字,系统会默认调用父类没有参数的构造方法,即隐含的使用super();语句,注意这时父类一定应该有一个无参数的构造方法。
2 使用super关键字调用被子类隐藏的成员变量和方法。如果子类定义了和父类具有相同名字的成员变量,子类就隐藏了从父类继承的成员变量。如果子类定义的某个方法与父类定义的某个方法完全相同,从父类继承的该方法就被完全隐藏(即override,覆盖)。
JAVA中的super和this关键字的使用的更多相关文章
- 总结java中的super和this关键字
知识点: 在java类中使用super引用父类的成分,用this引用当前对象 this可以修饰属性.构造器.方法 super可以修饰属性.构造器.方法 关于子类实例化过程中的内存分配,在下一篇博客中说 ...
- Java中的break和continue关键字使用总结
java中的break和continue关键字使用总结 一.作用和区别 break的作用是跳出当前循环块(for.while.do while)或程序块(switch).在循环块中的作用是跳出 ...
- Java中的super与this解析
好了,现在开始讨论this&super这两个关键字的意义和用法. 在Java中,this通常指当前对象,super则指父类的.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象 ...
- Java中替代C# ref/out 关键字方案:
刚学习Java不久,今天遇到一个问题,需要在方法中修改传入的对象的值,确切的说是需要使用一个方法,创建一个对象,并把其引用返回,熟悉C#的我的第一反应就是C#中的ref/out关键字,结果发现Java ...
- 从缓存入门到并发编程三要素详解 Java中 volatile 、final 等关键字解析案例
引入高速缓存概念 在计算机在执行程序时,以指令为单位来执行,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入. 由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这 ...
- Java中的static、final关键字
static static 的含义是静态的,是一个静态修饰符,一般来说,被static修饰的有以下几种,类.变量.方法.代码块. static修饰类 Java中普通的类是不允许被声明为静态的,但是有一 ...
- java中的super限定
super的用法: (1)如果需要在子类中调用父类中被覆盖的实例方法,可以用super限定来调用父类中被覆盖的方法.当然,也可以调用从父类继承的实例变量. public void callOverri ...
- java中static,super,final关键字辨析
1:static关键字 利:1)对对象的共享数据提供单独的空间存储. 2)修饰的方法可以直接被类名调用 弊:1)生命周期长. 2)访问出现限制(只能访问静态) 它可以有静态方法,静态类,静态变量 2: ...
- Java中的super关键字和this关键字作用介绍
一.super关键字的作用 1.子类在构造方法中显示调用父类构造方法 super可以在子类的构造方法中显示调用父类的构造方法:并且这行代码必须出现在子类构造方法的第一行.原因:因为父类构造方法没有执行 ...
随机推荐
- Knockout获取数组元素索引的2种方法,在MVC中实现
原文:Knockout获取数组元素索引的2种方法,在MVC中实现 在遍历数组.集合的时候,通常要获取元素的索引,本篇体验使用Knockout获取索引的2种方法. 假设有这样的一个模型: namespa ...
- 理解Git的工作流程(转)
英文原文:Understanding the Git Workflow 如果你不理解Git的设计动机,那你就会处处碰壁.知道足够多的命令和参数后,你就会强行让Git按你想的来工作,而不是按Git自己的 ...
- OCP读书笔记(17) - 计划任务
轻量级作业: 也称为持久性轻量级作业,如果当我们的数据库每秒钟需要创建.删除或修改数十个或数百个作业时,使用轻量级作业是降低开销的最佳方法 常规作业:是由oracle 11g Scheduler 所支 ...
- Troubleshooting "Global Enqueue Services Deadlock detected" (Doc ID 1443482.1)
In this Document _afrLoop=1021148011984950&id=1443482.1&displayIndex=1&_afrWindowMode= ...
- spring4.1+springmvc4.1+mybatis3.2.8+spring-security3.2.5集成环境建设
在最近使用的项目ssi+spring-security 结构体.建立你自己的家,这是什么环境. 只有记录的目的. 项目结构: 类文件: ...
- crashRpt用法
从官网上下载crashRpt的源代码,按说明编译出对应的lib和dll 1 在编译crashRpt的时候,在环境变量中设置 crashrptDir=D:\work\AIW\WebMicaps\Web ...
- C#的c/s做出开灯关灯计算?
static void light(Boolean[] lights,int n) { if (n <= 1 || lights.Length<5) return; for ...
- hdu 4891---水的问题 但WA非常多
这个问题是在一个坑----即使在使用long long 这将是超出范围 自己显得很长的时间去阅读很多次的称号仍然没想到 当时的想法是要记住----无论如何,我用long long 已经最大范围.当然 ...
- AccountManager教程
API阅读 此类提供所述用户接口到集中登记帐户. 用户只需输入一次帐号password后,您将能够访问internet资源. 不同的在线服务用不同的方式来管理用户,所以account manager ...
- BeagleBone Black 板第三课:Debian7.5系统安装和远程控制BBB板
BBB板第三课:Debian7.5系统安装和远程控制BBB板 由于BBB板系统是Debian 7.4.据说使用Debian系统能够实现非常多BBB板的无缝连接.能够更好的学习和控制BBB板,所以就决定 ...