Java中的关键字

    xiaoxiao2021-11-29  21

    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
    转载请注明原文地址: https://ju.6miu.com/read-678766.html

    最新回复(0)