Java 基本语法
Java - 基本语法
Section titled “Java - 基本语法”欢迎来到 Java 编程的基础部分!Java 程序本质上是对象集合,它们通过相互调用方法来交互。在深入探讨之前,让我们先了解基本构建块和语法规则。
核心概念回顾:
Section titled “核心概念回顾:”- 对象 (Object): 类的一个实例,具有状态(数据/字段)和行为(方法)。示例:一个特定的
Dog对象可能有color="Brown"、name="Buddy"等状态以及bark()、fetch()等行为。 - 类 (Class): 创建对象的蓝图或模板。它定义了所有该类型对象将具有的通用属性(字段)和动作(方法)。示例:
Dog类定义了所有狗都有名字且会叫。 - 方法 (Method): 类中执行特定动作或行为的代码块。方法操作数据并执行逻辑。
- 实例变量 (Instance Variables) / 字段 (Fields): 在类中声明但在任何方法外部声明的变量。类的每个对象(实例)都有这些变量的自己的副本,定义了其独特的状。
你的第一个 Java 程序
Section titled “你的第一个 Java 程序”让我们从经典的“Hello, World!”示例开始。这个简单的程序展示了基本结构。
/** * 这是一个简单的 Java 程序。 * 它展示了基本结构并打印“Hello, World!”。 */public class HelloWorld {
// main 方法是应用程序的入口点。 public static void main(String[] args) { // 将文本 "Hello, World!" 打印到控制台。 System.out.println("Hello, World!"); }
} // HelloWorld 类结束public class HelloWorld:声明一个名为HelloWorld的类。public关键字意味着该类可以从任何地方访问。public static void main(String[] args):这是 main 方法。每个 Java 应用程序都需要一个。-
public:可从任何地方访问。
-
static:表示该方法属于HelloWorld类本身,而不是属于任何特定的对象实例。无需创建类的对象即可运行。
-
void:表示该方法不返回任何值。
-
main:这个特定的名称告诉 Java 虚拟机 (JVM) 从哪里开始执行。
-
String[] args:声明一个名为args的参数,它是一个String对象数组。当程序运行时,该数组持有传递给程序的任何命令行参数。
System.out.println("Hello, World!");:这行代码执行实际工作。-
System:java.lang包中的一个内置 Java 类。
-
out:System类中的一个静态字段,表示标准输出流(通常是控制台)。
-
println():out对象的一个方法,将提供的文本(参数)打印到控制台,后跟一个换行符。
//和/** ... */:这些是注释。编译器会忽略它们。它们用于解释代码。
保存、编译和运行:
Section titled “保存、编译和运行:”- 保存:将代码保存到一个文本文件中,文件名必须准确命名为
HelloWorld.java。文件名必须与公共类名完全匹配,包括大小写。 - **编译:**打开终端或命令行提示符,导航到保存文件的目录,然后输入:
javac HelloWorld.java。此命令调用 Java 编译器(javac)。如果没有错误,它将在同一目录中创建一个名为HelloWorld.class的字节码文件。 - 运行:在同一个终端中,输入:
java HelloWorld。此命令启动 Java 虚拟机(JVM),并告诉它运行HelloWorld类(特别是其main方法)。注意不要包含.class扩展名。
预期输出:
Hello, World!基本语法规则
Section titled “基本语法规则”请记住这些基本规则:
- 区分大小写 (Case Sensitivity): Java 区分大小写。
myVariable和myvariable是不同的标识符。 - 类名: 按照约定,类名以大写字母开头并使用驼峰命名法(例如,
MyFirstClass、String、ArrayList)。 - 方法名: 按照约定,方法名以小写字母开头并使用驼峰命名法(例如,
calculateTotal()、getUserName())。 - 文件名:
.java文件的名称必须与其中声明的public类名完全匹配。 main方法: 每个 Java 应用程序必须包含一个public static void main(String[] args)方法作为其起点。- 语句 (Statements): 每个语句通常以分号(
;)结束。 - 代码块 (Code Blocks): 代码块由花括号
{}定义。它们将语句组合在一起(例如,在类、方法、循环、条件语句内)。 - 空白符 (Whitespace): Java 忽略令牌之间的额外空白符(空格、制表符、换行符),但适当的缩进使代码更易读。
Java 标识符
Section titled “Java 标识符”标识符是赋予 Java 元素的名称,例如类、方法、变量、包等。
标识符规则:
- 必须以字母(a-z、A-Z)、下划线(
_)或美元符号($)开头。 - 后续字符可以是字母、数字(0-9)、下划线或美元符号。
- 不能是 Java 关键字(保留字,如
class、int、public、if等)。 - 不能是
true、false或null。 - 区分大小写。
- 理论上可以是任意长度,但请保持它们有意义且长度适中。
示例:
- 有效:
age、userName、_balance、$amount、MAX_VALUE、calculateInterest - 无效:
1stName(以数字开头)、user name(包含空格)、class(关键字)、max-value(包含连字符)
Java 修饰符
Section titled “Java 修饰符”修饰符是添加到定义(如类、方法、变量)中的关键字,用于改变它们的含义或可访问性。
- 访问修饰符 (Access Modifiers): 控制可见性。
-
public:可从任何地方访问。
-
private:仅在同一类内可访问。
-
protected:在同一类、同一包和子类内可访问。
-
- (默认/包私有):(无关键字) 仅在同一包内可访问。
- 非访问修饰符 (Non-Access Modifiers): 提供其他特性。
-
static:属于类,不属于实例。
-
final:值不能改变(变量),方法不能被覆盖,类不能被继承。
-
abstract:类不能被实例化,方法没有实现(必须被覆盖)。
-
synchronized、volatile:与多线程相关(稍后讨论)。
我们将在后面的章节中更详细地探讨这些内容。
Java 变量
Section titled “Java 变量”变量是用于存储数据值的容器。在 Java 中,根据声明位置的不同,主要有三种类型:
- 局部变量 (Local Variables): 在方法、构造器或代码块内部声明。它们仅存在于该作用域内。
- 实例变量 (Instance Variables) / 非静态字段 (Non-Static Fields): 在类内部但任何方法外部声明。每个对象实例都有其自己的副本。
- 类变量 (Class Variables) / 静态字段 (Static Fields): 在类内部、任何方法外部声明,使用
static关键字。所有类实例共享同一个副本。
这些内容将在“Java 变量类型”一章中详细介绍。
Java 数组
Section titled “Java 数组”数组是存储相同类型固定大小序列元素的对象。我们将在专门的章节中介绍如何声明、创建和初始化数组。
Java 枚举 (Enumerations)
Section titled “Java 枚举 (Enumerations)”枚举(自 Java 5 引入)是一种特殊的类型,定义了一组命名常量。枚举限制变量只能持有这些预定义的常量值之一,从而提高了类型安全性和代码清晰度。
// 定义 T 恤尺寸的枚举enum Size { SMALL, MEDIUM, LARGE, EXTRA_LARGE}
public class TshirtOrder { Size shirtSize; // 变量只能持有 Size 枚举常量之一
public static void main(String[] args) { TshirtOrder order = new TshirtOrder(); order.shirtSize = Size.MEDIUM; // 赋值一个枚举常量
System.out.println("Selected size: " + order.shirtSize);
// 枚举在 switch 语句中非常有用 switch (order.shirtSize) { case SMALL: System.out.println("Ordering a small shirt."); break; case MEDIUM: System.out.println("Ordering a medium shirt."); break; // ... 其他情况 default: System.out.println("Unknown size selected."); } }}输出:
Selected size: MEDIUMOrdering a medium shirt.Java 关键字
Section titled “Java 关键字”关键字是 Java 中具有预定义含义的保留字。您不能将它们用作标识符(变量、类、方法等的名称)。
abstract | assert | boolean | break |
byte | case | catch | char |
class | const* | continue | default |
do | double | else | enum |
extends | final | finally | float |
for | goto* | if | implements |
import | instanceof | int | interface |
long | native | new | package |
private | protected | public | return |
short | static | strictfp | super |
switch | synchronized | this | throw |
throws | transient | try | void |
volatile | while | _ (下划线,自 Java 9 起受限) |
注意:const 和 goto 是保留字但目前未使用。true、false 和 null 是字面值,不是关键字,但也不能用作标识符。var(自 Java 10 起)是保留类型名称,并非严格意义上的关键字。
Java 中的注释
Section titled “Java 中的注释”注释用于解释代码,编译器会忽略它们。Java 支持三种类型的注释:
- 单行注释: 以
//开始,并持续到行尾。 - 多行注释: 以
/*开始,以*/结束。可以跨多行。 - Javadoc 注释: 以
/**开始,以*/结束。类似于多行注释,但专门用于使用javadoc工具生成 API 文档。
// 这是一个单行注释。int count = 0; // 初始化计数器
/*这是一个多行注释。它可以跨多行。*/
/** * 这是 calculate 方法的 Javadoc 注释。 * 它解释了方法的作用。 * @param x 第一个操作数。 * @param y 第二个操作数。 * @return x 和 y 的和。 */public int calculate(int x, int y) { return x + y;}下一步是什么?
Section titled “下一步是什么?”现在您已经掌握了基本语法和结构,下一章“Java 对象与类”将更深入地探讨 Java 中面向对象编程的核心概念,解释如何定义自己的类并从中创建对象。