1. Java程序结构
Java程序通常由以下几个部分组成:
- 类(Class):Java程序的基本组成单元,用于封装数据和功能。每个Java程序至少包含一个类,且这个类必须包含一个
main
方法作为程序的入口点。 - 方法(Method):定义在类中的代码块,用于完成特定的功能。
main
方法是程序的起点。 - 语句(Statement):构成方法的指令,用于执行操作。
示例:Hello World程序
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!"); // 输出 Hello, World!
}
}
2. 基本数据类型
Java支持八种基本数据类型,用于存储不同类型的值:
- 整型:
byte
、short
、int
、long
- 浮点型:
float
、double
- 字符型:
char
- 布尔型:
boolean
示例:声明变量
public class VariableAndOperators {
public static void main(String[] args) {
int age = 25;
double pi = 3.14;
char gender = 'M';
boolean isStudent = true;
System.out.println("Age: " + age); // 输出 Age: 25
System.out.println("PI: " + pi); // 输出 PI: 3.14
System.out.println("Gender: " + gender); // 输出 Gender: M
System.out.println("Is Student: " + isStudent); // 输出 Is Student: true
int sum = 5 + 3;
System.out.println("Sum: " + sum); // 输出 Sum: 8
int product = 5 * 3;
System.out.println("Product: " + product); // 输出 Product: 15
}
}
3. 运算符
Java提供了丰富的运算符,用于执行算术运算、比较运算、逻辑运算等。
- 算术运算符:
+
、-
、*
、/
、%
- 比较运算符:
==
、!=
、<
、<=
、>
、>=
- 逻辑运算符:
&&
、||
、!
- 赋值运算符:
=
、+=
、-=
、*=
、/=
示例:使用运算符
public class OperatorsExample {
public static void main(String[] args) {
// 算术运算符
int a = 10;
int b = 5;
System.out.println("a + b = " + (a + b)); // 加法,15
System.out.println("a - b = " + (a - b)); // 减法,5
System.out.println("a * b = " + (a * b)); // 乘法 ,50
System.out.println("a / b = " + (a / b)); // 除法(整数除法),2
System.out.println("a % b = " + (a % b)); // 取余 ,0
// 自增自减运算符(作为赋值运算符的一部分展示)
int c = 1;
c++; // 等同于 c = c + 1;
System.out.println("c++ (c now is) = " + c);
// 赋值运算符(简单赋值,复合赋值已在上文通过自增自减展示)
int d = 2;
d = d + 3; // 等同于 d += 3; 但这里只展示简单赋值结合算术运算
System.out.println("d = d + 3 (d now is) = " + d);
// 比较运算符
boolean isGreater = (a > b);
boolean isEqual = (a == b);
System.out.println("a > b is " + isGreater);
System.out.println("a == b is " + isEqual);
// 逻辑运算符
boolean condition1 = true;
boolean condition2 = false;
System.out.println("condition1 && condition2 is " + (condition1 && condition2)); // 逻辑与
System.out.println("condition1 || condition2 is " + (condition1 || condition2)); // 逻辑或
System.out.println("!condition1 is " + (!condition1)); // 逻辑非
}
}
4. 控制流语句
控制流语句用于控制程序的执行流程,包括条件语句和循环语句。
- 条件语句:
if-else
、switch
- 循环语句:
for
、while
、do-while
示例:条件语句和循环语句
public class ConditionalAndLoopStatementsChinese {
public static void main(String[] args) {
// 条件语句 - if-else
int number = 10;
if (number > 5) {
System.out.println("数字大于5。");
} else {
System.out.println("数字不大于5。");
}
// 条件语句 - switch
char grade = 'B';
switch (grade) {
case 'A':
System.out.println("优秀!");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("及格");
break;
case 'D':
System.out.println("需努力");
break;
case 'F':
System.out.println("不及格,请重试");
break;
default:
System.out.println("无效的等级");
}
// 循环语句 - for
for (int i = 1; i <= 5; i++) {
System.out.println("i 的值为: " + i);
}
// 循环语句 - while
int count = 0;
while (count < 5) {
System.out.println("count 的值为: " + count);
count++;
}
// 循环语句 - do-while
int anotherCount = 0;
do {
System.out.println("anotherCount 的值为: " + anotherCount);
anotherCount++;
} while (anotherCount < 5);
// 嵌套循环示例 - 打印矩形
for (int row = 1; row <= 3; row++) { // 行
for (int col = 1; col <= 5; col++) { // 列
System.out.print("* ");
}
System.out.println(); // 换行
}
}
}
5. 数组
数组是储存在堆上的对象,可以保存多个同类型变量。数组是相同类型数据的集合,允许使用索引访问每个元素。
示例:声明和初始化数组
5.1. 声明数组
声明数组就是指定数组的类型和名称,但不为其分配内存空间或初始化其元素。数组声明的一般形式是:
type[] arrayName; |
其中type
是数组中元素的类型,arrayName
是数组的名称。
5.2. 构造数组(分配内存)
构造数组就是为数组分配内存空间,这通常是通过使用new
关键字来完成的。在分配内存时,还可以指定数组的长度(即它可以包含的元素数量)。
arrayName = new type[size]; |
其中size
是数组的长度,即你想要在数组中存储的元素数量。
5.3. 初始化数组
初始化数组就是给数组的元素赋值。这可以在声明数组的同时进行,也可以在数组构造之后进行。
初始化时分配内存
可以在声明数组的同时使用new
关键字和初始化列表来分配内存并初始化数组:
int[] numbers = {1, 2, 3, 4, 5}; |
这里,numbers
数组被声明为整型数组,并通过初始化列表{1, 2, 3, 4, 5}
同时分配了内存并初始化了元素。
分配内存后初始化
如果先分配了内存,然后再初始化数组,可以通过索引来访问数组的元素并给它们赋值:
int[] numbers = new int[5]; // 分配内存,数组元素初始化为0 | |
numbers[0] = 1; | |
numbers[1] = 2; | |
// ... 以此类推 |
或者,也可以使用循环来初始化数组:
int[] numbers = new int[5]; | |
for (int i = 0; i < numbers.length; i++) { | |
numbers[i] = i + 1; // 初始化数组元素为1, 2, 3, 4, 5 | |
} |
完整示例
public class ArrayExample {
public static void main(String[] args) {
// 声明数组
int[] numbers;
// 构造数组(分配内存)并初始化
numbers = new int[]{1, 2, 3, 4, 5};
// 或者分开进行
// numbers = new int[5]; // 分配内存
// numbers[0] = 1; // 初始化
// numbers[1] = 2;
// ...
// 遍历并打印数组元素
for (int i = 0; i < numbers.length; i++) {
System.out.println("数组的第 " + (i + 1) + " 个元素是: " + numbers[i]);
}
}
}
6. 类与对象
Java是一种面向对象的语言,支持类的定义和对象的创建。
示例:定义类并创建对象
Java是一种强大的面向对象编程语言,它允许我们定义类(Class)作为构建块来创建对象(Object)。类定义了对象的属性和行为,而对象则是类的具体实例。在这个例子中,将定义一个名为Person
的类,它包含两个属性:name
(姓名)和age
(年龄),以及一个方法introduce()
用于打印自我介绍。然后,在Main
类中创建Person
类的一个对象,并设置其属性,最后调用introduce()
方法来展示对象的行为。
// 定义Person类
class Person {
// 定义属性
String name; // 姓名
int age; // 年龄
// 定义方法
void introduce() {
// 使用System.out.println打印自我介绍
System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
}
}
// 定义Main类,程序的入口
public class Main {
public static void main(String[] args) {
// 创建Person类的一个对象
Person person = new Person();
// 设置对象的属性
person.name = "John"; // 设置姓名
person.age = 30; // 设置年龄
// 调用对象的方法
person.introduce(); // 打印自我介绍
// 输出结果将是:Hello, my name is John and I am 30 years old.
}
}
输出结果
当运行上述Java程序时,控制台将输出以下结果:
Hello, my name is John and I am 30 years old. |
示例解释
-
定义类:
Person
类定义了两个属性name
和age
,以及一个方法introduce()
。introduce()
方法使用System.out.println
来打印一条包含姓名和年龄的自我介绍信息。 -
创建对象:在
Main
类的main
方法中,通过new Person()
创建了一个Person
类的实例(即对象)person
。 -
设置属性:通过
person.name = "John";
和person.age = 30;
为对象person
的name
和age
属性分别赋值。 -
调用方法:通过
person.introduce();
调用对象person
的introduce()
方法,该方法将使用对象的属性值来打印一条自我介绍信息。