基本语法
- Java 大小写敏感
- Java 源文件名必须和类名相同(如果文件名和类名不相同则会导致编译错误)
- Java 程序由 public static void main(String []args) 方法开始执行。
标识符(合法的变量名)
Java 标识符可以包含以下字符:
- 字母:A-Z、a-z
- 数字:0-9
- 符号:$、_
首字符不能是数字
Java 标识符大小写敏感
关键字不能用作标识符
关键字(保留字)
关键字 | 含义 |
---|---|
abstract | 表明类或者成员方法具有抽象属性 |
assert | 断言,用来进行程序调试 |
boolean | 基本数据类型之一,声明布尔类型的关键字 |
break | 提前跳出一个块 |
byte | 基本数据类型之一,字节类型 |
case | 用在switch语句之中,表示其中的一个分支 |
catch | 用在异常处理中,用来捕捉异常 |
char | 基本数据类型之一,字符类型 |
class | 声明一个类 |
const | 保留关键字,没有具体含义 |
continue | 回到一个块的开始处 |
default | 默认,例如,用在switch语句中,表明一个默认的分支 |
do | 用在do-while循环结构中 |
double | 基本数据类型之一,双精度浮点数类型 |
else | 用在条件语句中,表明当条件不成立时的分支 |
enum | 枚举 |
extends | 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口 |
final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量 |
finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 |
float | 基本数据类型之一,单精度浮点数类型 |
for | 一种循环结构的引导词 |
goto | 保留关键字,没有具体含义 |
if | 条件语句的引导词 |
implements | 表明一个类实现了给定的接口 |
import | 表明要访问指定的类或包 |
instanceof | 用来测试一个对象是否是指定类型的实例对象 |
int | 基本数据类型之一,整数类型 |
interface | 接口 |
long | 基本数据类型之一,长整数类型 |
native | 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 |
new | 用来创建新实例对象 |
package | 包 |
private | 一种访问控制方式:私用模式 |
protected | 一种访问控制方式:保护模式 |
public | 一种访问控制方式:共用模式 |
return | 从成员方法中返回数据 |
short | 基本数据类型之一,短整数类型 |
static | 表明具有静态属性 |
strictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范[1] |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
while | 用在循环结构中 |
注释
多行注释:
/*
这是一个多行注释
可以用来注释多行代码
*/
int y = 20; // 初始化一个变量y为20
单行注释:
// 这是一个单行注释
int x = 10; // 初始化一个变量x为10
文档注释:
/**
* 这是一个文档注释示例
* 它通常包含有关类、方法或字段的详细信息
*/
public class MyClass {
// 类的成员和方法
}
基本数据类型与变量
Java提供了八种基本数据类型,包括整数类型(byte、short、int、long)、浮点类型(float、double)、字符类型(char)和布尔类型(boolean)。
代码案例:
public class BasicDataTypes {
public static void main(String[] args) {
// 整数类型
byte myByte = 10;
short myShort = 200;
int myInt = 10000;
long myLong = 10000000000L;
// 浮点类型
float myFloat = 3.14f;
double myDouble = 3.141592653589793;
// 字符类型
char myChar = 'A';
// 布尔类型
boolean isTrue = true;
boolean isFalse = false;
// 输出变量的值
System.out.println("myByte: " + myByte);
System.out.println("myShort: " + myShort);
System.out.println("myInt: " + myInt);
System.out.println("myLong: " + myLong);
System.out.println("myFloat: " + myFloat);
System.out.println("myDouble: " + myDouble);
System.out.println("myChar: " + myChar);
System.out.println("isTrue: " + isTrue);
System.out.println("isFalse: " + isFalse);
}
}
运算符
Java中的运算符包括算术运算符、赋值运算符、关系运算符、逻辑运算符等。
代码案例:
public class Operators {
public static void main(String[] args) {
int a = 10;
int b = 20;
// 算术运算符
int sum = a + b;
int difference = a - b;
int product = a * b;
int quotient = a / b;
int remainder = a % b;
// 赋值运算符
int c = 5;
c += 3; // c = c + 3
// 关系运算符
boolean isEqual = (a == b);
boolean isNotEqual = (a != b);
// 逻辑运算符
boolean andResult = (a > 0) && (b > 0);
boolean orResult = (a > b) || (b < 0);
// 输出结果
System.out.println("Sum: " + sum);
System.out.println("Difference: " + difference);
System.out.println("Product: " + product);
System.out.println("Quotient: " + quotient);
System.out.println("Remainder: " + remainder);
System.out.println("c after +=: " + c);
System.out.println("a == b: " + isEqual);
System.out.println("a != b: " + isNotEqual);
System.out.println("a > 0 && b > 0: " + andResult);
System.out.println("a > b || b < 0: " + orResult);
}
}
条件语句与循环语句
Java中的条件语句包括if语句、else if语句、else语句,循环语句包括while循环、do-while循环和for循环。
代码案例:
public class ControlFlow {
public static void main(String[] args) {
int number = 10;
// if-else语句
if (number > 0) {
System.out.println("Number is positive.");
} else if (number < 0) {
System.out.println("Number is negative.");
} else {
System.out.println("Number is zero.");
}
// for循环
for (int i = 0; i < 5; i++) {
System.out.println("i: " + i);
}
// while循环
int count = 0;
while (count < 5) {
System.out.println("count: " + count);
count++;
}
// do-while循环
int j = 0;
do {
System.out.println("j: " + j);
j++;
} while (j < 5);
}
}
类与对象
在Java中,类是一种用于描述对象属性的模板或蓝图。类定义了对象将拥有的特征(属性)和行为(方法)。
代码案例:
// 定义一个名为Person的类
class Person {
// 属性
String name;
int age;
// 方法
void speak() {
System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
}
}
public class ClassesAndObjects {
public static void main(String[] args) {
// 创建Person类的对象
Person person = new Person();
// 设置对象的属性
person.name = "Alice";
person.age = 30;
// 调用对象的方法
person.speak();
}
}
Java 包
包主要用来对类和接口进行分类。当开发Java程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类。
1 package 语句
package 指定的信息直接将生成的 class 文件生成到对应目录下。如 package aaa.bbb.ccc 编译器就将该 .java 文件下的各个类生成到 ./aaa/bbb/ccc/ 这个目录。
2 import 语句
import 是为了简化使用 package 之后的实例化的代码。假设 ./aaa/bbb/ccc/ 下的 A 类:
假如没有 import,实例化A类为:new aaa.bbb.ccc.A();
使用 import aaa.bbb.ccc.A 后,就可以直接使用 new A() 了; 也就是编译器匹配并扩展了 aaa.bbb.ccc. 这串字符串。
例如:下面的命令行将会命令编译器载入 java_installation/java/io 路径下的所有类:
import java.io.*;
继承
在 Java 中,一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。
利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(sub class)。
接口
在 Java 中,接口可理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。
接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。