java 关键字小结

java 关键字小结1 this 和 super 一个类在使用 this 时调用的是此类中的数据变量和方法 使用 super 时是调用的父类中的变量和方法 父类 publicclassK publicString father publicKeyWor System out print 父类构造 1this thi

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++)实现的文件中。





版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232086.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux抓包命令tcpdump 文本,Linux下抓包命令tcpdump的使用

    linux抓包命令tcpdump 文本,Linux下抓包命令tcpdump的使用在linux下,可以使用tcpdump命令来抓取数据包。主要用法如下:过滤网卡tcpdump-ieth0#抓取所有经过网卡eth0数据包tcpdump-ilo#抓取环回口的数据包过滤主机/IPtcpdumphost192.168.10.10#抓取所有IP为192.168.10.10的数据包tcpdumpsrchost192.168.10…

    2022年6月26日
    32
  • IDEAL 2021.10激活码【最新永久激活】[通俗易懂]

    (IDEAL 2021.10激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月28日
    65
  • PR曲线和ROC曲线概念及其区别

    PR曲线和ROC曲线概念及其区别将测试样本的预测结果按照置信度排序,由高到低,卡个阈值作为正负样本的判定依据,阈值较高时,Precision比较大,阈值较低时,Recall较大。(推荐的话,想Precision较大,用户希望排名靠前的推荐是自己想要的,刑侦的话希望Recall较大,不错过一个犯人)知识点Precision=TP/(TP+FP)Recall=TP/(总的正样本)=TP/(TP+FN)#这个时候的TP…

    2022年6月15日
    37
  • JS开发引用HTML DOM的location和document对象[通俗易懂]

    JS开发引用HTML DOM的location和document对象[通俗易懂]本文主要介绍报表软件FineReport的JavaScript开发中,可以访问并处理的HTMLDOM的location、document两种对象。

    2022年7月19日
    19
  • 0x80表示什么_0x38是多少

    0x80表示什么_0x38是多少0x800x是C语言中16进制数的表示方法。0x80等于十进制的1280×80在计算机内部表示为10000000字符在计算机中以其ASCII码方式表示, 其长度为1个字节,有符号字符型数取值范围为-128~127,无符号字符型数到值范围是0~255。因此在TurboC语言中,字符型数据在操作时将按整型数处理,如果某个变量定义成char,则表明该变量是

    2025年11月7日
    8
  • kNN(K-Nearest Neighbor)最邻近规则分类

    kNN(K-Nearest Neighbor)最邻近规则分类

    2021年11月14日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号