javase中的super、this和protected关键字
关键字
this
记住一句话:this是指向对象本身的一个指针。
注意:
this只能用于方法体内,且只能在非静态方法中,也就是说只有实例调用的方法中才能出现this,我们可以认为当new了一个实例后,实例具有类的属性和方法,那么再调用这些方法时,就可以使用this,前提一定要弄清楚当前调用的对象是谁。
应用:
一、通过this可以调用另一个构造方法,但仅限于当前类的构造器。
二、当成员变量和局部变量同名情况下,成员变量在该局部中被屏蔽,此时可通过this.成员变量,访问成员变量。
三、return this ,返回当前对象的引用,就是当前方法所在类的实例。
super
应用:
一、在子类构造器中要调用父类构造器,放在子类构造器第一行,格式:super(),可带参数列表。
二、当子类的变量(成员或局部变量)与父类成员变量同名,可用super.成员变量名来引用父类成员变量。
三、当子类方法覆盖父类方法时,可用super.方法名(形参列表)方式访问父类方法。
protected
作用:控制类的继承者的访问权限。
应用:
一、同一个包中的类(包括该类的子类)都可访问protected成员,包内访问权限
二、继承该类的子类(不管是不是同一个包),都可以访问protected成员。
javase中的super、this和protected关键字的更多相关文章
- JAVA中的super和this关键字的使用
一 this关键字 this关键字可以出现在构造方法和实例方法中,不能出现在静态方法中,这是因为静态方法可以用类名来调用,这时可能还没有任何对象诞生. this主要有两种用法: 1 用在构造方法中,调 ...
- 总结java中的super和this关键字
知识点: 在java类中使用super引用父类的成分,用this引用当前对象 this可以修饰属性.构造器.方法 super可以修饰属性.构造器.方法 关于子类实例化过程中的内存分配,在下一篇博客中说 ...
- java继承中关于super关键字和this关键字的使用
1.super关键字 由于子类不能继承父类的构造方法,因此,如果要调用父类的构造方法,可以使用 super 关键字.super 可以用来访问父类的构造方法.普通方法和属性.super 关键字的功能: ...
- Java中的super与this解析
好了,现在开始讨论this&super这两个关键字的意义和用法. 在Java中,this通常指当前对象,super则指父类的.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象 ...
- Java 访问权限控制:你真的了解 protected 关键字吗?
摘要: 对于类的成员而言,其能否被其他类所访问,取决于该成员的修饰词:而对于一个类而言,其能否被其他类所访问,也取决于该类的修饰词.在Java中,类成员访问权限修饰词有四类:private,无(包访问 ...
- Java 访问权限控制- protected 关键字
protected 关键字的真正内涵 文章来源:http://blog.csdn.net/justloveyou_/article/details/61672133 很多介绍Java语言的书籍(包括& ...
- Pythn中的super用法
在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: 代码如下: class A: def __init__(self): p ...
- JavaSE中Map框架学习笔记
前言:最近几天都在生病,退烧之后身体虚弱.头疼.在床上躺了几天,什么事情都干不了.接下来这段时间,要好好加快进度才好. 前面用了三篇文章的篇幅学习了Collection框架的相关内容,而Map框架相对 ...
- JavaSE中线程与并行API框架学习笔记1——线程是什么?
前言:虽然工作了三年,但是几乎没有使用到多线程之类的内容.这其实是工作与学习的矛盾.我们在公司上班,很多时候都只是在处理业务代码,很少接触底层技术. 可是你不可能一辈子都写业务代码,而且跳槽之后新单位 ...
随机推荐
- [学习笔记] CNN与RNN方法结合
CNN与RNN的结合 问题 前几天学习了RNN的推导以及代码,那么问题来了,能不能把CNN和RNN结合起来,我们通过CNN提取的特征,能不能也将其看成一个序列呢?答案是可以的. 但是我觉得一般直接提取 ...
- 前端学习框架之layui
学习地址:https://www.layui.com/demo/laytpl.html
- shell笔记-----常用命令积累
set -x # 执行指令前,先输出指令#set -o xtrace # 与set -x效果一样 set -e 在"set -e"之后出现的代码,一旦出现了返回值非零,整个脚本就 ...
- zookeeper源码分析:选举流程和请求处理
集群启动: QuorumPeerMain. runFromConfig() quorumPeer.start(); loadDataBase(); cnxnFactory.start(); ...
- vmware虚拟机设置时区、时间
首先查看时间发现和百度的时间不一样 [root@www ~]# dateWed Dec 5 14:00:32 CST 2018 1.配置ntp服务器,设置时区同步,请参照ntp篇 https://w ...
- 使用 Python* 的英特尔® 分发版实现 Unity* 机器学习入门(第 1 部分)
本文将向游戏开发人员介绍如何使用强化学习创建更好的人工智能 (AI) 行为.使用Python* 的英特尔® 分发版 — 常用面向对象的高级编程语言的进阶版 — 读者可收集关于如何训练预先存在的机器语言 ...
- 关于add migration 报错的问题解决方案
The current CSharpHelper cannot scaffold literals of type 'Microsoft.EntityFrameworkCore.Metadata.In ...
- 13.56Mhz/NFC读写器天线阻抗匹配调试步骤-20191128
相关原文: https://blog.csdn.net/wwt18811707971/article/details/80641432 http://www.52rd.com/Blog/Detail_ ...
- java中的小知识点
1.数据类型的相关知识点 1.1.java内置封装类的转换 java中内置的封装类Byte.Integer.Float.Double和Long都可以转换成double类型的数值:因为这些封装好的类中都 ...
- oracle登录后无法使用,显示Connected to an idle instance
1.登录情况: [oracle@localhost ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Mon Jul ...