一、Java 概述与环境搭建
1.1 Java 简介
Java 是由 Sun Microsystems 公司(后被 Oracle 收购)于 1995 年推出的高级编程语言,具有“一次编写,到处运行”(Write Once, Run Anywhere)的跨平台特性。Java 广泛应用于企业级开发、Android 应用、大数据处理等领域。
1.2 环境搭建步骤
- JDK 安装:从 Oracle 官网或 OpenJDK 下载对应系统的 JDK(Java Development Kit),例如 jdk-17.0.4。
- 环境变量配置:
- Windows:设置
JAVA_HOME
、PATH
和CLASSPATH
。 - Linux/macOS:编辑
.bashrc
或.zshrc
文件添加配置。
- Windows:设置
- 验证安装:命令行输入
java -version
和javac -version
检查版本信息。
1.3 第一个 Java 程序
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
编译运行步骤:
- 保存为
HelloWorld.java
文件。 - 命令行执行
javac HelloWorld.java
编译。 - 执行
java HelloWorld
运行程序。
二、Java 基础语法
2.1 数据类型与变量
Java 是强类型语言,数据类型分为基本类型和引用类型:
- 基本类型:
int
、double
、char
、boolean
等。 - 引用类型:
String
、数组、类、接口等。
变量声明示例:
int age = 25;
double salary = 10000.50;
char gender = 'M';
boolean isStudent = false;
String name = "John Doe";
2.2 控制流程语句
1、条件语句:
if (age >= 18) { System.out.println("成年人"); } else { System.out.println("未成年人"); }
2、循环语句:
// for 循环
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
// while 循环
int j = 0;
while (j < 5) {
System.out.println(j);
j++;
}
2.3 面向对象编程基础
Java 是面向对象语言,核心概念包括类、对象、继承、多态等。示例:
// 定义类
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, I'm " + name + ", " + age + " years old.");
}
}
// 使用对象
public class Main {
public static void main(String[] args) {
Person person = new Person("Alice", 20);
person.sayHello();
}
}
继承与多态示例:
// 父类
class Animal {
public void sound() {
System.out.println("Animal makes sound");
}
}
// 子类
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Dog barks");
}
}
// 多态应用
public class Main {
public static void main(String[] args) {
Animal animal = new Dog();
animal.sound(); // 输出: Dog barks
}
}
三、Java 常用类库与API
3.1 String 类操作
String str = "Hello Java";
System.out.println(str.length()); // 输出: 10
System.out.println(str.substring(6)); // 输出: Java
System.out.println(str.contains("Java")); // 输出: true
3.2 集合框架
Java 集合框架提供了 List、Set、Map 等常用数据结构。
List 示例:
import java.util.ArrayList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
Map 示例:
import java.util.HashMap;
import java.util.Map;
public class MapExample {
public static void main(String[] args) {
Map<String, Integer> scores = new HashMap<>();
scores.put("Alice", 90);
scores.put("Bob", 85);
scores.put("Charlie", 95);
System.out.println(scores.get("Bob")); // 输出: 85
}
}
3.3 文件操作
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class FileExample {
public static void main(String[] args) {
try {
// 写入文件
FileWriter writer = new FileWriter("test.txt");
writer.write("Hello, File I/O!");
writer.close();
// 读取文件
File file = new File("test.txt");
Scanner scanner = new Scanner(file);
System.out.println(scanner.nextLine());
scanner.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
四、实战
4.1 目标
设计一个简单的学生成绩管理系统,实现学生信息和成绩的增删改查功能。
4.2 设计
- 学生类(Student):包含学号、姓名、成绩等属性。
- 管理类(StudentManager):实现学生信息的增删改查方法。
- 主类(Main):提供用户交互界面。
4.3 核心代码实现
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
// 学生类
class Student {
private String id;
private String name;
private double score;
public Student(String id, String name, double score) {
this.id = id;
this.name = name;
this.score = score;
}
// Getters and Setters
public String getId() {
return id; }
public String getName() {
return name; }
public double getScore() {
return score; }
public void setScore(double score) {
this.score = score; }
@Override
public String toString() {
return "ID: " + id + ", Name: " + name + ", Score: " + score;
}
}
// 学生管理类
class StudentManager {
private List<Student> students = new ArrayList<>();
// 添加学生
public void addStudent(Student student) {
students.add(student);
}
// 删除学生
public void deleteStudent(String id) {
students.removeIf(student -> student.getId().equals(id));
}
// 修改成绩
public void updateScore(String id, double newScore) {
for (Student student : students) {
if (student.getId().equals(id)) {
student.setScore(newScore);
break;
}
}
}
// 查询学生
public Student findStudent(String id) {
for (Student student : students) {
if (student.getId().equals(id)) {
return student;
}
}
return null;
}
// 显示所有学生
public void displayAllStudents() {
for (Student student : students) {
System.out.println(student);
}
}
}
// 主类
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
StudentManager manager = new StudentManager();
while (true) {
System.out.println("\n学生成绩管理系统");
System.out.println("1. 添加学生");
System.out.println("2. 删除学生");
System.out.println("3. 修改成绩");
System.out.println("4. 查询学生");
System.out.println("5. 显示所有学生");
System.out.println("6. 退出");
System.out.print("请选择操作: ");
int choice = scanner.nextInt();
scanner.nextLine(); // 消耗换行符
switch (choice) {
case 1:
System.out.print("输入学号: ");
String id = scanner.nextLine();
System.out.print("输入姓名: ");
String name = scanner.nextLine();
System.out.print("输入成绩: ");
double score = scanner.nextDouble();
scanner.nextLine();
manager.addStudent(new Student(id, name, score));
System.out.println("添加成功!");
break;
case 2:
System.out.print("输入要删除的学号: ");
manager.deleteStudent(scanner.nextLine());
System.out.println("删除成功!");
break;
case 3:
System.out.print("输入要修改成绩的学号: ");
String updateId = scanner.nextLine();
System.out.print("输入新成绩: ");
double newScore = scanner.nextDouble();
scanner.nextLine();
manager.updateScore(updateId, newScore);
System.out.println("修改成功!");
break;
case 4:
System.out.print("输入要查询的学号: ");
Student student = manager.findStudent(scanner.nextLine());
if (student != null) {
System.out.println(student);
} else {
System.out.println("未找到该学生!");
}
break;
case 5:
manager.displayAllStudents();
break;
case 6:
System.out.println("感谢使用系统,再见!");
scanner.close();
return;
default:
System.out.println("无效选择,请重新输入!");
}
}
}
}