Java基础-第四章:关键字

上章说到封装、继承、多态
从代码中可以看到public、class、void、extends 这几个关键词,接下来讲解下java中的关键词,这些词不能用于常量、变量、类等任何标识符名称

访问控制关键字

private # 私有的
protected # 受保护的
public # 公开的
default # 默认的

private 私有的

Java语言中对访问权限限制最大的修饰符、通称为'私有的',被其声明的类、属性、方法只能被该类的对象访问,其子类不能访问,而其它的类,包是完全无法访问的

public 公开的

Java语言中对访问权限限制最小的修饰符、通称为'公开的'或'公共的',被其修饰的类、属性、方法不仅可以在其它类访问,甚至可以在其它包中访问

protect 受保护的

Java语言中基于public 与 private之间的一种访问修饰符,通称为'受保护的',被其修饰的类、属性、方法只能在本类同级类或下级的子类中访问,上级类是无法访问的

default 默认的

Java语言中不加任何修饰符时的情况就称之为'默认访问模式',在这个模式下,只允许同包的类访问

类、方法和变量修饰符

abstract # 抽象声明
extends #
class # 类
final # 常量、最终值
implements # 接口引用
interface # 接口
native # 本地、原生方法
new # 创建
static # 静态
strictfp # 严格、精准
synchronized # 线程同步
transient # 短暂
volatile # 不保留的

abstract 抽象声明 与 interface 接口

面试重点,建议背下

使用abstract 关键词创建的类是一个可以编写声明并不需要实现的方法以及可以实现对应方法的类例如

public abstract class Test {
    public String sayHello() {
        return "hello";
    }
    abstract String ku();
}

class B extends Test {
    public static void main(String[] args) {
        Test t = new Test() {
            @Override
            public String sayHello() {
                return "miajio " + super.sayHello();
            }
            @Override
            String ku() {
                return null;
            }
        };
        System.out.println(t.sayHello());;
    }

    @Override
    String ku() {
        return null;
    }
}

如此输出的值则是: miajio hello
使用abstract修饰的类无法直接使用new来创建,而是必须实现其内部的方法才行,而使用abstract修饰的方法则是可以不给出相对应的实现,而是在使用该类时必须将其重写。
同理,在继承该Test时,必须实现其内部abstract关键词修饰的方法

接下来看interface关键词

public interface Test {
    String ku();
}

class B implements Test {

    @Override
    public String ku() {
        return "ku";
    }

    public static void main(String[] args) {
        B b = new B();
        System.out.println(b.ku());
    }
}

使用interface关键词时,不允许存在方法的实现,仅只是对方法进行声明,而在引用interface关键词时,我们使用到的时implements 而不是extends,但是与abstract类似的是在引用时必须实现其内置方法。
在java中与go等不同的是java只有单一继承,即使用extends时只能引用一个类,而在使用implements引用接口时,可以同时引用很多个interface接口

final 常量、不可变的

final关键字可以使用在类、方法、属性上
在使用在类时,例如String

public final class String 
        implements java.io.Serializable, Comparable<String>, CharSequence{}

在String的源码中,我们就可以看到使用了final关键字标识了class,在标识在class上时,可以使类无法被其他类继承
而通常我们代码中有很多的参数是不可以被改变的,例如一些返回的错误编号等,这时我们使用final引用到属性参数上

public final int code = 200;

这样,这个code在其他类使用时就无法被改变其值了
同样,final在使用在方法上时该方法就无法被重载以及重写了

static 静态的

static关键字也是我们编写代码时常用到的关键字之一,它有一个特点,就是使用static关键字修饰的方法,在使用时,可以无需new 它的对象,而是通过对象名.方法即可直接使用。
而static又有一种用途,即是在使用对象时进行数值的初始化操作,例如:

public class Test {
    static {
        System.out.println("hello");
    }
    public String sayGood(){
        return "good";
    }
    public static void main(String[] args) {
        Test t = new Test();
        System.out.println(t.sayGood());
    }
}

以上的代码最终的结果是先打印了: hello 然后才打印good
也就是说在创建该类时,会默认优先执行static{} 方法
通常我们使用final时,为了方便获取final标识的常量,我们会对其常量使用static关键词进行修饰,这样就可以让我们在使用该常量时无需去创建该常量所在的对象了

其它的修饰符我就不多解释了,实际上修饰符在百度上有很多的讲解说明

我只是将比较常用的修饰符进行了说明,但是synchronized关键词也是需要多实践的,因为其线程同步性是一个对性能等操作需要注意的事情

如有疑问可直接参考菜鸟教程|Java基础语法翻到下面即可找到对应的关键词

程序控制关键字

break # 跳出循环体
switch case default # 条件逻辑比较
if、else if、else # 条件逻辑比较
continue # 继续
do # 运行
for # 循环
while # 循环
instanceof # 双目运算符
assert # 断言 对某boolean类型值进行断言指定其布尔类型是否为真

错误处理

try catch # 异常捕获
finally # 不管是否存在异常,在其之后都执行其finally
throw # 抛出异常
throws # 声明一个异常可能被抛出

import 引入
package 包

八个基本类型全部都是关键字

变量引用

super # 值父类
this # 当前对象
void # 无返回参数
null # 空对象

java中保留的关键字

goto 
const
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容

  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,651评论 0 11
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,599评论 4 12
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 1,225评论 0 2
  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 1,055评论 0 4
  • 昨晚值班,筢实地忙了一晚上 。最近的日子,各种的忙和累,身心疲惫得有些喘不过气来,简书也紧跟着跌进了忙碌的日子里,...
    烟雨縹湘阅读 260评论 4 11