3.1 Java关键字和保留字
“二哥,就之前你给我展示的 Java 代码中,有 public、static、void、main 等等,它们应该都是关键字吧?”三妹的脸上泛着甜甜的笑容,我想她在学习 Java 方面已经变得越来越自信了。
“是的,三妹。Java 中的关键字可不少呢!你一下子可能记不了那么多,不过,先保留个印象吧,对以后的学习会很有帮助。这些小代码都很简单,你可以照着瞧一瞧,感受一下。”
PS:这里我们按照首字母的自然顺序排列来简述一下,了解即可,记不住没关系哦。这些关键字我们在后续的学习中会详细讲解的,直到你搞懂为止。
1、abstract: 用于声明抽象类,以及抽象方法。
abstract class Animal {
abstract void makeSound();
public void sleep() {
System.out.println("The animal is sleeping.");
}
}
class Dog extends Animal {
void makeSound() {
System.out.println("The dog barks.");
}
}
在这个示例中,我们创建了一个名为 Animal 的抽象类,其中包含一个抽象方法 makeSound()
和一个具体方法 sleep()
。
2、boolean: Java 中的一种基本数据类型,表示布尔值,即真(true)或假(false)。boolean 数据类型常用于判断条件、循环控制和逻辑运算等场景。
boolean isStudent = true;
if (isStudent) {
System.out.println("This person is a student.");
} else {
System.out.println("This person is not a student.");
}
在这个示例中,我们定义了一个 boolean 变量:isStudent。通过 if 语句,我们可以根据这些变量的值进行不同的操作。
3、break: 用于跳出循环结构(如 for、while 和 do-while 循环)或 switch 语句。当遇到 break 语句时,程序将立即跳出当前循环或 switch 语句,继续执行紧跟在循环或 switch 语句后面的代码。
for (int i = 0; i < 10; i++) {
if (i == 5) {
break;
}
System.out.println("i: " + i);
}
System.out.println("Loop ended.");
在这个示例中,我们使用 for 循环遍历 0 到 9 的整数。当 i 等于 5 时,我们使用 break 语句跳出循环。
4、byte: 用于表示一个 8 位(1 字节)有符号整数。它的值范围是 -128(-2^7)到 127(2^7 - 1)。
由于 byte 类型占用的空间较小,它通常用于处理大量的数据,如文件读写、网络传输等场景,以节省内存空间。
byte minByte = -128;
byte maxByte = 127;
在这个示例中,我们声明了三个 byte 类型的变量:minByte、maxByte,并分别赋予了不同的值。
5、case: 通常与 switch 语句一起使用。switch 语句允许根据某个变量的值来选择执行不同的代码块。在 switch 语句中,case 用于标识每个可能的值和对应的代码块。
例子我们直接放到 switch 中一起讲。
6、catch: 用于捕获 try 语句中的异常。在 try 块中可能会抛出异常,而在 catch 块中可以捕获这些异常并进行处理。catch 块可以有多个,每个 catch 块可以捕获特定类型的异常。在 catch 块中,可以根据需要进行异常处理,例如输出错误信息、进行日志记录、恢复程序状态等。
try {
int num = Integer.parseInt("abc");
} catch (NumberFormatException e) {
System.out.println("Invalid number format");
}
这个程序使用 try-catch 语句捕获 NumberFormatException 异常。在 try 块中,尝试将字符串 "abc" 转换为整数类型,由于这个字符串不是有效的数字格式,将会抛出 NumberFormatException 异常。在 catch 块中,捕获到了这个异常,并输出一条错误信息。
7、char: 用于声明一个字符类型的变量。char 类型的变量可以存储任意的 Unicode 字符,可以使用单引号将字符括起来来表示。
char c = 'A';
这个程序创建了一个 char 类型的变量 c,并将其赋值为大写字母 A。
8、class: 用于声明一个类。
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
}
}
9、continue: 用于继续下一个循环,可以在指定条件下跳过其余代码。
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
10、default: 用于指定 switch 语句中除去 case 条件之外的默认代码块。这个我们放到 switch 里一起演示。
11、do: 通常和 while 关键字配合使用,do 后紧跟循环体。
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 10);
do-while 循环与 while 循环类似,不同之处在于 do-while 循环会先执行循环体中的代码,然后再检查循环条件。因此,do-while 循环至少会执行一次循环体中的代码。
12、double: 用于声明一个双精度浮点类型的变量。
double a = 3.14;
double b = 2.0;
double c = a + b;
13、else: 用于指示 if 语句中的备用分支。
int score = 75;
if (score >= 60) {
System.out.println("及格了");
} else {
System.out.println("挂科了");
}
14、enum: 用于定义一组固定的常量(枚举)。
public enum PlayerType {
TENNIS,
FOOTBALL,
BASKETBALL
}
15、extends: 用于指示一个类是从另一个类或接口继承的。
class Animal {
public void eat() {
System.out.println("动物正在吃东西");
}
}
class Dog extends Animal {
public void bark() {
System.out.println("狗在汪汪叫");
}
}
public class ExtendsDemo {
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat();
dog.bark();
}
}
Animal 类中有一个 eat()
方法,输出字符串 "动物正在吃东西"。Dog 类继承自 Animal 类,并定义了一个 bark()
方法,输出字符串 "狗在汪汪叫"。
16、final: 用于表示某个变量、方法或类是最终的,不能被修改或继承。
①、final 变量:表示一个常量,一旦被赋值,其值就不能再被修改。这在声明不可变的值时非常有用。
final double PI = 3.14159265359;
②、final 方法表示一个不能被子类重写的方法。这在设计类时,确保某个方法的实现不会被子类修改时非常有用。
class Animal {
final void makeSound() {
System.out.println("动物发出声音.");
}
}
class Dog extends Animal {
// 错误: 无法覆盖来自 Animal 的 final 方法
// void makeSound() {
// System.out.println("狗吠叫.");
// }
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.makeSound();
}
}
③、final 类表示一个不能被继承的类。这在设计类时,确保其不会被其他类继承时非常有用。String 类就是 final 的。
final class Animal {
void makeSound() {
System.out.println("动物发出声音.");
}
}
// 错误: 类型 Dog 无法继承 final 类 Animal
// class Dog extends Animal {
// void makeSound() {
// System.out.println("狗吠叫.");
// }
// }
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
animal.makeSound();
}
}
17、finally: 和 try-catch
配合使用,表示无论是否处理异常,总是执行 finally 块中的代码。
try {
int x = 10 / 0; // 抛出异常
} catch (Exception e) {
System.out.println("发生了异常:" + e.getMessage());
} finally {
System.out.println("finally 块被执行");
}
18、float: 表示单精度浮点数。
float f1 = 3.14f; // 注意要在数字后面加上 f 表示这是一个 float 类型
float f2 = 1.23e-4f; // 科学计数法表示小数
在 Java 中,浮点数默认是 double 类型,如果要使用 float 类型的数据,需要在数字后面加上一个 f 或者 F,表示这是一个 float 类型的字面量。另外,也可以使用科学计数法表示浮点数,例如 1.23e-4 表示 0.000123。
19、for: 用于声明一个 for 循环,如果循环次数是固定的,建议使用 for 循环。
int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "] = " + arr[i]);
}
20、if: 用于指定条件,如果条件为真,则执行对应代码。
int n = -3;
if (n > 0) {
System.out.println(n + " 是正数");
} else if (n < 0) {
System.out.println(n + " 是负数");
} else {
System.out.println(n + " 是零");
}
21、implements: 用于实现接口。
下面是一个实现了 Runnable 接口的类的示例:
public class MyThread implements Runnable {
public void run() {
// 线程执行的代码
}
}
22、import: 用于导入对应的类或者接口。例如,如果要使用 Java 标准库中的 ArrayList 类,可以这样写:
import java.util.ArrayList;
23、instanceof: 用于判断对象是否属于某个类型(class)。
例如,假设有一个 Person 类和一个 Student 类,Student 类继承自 Person 类,可以使用 instanceof 运算符来判断一个对象是否为 Person 类或其子类的实例:
Person p = new Student();
if (p instanceof Person) {
System.out.println("p is an instance of Person");
}
if (p instanceof Student) {
System.out.println("p is an instance of Student");
}
24、int: 用于表示整数值。
int x; // 声明一个 int 类型的变量 x
x = 10; // 将整数值 10 赋给变量 x
int y = 20; // 声明并初始化一个 int 类型的变量 y,赋值为整数值 20
25、interface: 用于声明接口。会定义一组方法的签名(即方法名、参数列表和返回值类型),但没有方法体。其他类可以实现接口,并提供方法的具体实现。
public interface MyInterface {
void method1();
int method2(String param);
}
26、long: 用于表示长整数值。
long x; // 声明一个 long 类型的变量 x
x = 10000000000L; // 将长整数值 10000000000 赋给变量 x,需要在数字后面加上 L 或 l 表示这是一个 long 类型的值
long y = 20000000000L; // 声明并初始化一个 long 类型的变量 y,赋值为长整数值 20000000000
27、native: 用于声明一个本地方法,本地方法是指在 Java 代码中声明但在本地代码(通常是 C 或 C++ 代码)中实现的方法,它通常用于与操作系统或其他本地库进行交互。
public native void nativeMethod();
28、new: 用于创建一个新的对象。
以下是使用 new 关键字创建对象实例的基本语法:
真诚点赞 诚不我欺
回复