基础知识 | Java中的关键字

14 篇文章 0 订阅
7 篇文章 0 订阅

Java中的关键字

关键字的分类

访问控制:private、protected、public、default
修饰符:abstract、class、extends、final、implements、new、static、strictfp、synchronized、transient
程序控制:break、continue、return、do、while、for、instanceof、switch、case、default
错误处理:try、catch、throw、throws、finally
关于包:import、package
基本数据类型:boolean、byte、char、double、float、short
变量引用:super、this、void
保留字:goto、const

default: 这个关键字很特殊,既属于程序控制,也属于类,方法和变量修饰符,还属于访问控制。

访问控制符

范围privatedefaultprotectedpublic
同一类
同一包中的类
同一包中的类、不同包中的子类
所有

private主要用来修饰变量和方法,一般不会用来修饰类,除非是内部类。

被private修饰的变量和方法,只能在自己对象内部使用,当一个变量或方法被定义为私有变量,则在别的类中用该类实例化的对象将无法直接访问该成员变量和方法。(在自身所在类的内部,依旧可以访问)

那么继承关系呢?

如果是继承关系,那么你依然无法通过super来调用被private修饰的方法和变量。在官方文档中描述的是子类不能继承父类的对象,但是如果子类中公有的方法影响到了父类私有属性,那么私有属性是能够被子类使用的,但是在实例化的过程中,JVM 需要为对象的类及其父类中所有定义的属性分配空间,包括父类中声明的私有成员。所以,在另一种角度来说子类也是拥有父类的私有属性和方法只是不能直接调用,但是我们还是可以通过set和get的方法来间接的访问父类中的private属性的变量。

static关键字

static关键字可以修饰类、方法、变量、初始化块、内部类,被static修饰的成员都是类成员,可以只用类名的方式进行访问。

  • 被static修饰的变量,叫做静态变量,只加载一次
  • 静态代码块也是只加载一次,不论创建多个对象都是被加载一次
  • 如果是非静态的内部类,需要通过外部类进行创建,而静态内部类不需要,且不可以访问外部类的非静态成员

静态内部类需满足如下规则:

  1. 静态内部类可以包含静态成员,也可以包含非静态成员;

  2. 静态内部类不能访问外部类的实例成员,只能访问它的静态成员;

  3. 外部类的所有方法、初始化块都能访问其内部定义的静态内部类;

  4. 在外部类的外部,也可以实例化静态内部类,语法如下:

    外部类.内部类 变量名 = new 外部类.内部类构造方法();
    

final关键字

final代表不可变的

  • final类:final关键字修饰的类不可以被继承。
  • final方法:final关键字修饰的方法不可以被重写。
  • final变量:final关键字修饰的变量,一旦获得了初始值,就不可以被修改。

final和finally的区别

final 可以用来修饰类、方法、变量,分别有不同的意义,final 修饰的 class 代表不可以继承扩展,final 的变量是不可以修改的,而 final 的方法也是不可以重写的(override)。 finally 是 Java 保证重点代码一定要被执行的一种机制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小七rrrrr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值