java中常见的关键字总结

java中常见的关键字总结

一、权限修饰符

  private:

    定义:私有的,只允许本类访问

    用途:

      1.用于修饰成员变量、成员方法

    优点

      1.将属性和实现的细节用private修饰符修饰,可以提高程序的安全性!


  static:

    定义:静态的,可用于修饰成员变量(类变量)、成员方法和代码块

    特点:

      1.随着类的加载而加载

      2.优先于对象存在,优先于构造方法被加载

      3.被类中所有的对象所共享

      4.可以通过类名进行调用

    注意:

      1.static不能修饰局部变量,即时是在静态方法中

      2.static关键字主要针对的是类,而不是对象!可以通过类名和对象来调用!

      3.在静态方法中,没有this关键字,因为static独立于对象而存在

      4.被static修饰的成员方法只能访问静态的资源,而没有被static修饰的成员方法可以访问静态成员(成员变量和成员方法)

    扩展:

      静态变量和成员变量区别:
        1.所属不同:

          * 静态变量属于类,也被称为类变量

          * 成员变量属于对象,也被称为实例变量(对象变量)

        2.内存中位置不同:
          * 静态变量存储于方法区的静态区

          * 成员变量存储于堆内存

        3.内存中出现时间不同:
          * 静态变量随着类的加载而加载,随着类的加载完毕而消失

          * 成员变量随着对象的调用而加载,随着对象的调用完毕而消失

        4.调用方式不同:

          * 静态变量可以通过类名、对象名调用

          * 成员变量只能通过对象来调用


  this: 

    定义:this代表本类对象的引用

    用法:

      1.访问成员变量

         this.成员变量:调用本类的成员变量 

      2.访问构造方法

         this():调用本类的无参构造方法 

      3.访问成员方法

         this.成员方法:调用本类的成员方法 

    优点:

      1.在方法内部出现重名的情况,可以采用this修饰符进行修饰,有效避免成员变量和局部变量冲突!


  super:

    定义:对当前对象里面的父对象的引用,跟this关键字类似

    用法:

      1.访问成员变量(非私有)

         super.成员变量:调用父类的成员变量

      2.访问构造方法

         super():调用父类的无参构造方法

      3.访问成员方法

         super.成员方法:调用父类的成员方法

  面试题:

     1.看程序写结果 

//Fu.java
package
com.extend; public class Fu { public int num=10; public Fu() { System.out.println("fu的无参构造"); } }
//Zi.java
package
com.extend; public class Zi extends Fu { public int num=20; public Zi() { System.out.println("zi的无参构造"); } public void show(){ int num=30; System.out.println(num); System.out.println(this.num); System.out.println(super.num); } } class Test{ public static void main(String[] args) { Zi zi = new Zi(); zi.show(); } }

     上述代码输出结果为:

      Fu的无参构造

      Zi的无参构造

      30

      20

      10

  分析:

    (1)由于Zi类继承了Fu类,所以在执行main方法时,调用Zi类的构造方法前,首先调用Fu类的构造方法,完成对Fu类对象的初始化,输出:Fu的无参构造

      (2)再进行Zi类对象的初始化,输出:Zi的无参构造

        (3) 创建了Zi类对象zi后,通过对象调用zi类的成员方法show(),先在zi类中找show(),然后再Fu类中找show(),如果找不到就报错

        (4)    show()中使用输出语句分别输出num、this.num、super.num,首先num在局部范围找,输出30。this代表本类对象的引用,this.num相当于new Zi().num,

         就在本类的成员变量中查找,输出20。super代表父类对象的引用,在Fu类的成员中查找,输出10


  final:

    定义:表示最终的意思,可以修饰成员变量、成员方法以及类

    特点:

      1.修饰成员变量,变量就变成了常量,不能被重新赋值

      2.修饰成员方法,该方法不能被重写!

      3.修饰类,该类不能被继承


  abstract:

    定义:abstract修饰符可以用于类、方法、事件和索引指示器(indexer),表示其为抽象成员,抽象方法是没有方法体的方法。

    特点:

      1.抽象类和抽象方法必须使用abstract来修饰

      2.抽象类中不一定有抽象方法,但有抽象方法的类一定是抽象类

      3.抽象类不能被实例化

      4.abstract不能与private(私有的,禁止子类访问,更别提重写方法了)、final(表示最终的意思,不能重写方法)、static共存

      

  

原文地址:https://www.cnblogs.com/xiaoguoniu/p/12607041.html