Java基础(basis)-----关键字this和super的作用
1.关键字this
- 可以用来修饰属性、方法、构造器;this理解为当前对象或当前正在创建的对象
- 局部变量与成员变量同名,成员变量被屏蔽,用"this.成员变量"的方式访问成员变量
- 可以在构造器中通过“this(形参)”的方式显示的调用本类中其它重载的指定的构造器,在构造器内部必须声明在首行
package com.keyword; /** * this关键字 * * @author yyx 2019年2月15日 */ public class ThisDemo { private String stuName; private Integer stuAge; private String stuSex; public ThisDemo() { super(); System.out.println("无参构造函数"); this.sayWord(); //this调用方法 } public ThisDemo(String stuName, Integer stuAge) { this(); // 调用重载的构造方法 this.stuName = stuName; this.stuAge = stuAge; System.out.println("两个参数的构造函数"); } public ThisDemo(String stuName, Integer stuAge, String stuSex) { this(stuName, stuAge); // 调用重载的构造方法 this.stuSex = stuSex; System.out.println("三个参数的构造函数"); } public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } public Integer getStuAge() { return stuAge; } public void setStuAge(Integer stuAge) { this.stuAge = stuAge; } public String getStuSex() { return stuSex; } public void setStuSex(String stuSex) { this.stuSex = stuSex; } @Override public String toString() { return "ThisDemo [stuName=" + stuName + ", stuAge=" + stuAge + ", stuSex=" + stuSex + "]"; } public void sayWord() { System.out.println("我会说话!"); } public static void main(String[] args) { ThisDemo thisDemo=new ThisDemo("张三",23,"男"); System.out.println(thisDemo.toString()); } }
注意:this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this
2.关键字super
- 在子类构造方法中要调用父类的构造方法,用“super(参数列表)”的方式调用,参数不是必须的,该语句只能用在子类构造方法体中的第一行
- 当子类方法中的局部变量或者子类的成员变量与父类成员变量同名时,可以用“super.成员变量名”来引用父类成员变量
- 当子类的成员方法覆盖了父类的成员方法时,可以用“super.方法名(参数列表)”的方式访问父类的方法
- 在子类构造方法中用“super(参数列表)”的方式调用父类的构造方法时,在构造方法内,“this(形参列表)”或“super(形参列表)”只能出现一个!
package com.keyword; public class SuperDemo { public static void main(String[] args) { Student student = new Student("李四", 23, "女", "223311"); student.sayWord(); } } class Person { private String name; private Integer age; private String sex; public Person() { System.out.println("父类无参的构造方法!"); } public Person(String name, Integer age, String sex) { this();// 调用本类重载的构造方法 this.name = name; this.age = age; this.sex = sex; System.out.println("父类有参的构造方法!"); } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public void sayWord() { System.out.println("我是父类,人都会说话!"); } } class Student extends Person { private String cno; public Student(String name, int age, String sex, String cno) { // 调用父类构造器 super(name, age, sex); this.cno = cno; } public String getCno() { return cno; } public void setCno(String cno) { this.cno = cno; } public void sayWord() { // 调用父类方法 super.sayWord(); System.out.println("我是子类,我也会说话!"); super.setName("本来叫李四,改名叫张三"); // 调用父类获取属性方法 System.out.println(super.getName()); } }
Java基础(basis)-----关键字this和super的作用的更多相关文章
- Java基础(basis)-----关键字final和static的作用
1.关键字final final修饰类:这个类就不能被继承 final修饰方法:不能被重写 final修饰属性:此属性就是一个常量,一旦初始化后,不可再被赋值.习惯 ...
- Java基础(basis)-----关键字break、continue、return的区别
1.break break只能用于switch语句和循环语句中,跳出当前循环:但是如果是嵌套循环, 则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环 for (int i ...
- Java基础-synchronized关键字的用法(转载)
synchronized--同步 顾名思义是用于同步互斥的作用的. 这里精简的记一下它的使用方法以及意义: 当synchronized修饰 this或者非静态方法或者是一个实例的时候,所同步的锁是加在 ...
- Java基础之关键字,标识符,变量
Java基础 首先,来看一下Java基础知识图解,以下便是在java学习中我们需要学习设计到的一些知识(当然不是很完全). 这些都是接下来在以后的学习中我们会学到的一些知识. 1 关键字 首次先来学习 ...
- java基础---->final关键字的使用
这里介绍一些java基础关于final的使用,文字说明部分摘自java语言规范.心甘情愿这四个字,透着一股卑微,但也有藏不住的勇敢. Final关键字的说明 一.关于final变量规范说明 .A fi ...
- Java基础 -- final关键字
在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们来了解一下final ...
- java基础Synchronized关键字之对象锁
java中Synchronized关键字之对象锁 当有多个线程对一个共享数据进行操作时,需要注意多线程的安全问题. 多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同 ...
- java基础之关键字static
在java当中有很多关键字,static便是其中一个,它很普通但我们经常需要运用到它,所以要了解static是非常有必要的. 鉴于本人知识结构有限,若有错误忘不吝赐教,甚为感谢. 一. ...
- 黑马程序员——JAVA基础之final this.和super.的区别
------- android培训.java培训.期待与您交流! ---------- final关键字: final可以修饰类,方法,变量. final修饰的类不可以被继承. final修饰的方法 ...
随机推荐
- PSU/OPATCH/OJVM下载页面及安装方式(最实用版)
中文版:数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1) Download Reference for Or ...
- LeetCode 771 Jewels and Stones 解题报告
题目要求 You're given strings J representing the types of stones that are jewels, and S representing the ...
- falsk 与 django 过滤器的使用与区别
1,flask中内置的过滤器模板中常用方法: {#过滤器调用方式{{变量|过滤器名称}} #} <!-- safe过滤器,可以禁用转义 --> {{'<strong>hello ...
- [Android][Android Studio] Gradle项目中加入JNI生成文件(.so文件)
版权声明:本文作者:Qiujuer https://github.com/qiujuer; 转载请注明出处,盗版必究! ! ! https://blog.csdn.net/qiujuer/articl ...
- unix下命令窗分屏工具
运行 sudo apt-get install terminator 效果 新建分屏窗口:右键鼠标选择
- 20181220 Oracle程序包基本开发逻辑
做事情,开始也许比较迷茫,也可能工具不会,也可能语言不会,但不要害怕 多去思考而不是盲目的开始工作,盲目的听从,程序开发都是不断训练自己的思维能力. 做每件事情都是有意义的,思考为什么这么做,这么做的 ...
- HTTP协议与WEB框架简介
HTTP协议与WEB框架简介 一.HTTP协议 HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wid ...
- 20165236 2017-2018-2《Java程序设计》课程总结
20165236 2017-2018-2<Java程序设计>课程总结 一.每周作业链接汇总: 1.我期望的师生关系 2.学习基础和C语言基础调查 3.20165236郭金涛 预备作业3 L ...
- [转]如何快速转载CSDN中的博客
原文:https://blog.csdn.net/bolu1234/article/details/51867099 前言 对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时 ...
- 华为核心交换机绑定IP+MAC+端口案例
1 案例背景 某网络改造项目,核心交换机为华为S5700,接入交换机为不同型号交换机,如下模拟拓扑,客户端接入交换机1通过Access模式与核心交换机连接,该交换机下只有一个Vlan2 ...