Java关键字

类别

关键字

说明

访问控制

private

私有的

protected

受保护的

public

公共的

default

默认

类、方法和变量修饰符

abstract

声明抽象

class

extends

扩充,继承

final

最终值,不可改变的

implements

实现(接口)

interface

接口

native

本地,原生方法(非 Java 实现)

new

新,创建

static

静态

strictfp

严格,精准

synchronized

线程,同步

transient

短暂

volatile

易失

程序控制语句

break

跳出循环

case

定义一个值以供 switch 选择

continue

继续

do

运行

else

否则

for

循环

if

如果

instanceof

实例

return

返回

switch

根据值选择执行

while

循环

错误处理

assert

断言表达式是否为真

catch

捕捉异常

finally

有没有异常都执行

throw

抛出一个异常对象

throws

声明一个异常可能被抛出

try

捕获异常

包相关

import

引入

package

基本类型

boolean

布尔型

byte

字节型

char

字符型

double

双精度浮点

float

单精度浮点

int

整型

long

长整型

short

短整型

变量引用

super

父类,超类

this

本类

void

无返回值

保留关键字

goto

是关键字,但不能使用

const

是关键字,但不能使用

static的用法及注意事项(静态可以在加载类的时候初始化)

好处

除了可以被对象调用外,还可以被类名调用,避免浪费空间,使用时,可以不需要创建对象即可使用该功能

用法

%

1.静态方法不可以访问非静态成员,但是非静态方法可以访问静态成员

说明:静态的弊端在于访问的局限性,好处是可以直接被类名调用

原因:

(1)静态是随着类的加载就加载了,随着类的消失而消失

(2)静态优于对象存在,被对象共享(开发时,静态一般用类名调用)

(3)因为静态先存在于内存中,无法访问后来对象中的数据,所以静态无法访问非静态。而且内部无法使用(书写)this,因为这时对象可能不存在,this没有任何指向

2.静态方法中不允许出现this、super关键字

%

定义功能时,如果功能不需要访问类中定义的成员变量时,该功能就需要静态修饰

成员变量每个对象都一致时,将所有类相同的属性实现共享,节省空间,可以在变量前加静态

//静态的主函数

public static void main (String[] args)

主函数在被虚拟机调用->在生成的类中找寻入口,即主函数

public :权限最大

static : 不需要对象,直接用给定的类名就可以访问该函数了

void : 不需要返回值

main : 函数名,该名称是固定的

(String[] args) : 主函数的参数列表,字符串属性类型的参数 打印出来为:对象类型+对应算出来的哈希值,说明jvm传递了一个字符串类型的数组实体,且传递的是一个 new String[0],在命令行调用时在后面输入可传入参数并储存到数组中。

args : arguments 参数,该名称就是一个变量名

静态变量与成员变量的区别

1.所属范围不同:静态变量所属于类,成员变量所属类

静态变量也称为:类变量

成员变量也称为:实例变量

2.调用不同:

静态变量可以被对象和类调用(一般都用类名调用)

成员变量只能被对象调用

3.加载时期不同:

静态变量随着类的加载而加载

成员变量随着对象的加载而加载

4.内存存储区域不同:

静态变量存储在方法区中(数据共享区)

成员变量储存在堆内存中

方法区

存储类:

类中的各成员(非静态)

静态code:

里面储存静态成员

静态代码块

//静态变量有两次初始化:一默认初始化,二显示初始化

模式:

static{}

执行时间:在静态变量显示初始化后执行

特点:随着类的加载而执行,仅执行一次。

作用:给类进行初始化

构造代码块

模式(类中):

{}

执行时间:只要创建对象就会被调用,给所有对象初始化,构造函数只给对应的对象针对性的初始化,在静态变量显示初始化后执行,也在静态代码块后执行

特点:这里面可以定义不同构造函数的共性代码

作用:用于构造对象

局部代码块(放于方法中)

模式(在方法中):

{}

特点:该代码块中的变量为局部变量,语句运行完局部变量直接释放

作用:可以控制局部变量生命周期

final(显示初始化的值,不能不显示初始化):

继承的弊端:

打破了封装性

可以通过final来实现

修饰符:

1.final是一个最终类,不能再派生子类

2.final可以修饰类、方法、变量(成员变量、局部变量、静态变量)

3.final修饰的变量常量时,只能被赋值一次(当程序中一个数据在使用时是固定不变的,可以给该数据起个名字,这就是变量,为了保证这个变量的值不被修改,加上final修饰,这就是一个阅读性很强的常量,书写规范,被final修饰的常量所有的字母都是大写的,如果由多个单词组成,单词间通过 _ 连接)

abstract(抽象):

情景:

当A类与B类中有共同的内容时,可以抽取所属共性内容,创建父类,但是,如果A类与B类,功能类似,但是表现不一样,可以在父类中定义一个函数

abstract name ();——抽象函数

定义了抽象函数的类也必须抽象化——抽象类(描述事物时,没有足够的信息描述一个事物时,这是该事物就是抽象事物)

抽象类的特点:

1.抽象类和抽象方法都要用abstract修饰,抽象方法一定要定义在抽象方法中

2.抽象类不可以创建实例,因为调用抽象方法没有意义

3.只有覆盖了抽象类中所有抽象方法后,子类才可以实例化,否则该子类依旧是一个抽象类

(之所以继承,更多的是在思想,面对共性类型操作会更简单)

细节:

1.抽象类一定是一父类,是不断抽取而来的

2.抽象类有构造函数,虽然不可以给自己的对象初始化,但是可以给自己的子类初始化

3.抽象类可以不定义抽象函数,意义仅仅是为了不让该类创建对象

4.abstract不能和final(final修饰的类不可能产生子类了,而抽象类必须有子类,所以冲突)、private(抽象函数在子类中要覆盖、重写,所以不能被私有化)、static(被static修饰可以通过类名调用,但是该方法为抽象函数,无意义)关键字共存

与一般类的异同:

相同:

1.他们都是用来描绘事物的

2.他们之中可以定义属性和行为

不同:

1.一般可以描绘具体的事物,抽象类描绘的事物信息不具体

2.抽象类中可以多定义一个成员:抽象函数

3.一般类可以创建对象,而抽象类不能创建对象

interface(接口):

情形:当一个抽象类里面方法全是抽象的,这是可以用接口来表示

定义:

interface Dema

{

abstract void show1;

abstract void show2;

}

1.定义变量:但是变量必须持有固定的修饰符,public static final,所以接口中的变量也称之为常量

2.定义方法:方法也有固定的修饰符,public abstract

其固定的修饰符可以不写,因为编译时会自动加上

特点:

1.接口不能创建对象

2.子类必须覆盖掉所有方法后,子类才可以实例化,否则子类是一个抽象类

接口继承的关键字(implements)

interface Dema

{

内容1;

内容2;

·

·

·

}

class DemoImpl implements Demo

{

//覆盖时方法必须要有关键字public,因为接口方法自带public,覆盖时没有会权限不够

}

重要体现:

解决了多继承的弊端,将多继承这种机制在Java中实现了

当多继承时,多个父类中有相同功能时,子类会产生不确定性,核心原因是因为多继承的父类中功能有主体,而导致调用运行时,不确定运行哪个主体,接口中的功能没有方法体,由子类说了算,所以多实现解决了多继承的弊端。

protected关键字

在外包中的类中的方法,不能直接对外开放,只能对子类进行覆写时,用protected

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值