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共存