Java中的关键字

Java中的关键字

一、什么是关键字?保留字?

1、关键字是指在编程语言中,已经赋予了固定意义,不能随意使用的单词。

2、保留字是指在编程语言中,暂时还没有赋予含义,不过也不能用于定义变量名和类名,因为后续再升级过程中可能会用到的单词。

3、有哪些关键字?  Java目前共有50个Java关键字   const和goto这两个在Java语言中为保留字
    
4、关键字分类:
跟类相关:class、public、private、protected、package、new
跟方法相关:void、return
跟属性相关:final、static
基本数据类型(八大基本数据类型):int、float、double、char、boolean、long、short、byte
循环结构:while、for、do、break、continue
判断语句:if、else、switch、case
异常:try、catch、finally、final、throws、throw
其他:native、goto、join、instanceof、enum、this、super

二、常用关键字分析

1、访问权限修饰符
public:当前工程下的任何一个类文件中都可以访问
protected:当前包下的任何一个类和不同包下的子类可以访问
默认不写:当前包下的任何一个类可以访问
private:仅仅在当前类里面可以访问

 
注意
对类的访问权限修饰只能用:public和默认不写,不能用protected和private
对属性和方法访问权限修饰:public、protected、默认不写、private
一个java文件中可以有多个class类,但是只能有一个public修饰的类   或者都用默认不写的访问权限


2、this和super关键字
     this关键字
表示当前类的对象,用于指代调用当前方法所对应的对象地址
所表示的对象不固定
this可以调用属性、方法、和构造方法

this使用格式
this调用属性:this.属性名
this调用普通方法:this.方法名(参数)
this调用构造方法:this(参数);







  super关键字
表示父类类的对象,用于指代父类对象地址
所表示的对象不固定
super可以调用父类属性、方法、和构造方法

super使用格式
super调用属性:super.属性名
super调用普通方法:super.方法名(参数)
super调用构造方法:super(参数);






请看下面的代码:分析为什么运行结果会是这样?这里也困惑了我很久

package com.huaxin.test3;

public class People {
	
	public String name;
	
	public People(){
		System.out.println("无参构造方法被调用!");
	}
	
	
	public People(String name){
		super();
		System.out.println("有参构造方法被调用!");
	}
	
	

	
	public void study(){
		System.out.println("人的study函数");
	}
}

package com.huaxin.test3;

public class Student extends People{
	
	/*
	 * 把这段代码注释掉或得到同样的运算结果
	 * 这就是继承父类的子类在new一个新的子类对象时会自动调用父类的构造函数,
	 * 这里调用的是父类的无参构造函数,当然也可以调用父类的有参构造函数,
	 * 不写时,会自动调用父类的无参构造函数;也就是说,构造子类对象时,一定会先有父类对象
	 */
	
	public Student(){
		super();
	}
	public void study() {
		super.study();
		this.name = "王五";
		super.name = "李四";
		System.out.println("Student的学习方法");
	}
}

package com.huaxin.test3;

public class Test {
	public static void main(String[] args) {
		Student stu = new Student();
		stu.study();
		System.out.println(stu.name);
	}
}


运行结果:



分析:
执行Student stu = new Student();
这段代码时,会执行
public Student(){
super();
}
这段构造函数代码,就算你不写,也会默认在那里;
关于name的输出:




内存中只有一个name属性,name属性是父类的,父类会自动关联子类,所有name只有一份;子类重写父类的方法时,会有另一片堆空间用来存放子类重写父类的方法,父类的方法也会存在;

this和super关键字看似简单,其实里面包含了很多东西的;我个人是这么认为的;



3.final:最终的,表示不能再修改
可以修饰的范围:类、方法、属性、局部变量
final类:代表当前类不能被继承(不能当父类用)
final方法:代表子类不能重写父类的方法
final属性:只能被初始化一次值(常量),而且必须要初始化好
final局部变量:在当前局部变量使用的范围内,不能再被修改



4.static:静态的

static定义
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法
被static修饰的成员变量和成员方法独立于该类的任何对象
也可以形成静态static代码块

static特点
static关键字修饰的属性和方法独立于当前类的所有对象,被类的所有实例对象共享
只要这个类被加载,Java虚拟机就能根据类名在运行时区内找到他们


静态变量和静态方法
通过static修饰的变量为静态变量
通过static修饰的方法为静态方法
静态变量和方法在加载当前类的时候就直接加载到内存中,不用等到创建对象
无论当前类创建多少个对象,静态变量和静态方法在内存中只有一份



5、静态块与代码块:
静态块是用于执行某部分逻辑的特定静态区域
代码块是用于执行某部分逻辑的特定代码区域
静态块在加载当前类的时候自动执行,代码块在常见当前类对象时候自动执行
静态块在加载静态属性之后,加载静态方法之前执行
代码块在加载普通属性之后,加载普通方法之前执行
package com.huaxin.test5;

public class Student {
	// 静态块:加载类的时候自动执行
	static {
		System.out.println(1);
	}//静态方法:调用时执行
	public static void play() {
		System.out.println(2);
	}
	// 代码块:创建对象的时候自动执行
	{
		System.out.println(3);
	}
	public Student() {
		System.out.println(4);
	}
	public void study() {
		System.out.println(5);
	}
}

package com.huaxin.test5;

public class Test {
	public static void main(String[] args) {
		Student stu1 = new Student();
		Student stu2 = new Student();
		stu1.study();
		stu1.play();
		stu2.study();
		stu2.play();
	}

}

运行结果:











6、break\continue\return
break:跳出当层循环
continue:结束这一次循环,进入下一次循环
return:结束当前方法




7、八大基本数据类型
java类中:引用(类)类型、基本数据类型
引用(类)类型:String \JFrame\JLabel\Math
基本数据类型:int float double char long short byte boolean


8、八大基本数据类型都会对应有一个类类型:
Integer、Float 、Double、 Character 、Long、 Short、 Byte、 Boolean



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值