JAVA关键字的理解和整理

JAVA关键字的理解和整理

对于每一种编程语言都有其自己的一些关键字,所谓关键字:即该种编程语言固定和规定的单词,无法用于定义变量名、方法名、类名等。而对于java来说也有不少的关键字:

 

那接下来我就大概的说说一些常用的关键字的用法,至于一些不怎么用到的一些关键字,有兴趣的话可以自己去了解了解,那就进入正题吧。

一、对常用关键字的分类

1.具有访问权限:publicprotectedprivate(其实是四种,包括默认)

2.跟类相关:classextendsinterfaceimplementsimportabstract

3.跟方法相关:voidreturn

4.基本数据类型:intlongshortfloatdoublebytebooleanchar

5.跟循环判断相关:ifelsewhilebreakcontinuecaseswitchdofor

6.异常:trycatchfinallythrowthrows

7.跟对象有关:newthissuper

8.其他:instanceofstaticfinal

大概就分以上八种类型

二、重点分析以上一些重要关键字

a) A)具有访问权限:用于限制当前修饰的属性或者方法的使用范围

JAVA中访问权限分为四种:public(公有)、protected(受保护)、默认、private(私有)

那对于访问权限有哪些限制和修饰呢?

public   String name;
	protected  int num;
	 int a;
	private  char p;
	

1.对于类:只能使用public和默认(不写),如果一个java文件中有多个类,则一定只能有一个public且这个publicclass一定要和文件名一致)。

2.对于定义属性(常量,变量):注意:接口中的所有常量必须都是public的(可以不写) 

3.对于定义方法:

注意:1)接口中的所有方法必须都是public的(Public可以不写)

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

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

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

访问权限

当前类

共同包

不同包的继承

不同包

Public

Yes

Yes

Yes

Yes

protected

Yes

Yes

Yes

no

默认

Yes

Yes

no

no

private

Yes

no

no

no

B)thissuper

1)this:指当前类对象

1.在普通方法里面用:指代的是调用当前类的相关属性和方法this.方法名()

2.在构造方法里面用:指代的是调用当前类的其他构造函数this();

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

2super:指父类对象

1.在普通方法里面用:指代调用父类的普通方法super.方法名()

2.在构造方法里面用:指代调用父类的构造方法super()

注意:方法重写:1)完全覆盖父类的方法   2)对父类的方法进行补充

每一个子类的构造方法,一定会调用父类的构造方法,用来初始化父类的属性

Super()一定要放在第一行

问题:一个构造方法中,可不可以同时调用自己类的构造方法this()和父类构造方法super()可以,但是super一定只能是隐性定义

C)final:最终的(修饰)

1.可以修饰的东西:类、方法、属性、参数、局部变量

2.修饰类:不能被继承(无子类的类):接口和抽象类一定不能用final修饰

3.修饰方法:方法不能被子类重写

4.修饰属性:代表当前属性只能被赋值一次

5.修饰参数/局部变量:在参数和局部变量的生命周期内不能再修改

注意:匿名内部类使用外部类的局部变量一定要加final修饰

D)static:静态的(修饰)

1.可以修饰的东西:属性、方法、静态块

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

 例如:

public class Student {
public static String name;
}
public class Test {
public static void main(String[] args) {
	Student stu=new Student();
	Student stu1=new Student();
Student.name="小李";
stu.name="小明";
stu=stu1;
stu1.name="王五";
System.out.println(Student.name);
System.out.println(stu.name);
System.out.println(stu1.name);

}
}

运行结果:王五 王五王五

3.静态块:static{}

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

 

例如:

public class Student {
//构造函数
	public Student(){
		System.out.println("0");
	}
	//静态块
	static{
		System.out.println("1");
	}
	//代码块
	{
		System.out.println("2");
	}
	public static void study(){
		System.out.println("3");
	}
	public void play(){
		System.out.println("4");
	}
}
public class Test {
public static void main(String[] args) {
	Student stu=new Student();
	Student stu1=new Student();
Student.study();
stu.play();
}
}

运行结果:1 2 0 2 0 3 4

分析:首先产生类,则最先为静态块,且每个类有且只有一次静态块运行(每个类只加载一次);接下来便是代码块,在创建对象时进行;接下来便是构造函数;按顺序下去

注意:静态块和代码块都是自运行的,且自运行的先于需要调用的。

E)returnbreakcontinue

1.return:结束当前方法

2.break:跳出当前层循环

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

F)Instanceof:校验当前的对象转型之前的类型是什么:语法: 对象名  instanceof类名

 

public class Test {
	public void test(){
		Student stu1 = new UnStudent();
		Student stu2 = new MiddleStudent();
		//后续你需要强转回去
		if(stu1 instanceof UnStudent){	
		}
}
}

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值