Java关键字

Java关键字的含义:Java字是电脑语言里事先定的,有特标识符,有又叫保留字有特量。Java的关Java编译器有特殊的意,他用来表示一种数据型,或者表示程序的构等,关字不能用作量名、方法名、名、包名和参数。

   在eclipse中,关字有特定的色区分,

 

关键字的分类:

i.       访问权限:public   protected private

ii.      跟类相关:class、interface、extends、implements、import、abstract 

iii.     跟方法相关:void、return

iv.     基本数据类型:int、long、short、float、double、char、byte、boolean

v.      跟循环判断相关:if、else、for、while、do、case、default、break、continue

vi.     异常:try、catch、finally、throw、throws

vii.   跟对象相关:new、this、super

viii.  其他:instanceof、static、final

 

解析关键字

1.访问权限:public   protected  默认不写的   private

i.       Java当中有四大访问权限:公有(public)、受保护(protected)、默认(不写)、私有(private)(其访问权限为依次减少,直到private只能被自己创建的类进行访问)

ii.      访问权限的应用范围:

a.        当定义类的时候:只能用public或者默认不写的访问权限

                并且如果Java文件中的有多个类的时候,只能有一个public,且这个public的class只能和创建此Java文件名一致,或者当多个类都没有public时,默认给与文件名的相同的class定义public。

b.        定义属性的(常量,变量)的时候:

注意:接口中的所有常量必须都是public!!!

c.         定义方法时

注意:1.接口的所有方法必须都是public的

2.构造方法,也可以修改访问权限

3.构造方法私有化:让外部不能够创建当前类的对象

4.方法重写:子类重写父类方法,访问权限只能进行扩大或者不变

访问权限的权限对比图:

访问权限

当前类

共同包中的不同类

不同包的子类继承

不同包的类

Public

Yes

Yes

Yes

Yes

protected

Yes

Yes

Yes

no

默认

Yes

Yes

no

no

private

Yes

no

no

no

 

2.this/super

i.this指代当前类的对象

 a.在普通方法里面进行使用:指代的是调用当前类的相关属性和方法 应用格式:this.方法名();

 b.在构造方法里面进行使用:指代调用当前类的其他构造函数  应用格式:this();

 注意:this调用构造方法的代码必须是在第一行。



上图中虽然不能创建一个对象进调用三个方法,但是可以进方法的串行运行,如上图的this(“aa”);this(20);!!!但是打印的结果为321。原因为:当创建stu对象的时候,调用然后调用再调用然后打印3,返回打印2,再返回打印1。

 

 

再如图,如果Student.删除掉,变为this.play();,程序就会进行报错。原因为:this为指代当前对象,在jf对象中没有play()方法,所以程序会进行报错!!!但如果变为Student.this.play()或者play()不会进行报错,第一个是直接指代student的对象调用play方法;第二个是先在jf里面找play方法,找不到,然后再去student找play方法!!!

ii.super:指父类对象

 a.在普通方法里面进行使用:指代调用父类的普通方法   应用格式:super.方法名()。

 b.在构造方法里面进行使用:指代调用父类的构造方法 应用格式:super()。

注意:方法重写:

a.    完全覆盖父类的方法

b.   对父类的方法进行补充(每一个子类的构造方法一定会去调用父类的构造方法,用来初始化父类的属性)。

c.    super();一定是放在第一行

d.   一个构造方法中可以同时调用自己类的构造方法this()和父类构造方法super();,但是super();一定只能是隐形定义(就是不用把super();写出来,以为默认他会自己产生的)

3.fianl

a.可以修饰:类,方法,属性,参数,局部变量

b.修饰类:此类变为不能被继承的类(也就是无后代的类);并且接口和抽象类一定不能用final修饰

c.修饰方法:此方法不能被子类重写了

d.修饰属性:代表当前属性只能被赋值一次,后续不能再进行赋值

e.修饰参数,局部变量:在参数和局部变量的生命周期内不能进行修改

注意:匿名内部类使用外部类的局部变量一定要加final修饰(此修饰的含义为:使此局部变量进行持久化,延长其生命周期)

 


以上图中如果final删除掉,程序会进行报错,原因出在a的生命周期在运行打印语句之前就已经在内存最后清空了,所以会导致运行出错

4.static

a.可以修饰:属性,方法,静态块

b.概念:所有用static修饰的属性和方法,它依赖于当前类而存在,脱离了对象的束缚

b.静态块:static{}

注意:static的属性,方法,静态块一定只和类加载有关



 

这两个类执行完后输出结果为1202034

1.    因为静态块在加载类的时候就执行了,所以先打印1

2.    代码块是在创建对象的时候就执行了,所以先打印2,再打印重载方法的0,又因为创建了两个对象 ,所以再打印20

3.    最后执行student.study()打印3,执行stu.paly()打印4

 

 

 

5.return,break,continue

a.return:结束当前方法

b.break:跳出当前层(当前层为最近的层)的循环

c.continue:结束当次循环,继续下一次的循环

6.instanceof:检验当前的对象转型之前的类型是什么  应用格式:对象名 instanceof 类名     (其返回值为boolean类型)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值