1.this和super

一个类在使用this时调用的是此类中的数据变量和方法,使用super时是调用的父类中的变量和方法

/*父类*/
public class KeyWordFatherTest {

    public String str="father";  public KeyWordFatherTest(){

        System.out.print("父类构造1this:"+this.str+"\n");
    }

    public KeyWordFatherTest(String str){
        this.str = str;
        System.out.print("父类构造2this:"+this.str+"\n");
    }}
/*子类*/
public class KeyWordSonTest extends KeyWordFatherTest{
    public String str = "son";

    public KeyWordSonTest(){
        System.out.print("子类构造1this:"+this.str+"\n");
    }

    public KeyWordSonTest(String str){
        super(str);
        System.out.print("子类构造2this:"+this.str+"\n");
    }

    public static void main(String[] args) {
        System.out.print(new KeyWordSonTest());//输出1
//      System.out.print(new KeyWordSonTest("nihao"));//输出2

    }
}

当上面程序执行main方法中的输出1时,控制台输出为

父类构造1this:father
子类构造1this:son
test.KeyWordSonTest@2cc7d960

由结果可以看到this调用的是当前类的数据变量。

此例子中需要注意的是子类实例化之前会调用父类的无参构造方法,究其原因是因为子类继承了父类,那么就默认的含有父类的公共成员方法和公共成员变量,这些方法和变量在子类里不再重复声明。如果你初始化子类的时候,不初始化父类,那么你通过子类调用父类方法或变量的时候会出现什么情况呢?当然就是抛异常阿!所以,Java虚拟机会在你初始化子类的时候默认的初始化子类的父类。

当上面程序执行main方法中的输出1时,控制台输出为

父类构造2this:nihao
子类构造2this:son
test.KeyWordSonTest@79fc7299

由结果可以看到super调用的是当前类父类的数据变量。

2.访问权限default,public,protected,private

访问权限 类本身 package包内 子孙类 package包内
public 可以 可以 可以 可以
protected 可以 可以 可以 不行
default 可以 可以 不行(在同一包内可以) 不行
private 可以 不行 不行 不行
         

3.关键字static

static静态方法和静态变量是属于某一个类,而不属于类的对象。

静态方法和静态变量的引用直接通过类名引用。

静态方法不能被子类重写。

在静态方法中不能调用非静态方法和引用非静态的成员变量。反之,则可以。

静态变量和静态方法在类被加载的时候就分配了内存空间。

静态变量的值可以被修改。

4.关键字final

当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。

使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的方法体。

final成员变量表示常量,只能被赋值一次,赋值后值不再改变。

5.关键字native

native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。

java 关键字小结相关推荐

  1. Java关键字transient和volatile小结(转)

    Java关键字transient和volatile小结(转) transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话题,简单总结一下. tran ...

  2. Java中文编码小结

    Java中文编码小结 1. 只有 字符到字节 或者 字节到字符 的转换才存在编码转码; 2. Java String 采用 UTF-16 编码方式存储所有字符.unicode体系采用唯一的码点表示唯一 ...

  3. Java关键字this、super使用总结

    2019独角兽企业重金招聘Python工程师标准>>> 一.this关键字 Java关键字this只能用于成员方法体内,它是一个系统隐含的指针且被自动附加在非静态的成员方法参数列表中 ...

  4. Java关键字系列(public,protected,private)

    Java关键字系列(public,protected,private) public.protected和private做为java访问权限修饰词而使用. 首先要明白,java中的每个定义(定义类.字 ...

  5. 深入Java关键字instanceof

    深入Java关键字instanceof   instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口.抽象类.父类)的实例.   举个例子: public interface ...

  6. Java关键字final、static、this、super使用总结

    一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...

  7. Java 关键字和语句

    关键字和语句 关键字 Java 的关键字对 Java 的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名.方法名.类名.包名. Java 关键字有如下表所列,目 ...

  8. 转!Java关键字final、static使用总结

    Java关键字final.static使用总结 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非 ...

  9. [Java] 关键字final、static使用总结

    一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...

  10. 深入Java关键字null

    转载:http://lavasoft.blog.51cto.com/62575/79243/ 深入Java关键字null 一.null是代表不确定的对象 Java中,null是一个关键字,用来标识一个 ...

最新文章

  1. 深度强化元学习教程---元学习概述
  2. 【洛谷P3846】【TJOI2007】—可爱的质数(BSGS模板)
  3. 玩转可视化--来聊聊地图投影的学问
  4. java jmx 监控_只用五分钟为系统实现基于JMX的监控
  5. pythonnumpy函数四舍五入_NumPy函数
  6. 解决Flink案例DataStream中使用keyBy(0),keyBy弃用的问题
  7. mysql alter例子,mysql alter语句用法实例
  8. Unity屏幕坐标转UI坐标
  9. linux里车目录是什么意思,linux 命令整理
  10. linux下的串口工具minicom、ckermit
  11. CSDN前200名博主
  12. Selenium IDE 下载及安装
  13. .net core 中使用httpclient下载文件
  14. 可该变某一属性的GAN:Hijack-GAN
  15. 沉浸式体验娱乐,通往元宇宙之路?
  16. systemd服务详解
  17. 学习退款数据分析思路
  18. 【python报错总结】pandas打开Excel文件失败
  19. oracle表空间不足影响,Oracle 表空间不足引起的问题及解决方法
  20. 从排序数组中删除重复项-Python-LeetCode

热门文章

  1. labview和python哪个易学_如何学好labview?
  2. 如何更换tomcat版本
  3. Windows tablet数位板数位屏开发出现的问题
  4. CCS6.0安装教程
  5. php获取静态url地址,[静态/伪静态]自定义URL地址详细教程
  6. 一步一步学Repast 第五章——模拟粒子运动,了解Schedule
  7. 中国网络安全行业发展前景及投资战略研究报告(2022-2027年)
  8. centos7配置IP地址
  9. python进行数值模拟代码_数值模拟方法
  10. python测网速_tespeed-测试网速的Python工具