当前位置: 首页 > article >正文

【Java基础篇】——第2篇:Java语法基础

第2篇:Java语法基础

2.1 引言

在上一篇中,我们介绍了Java的基本概念、应用场景以及如何搭建开发环境。本篇将深入探讨Java的语法基础,涵盖变量与数据类型、运算符、控制结构、数组、方法、面向对象编程的进一步内容、异常处理以及常用的编程规范。通过本篇内容,读者将能够编写基本的Java程序,理解其核心语法结构。

2.2 Java的基本组成

Java程序由以下几个基本组成部分构成:

  1. 包(Package):用于组织类和接口,类似于文件夹。
  2. 类(Class):Java的基本构建单元,包含属性和方法。
  3. 方法(Method):实现特定功能的代码块。
  4. 变量(Variable):用于存储数据的命名空间。
  5. 语句(Statement):执行特定操作的指令。
2.3 数据类型与变量

Java是一种强类型语言,这意味着每个变量在使用前必须声明其数据类型。Java的数据类型分为两大类:基本数据类型(Primitive Types)引用数据类型(Reference Types)

2.3.1 基本数据类型

Java有8种基本数据类型:

  1. 整数类型

    • byte:1字节,范围:-128 到 127
    • short:2字节,范围:-32,768 到 32,767
    • int:4字节,范围:-2,147,483,648 到 2,147,483,647
    • long:8字节,范围:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
  2. 浮点类型

    • float:4字节,单精度浮点数,需在数值后加fF
    • double:8字节,双精度浮点数
  3. 字符类型

    • char:2字节,单个Unicode字符,例如 'A''中'
  4. 布尔类型

    • boolean:1字节,取值truefalse
2.3.2 引用数据类型

引用数据类型包括类(Class)、接口(Interface)、数组(Array)等。它们存储的是对象的引用,而不是实际的值。

2.3.3 变量的声明与初始化

变量在使用前必须声明,可以在声明时初始化,也可以在后续赋值。

public class VariableExample {
    public static void main(String[] args) {
        // 声明并初始化变量
        int number = 10;
        double price = 19.99;
        char grade = 'A';
        boolean isJavaFun = true;

        // 声明变量后赋值
        int age;
        age = 25;

        // 输出变量的值
        System.out.println("Number: " + number);
        System.out.println("Price: " + price);
        System.out.println("Grade: " + grade);
        System.out.println("Is Java Fun? " + isJavaFun);
        System.out.println("Age: " + age);
    }
}

输出:

Number: 10
Price: 19.99
Grade: A
Is Java Fun? true
Age: 25
2.3.4 常量

使用final关键字可以声明常量,一旦赋值后无法修改。

public class ConstantExample {
    public static void main(String[] args) {
        final double PI = 3.14159;
        // PI = 3.14; // 编译错误:cannot assign a value to final variable PI
        System.out.println("PI: " + PI);
    }
}
2.4 运算符

Java提供了丰富的运算符,用于执行各种操作。主要包括以下几类:

2.4.1 算术运算符

用于执行基本的数学运算。

运算符描述示例结果
+加法5 + 38
-减法5 - 32
*乘法5 * 315
/除法6 / 32
%取模(取余)5 % 21

示例:

public class ArithmeticOperatorExample {
    public static void main(String[] args) {
        int a = 10, b = 3;

        System.out.println("a + b = " + (a + b)); // 13
        System.out.println("a - b = " + (a - b)); // 7
        System.out.println("a * b = " + (a * b)); // 30
        System.out.println("a / b = " + (a / b)); // 3
        System.out.println("a % b = " + (a % b)); // 1
    }
}
2.4.2 关系运算符

用于比较两个变量或值。

运算符描述示例结果
==等于5 == 5true
!=不等于5 != 3true
>大于5 > 3true
<小于5 < 3false
>=大于等于5 >= 5true
<=小于等于3 <= 5true

示例:

public class RelationalOperatorExample {
    public static void main(String[] args) {
        int a = 10, b = 20;

        System.out.println("a == b: " + (a == b)); // false
        System.out.println("a != b: " + (a != b)); // true
        System.out.println("a > b: " + (a > b));   // false
        System.out.println("a < b: " + (a < b));   // true
        System.out.println("a >= 10: " + (a >= 10)); // true
        System.out.println("b <= 20: " + (b <= 20)); // true
    }
}
2.4.3 逻辑运算符

用于组合多个条件。

运算符描述示例结果
&&逻辑与(AND)true && falsefalse
``逻辑或(OR)
!逻辑非(NOT)!truefalse
^逻辑异或(XOR)true ^ falsetrue
&位与(按位与,用于布尔也可以)true & falsefalse
``位或(按位或,用于布尔也可以)`true

示例:

public class LogicalOperatorExample {
    public static void main(String[] args) {
        boolean x = true;
        boolean y = false;

        System.out.println("x && y: " + (x && y)); // false
        System.out.println("x || y: " + (x || y)); // true
        System.out.println("!x: " + (!x));         // false
        System.out.println("x ^ y: " + (x ^ y));   // true
        System.out.println("x & y: " + (x & y));   // false
        System.out.println("x | y: " + (x | y));   // true
    }
}
2.4.4 赋值运算符

用于给变量赋值。

运算符描述示例
=简单赋值x = 10
+=加后赋值x += 5 等同于 x = x + 5
-=减后赋值x -= 5 等同于 x = x - 5
*=乘后赋值x *= 5 等同于 x = x * 5
/=除后赋值x /= 5 等同于 x = x / 5
%=取模后赋值x %= 5 等同于 x = x % 5

示例:

public class AssignmentOperatorExample {
    public static void main(String[] args) {
        int x = 10;

        x += 5; // x = x + 5
        System.out.println("x += 5: " + x); // 15

        x -= 3; // x = x - 3
        System.out.println("x -= 3: " + x); // 12

        x *= 2; // x = x * 2
        System.out.println("x *= 2: " + x); // 24

        x /= 4; // x = x / 4
        System.out.println("x /= 4: " + x); // 6

        x %= 5; // x = x % 5
        System.out.println("x %= 5: " + x); // 1
    }
}
2.4.5 位运算符

用于对整数的位进行操作。

运算符描述示例
<<左移位x << 2
>>带符号右移位x >> 2
>>>无符号右移位x >>> 2
&按位与x & y
``按位或
^按位异或x ^ y
~按位取反~x

示例:

public class BitwiseOperatorExample {
    public static void main(String[] args) {
        int a = 5;  // 二进制: 0101
        int b = 3;  // 二进制: 0011

        System.out.println("a & b: " + (a & b));   // 1 (0001)
        System.out.println("a | b: " + (a | b));   // 7 (0111)
        System.out.println("a ^ b: " + (a ^ b));   // 6 (0110)
        System.out.println("~a: " + (~a));         // -6 (补码表示)
        System.out.println("a << 1: " + (a << 1)); // 10 (1010)
        System.out.println("a >> 1: " + (a >> 1)); // 2 (0010)
        System.out.println("a >>> 1: " + (a >>> 1)); // 2 (0010)
    }
}
2.5 控制结构

控制结构用于控制程序的执行流程,包括条件判断和循环结构。

2.5.1 条件语句
2.5.1.1 if 语句

if语句用于根据条件执行不同的代码块。

public class IfExample {
    public static void main(String[] args) {
        int num = 10;

        if (num > 0) {
            System.out.println("正数");
        } else if (num < 0) {
            System.out.println("负数");
        } else {
            System.out.println("零");
        }
    }
}

输出:

正数
2.5.1.2 switch 语句

switch语句用于基于变量的不同值执行不同的代码块。

public class SwitchExample {
    public static void main(String[] args) {
        int day = 3;
        String dayName;

        switch (day) {
            case 1:
                dayName = "星期一";
                break;
            case 2:
                dayName = "星期二";
                break;
            case 3:
                dayName = "星期三";
                break;
            case 4:
                dayName = "星期四";
                break;
            case 5:
                dayName = "星期五";
                break;
            case 6:
                dayName = "星期六";
                break;
            case 7:
                dayName = "星期日";
                break;
            default:
                dayName = "无效的日期";
        }

        System.out.println("今天是: " + dayName);
    }
}

输出:

今天是: 星期三
2.5.2 循环语句

循环语句用于重复执行代码块,直到条件不满足为止。

2.5.2.1 for 循环

for循环用于已知循环次数的场景。

public class ForLoopExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            System.out.println("循环次数: " + i);
        }
    }
}

输出:

循环次数: 1
循环次数: 2
循环次数: 3
循环次数: 4
循环次数: 5
2.5.2.2 while 循环

while循环在满足条件时持续执行,适用于循环次数未知的场景。

public class WhileLoopExample {
    public static void main(String[] args) {
        int i = 1;
        while (i <= 5) {
            System.out.println("循环次数: " + i);
            i++;
        }
    }
}

输出:

循环次数: 1
循环次数: 2
循环次数: 3
循环次数: 4
循环次数: 5
2.5.2.3 do-while 循环

do-while循环至少执行一次,然后根据条件决定是否继续。

public class DoWhileLoopExample {
    public static void main(String[] args) {
        int i = 1;
        do {
            System.out.println("循环次数: " + i);
            i++;
        } while (i <= 5);
    }
}

输出:

循环次数: 1
循环次数: 2
循环次数: 3
循环次数: 4
循环次数: 5
2.5.3 跳转语句

跳转语句用于改变程序的执行流程。

  • break:终止当前循环或switch语句。
  • continue:跳过当前循环的剩余部分,进入下一次循环。

示例:使用 breakcontinue

public class JumpStatementExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            if (i == 3) {
                break; // 当i为3时,终止循环
            }
            System.out.println("i = " + i);
        }

        System.out.println("-------------");

        for (int i = 1; i <= 5; i++) {
            if (i == 3) {
                continue; // 当i为3时,跳过本次循环
            }
            System.out.println("i = " + i);
        }
    }
}

输出:

i = 1
i = 2
-------------
i = 1
i = 2
i = 4
i = 5
2.6 数组

数组是用于存储固定大小的同类型元素的容器。Java中的数组是对象,具有固定的长度,并且可以存储基本数据类型或引用数据类型的元素。

2.6.1 一维数组

声明与初始化:

public class SingleDimensionalArrayExample {
    public static void main(String[] args) {
        // 声明并初始化数组
        int[] numbers = {1, 2, 3, 4, 5};

        // 访问数组元素
        System.out.println("第一个元素: " + numbers[0]); // 输出 1

        // 遍历数组
        System.out.println("数组元素:");
        for (int i = 0; i < numbers.length; i++) {
            System.out.println(numbers[i]);
        }

        // 使用增强型for循环
        System.out.println("使用增强型for循环:");
        for (int num : numbers) {
            System.out.println(num);
        }
    }
}

输出:

第一个元素: 1
数组元素:
1
2
3
4
5
使用增强型for循环:
1
2
3
4
5
2.6.2 多维数组

Java支持多维数组,最常用的是二维数组。

示例:二维数组

public class MultiDimensionalArrayExample {
    public static void main(String[] args) {
        // 声明并初始化二维数组
        int[][] matrix = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };

        // 访问二维数组元素
        System.out.println("matrix[1][2] = " + matrix[1][2]); // 输出 6

        // 遍历二维数组
        System.out.println("二维数组元素:");
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println();
        }

        // 使用增强型for循环
        System.out.println("使用增强型for循环遍历二维数组:");
        for (int[] row : matrix) {
            for (int num : row) {
                System.out.print(num + " ");
            }
            System.out.println();
        }
    }
}

输出:

matrix[1][2] = 6
二维数组元素:
1 2 3 
4 5 6 
7 8 9 
使用增强型for循环遍历二维数组:
1 2 3 
4 5 6 
7 8 9 
2.6.3 动态数组(ArrayList)

虽然Java中的数组长度固定,但Java提供了ArrayList类,允许动态调整数组大小。

示例:使用ArrayList

import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        // 创建一个ArrayList
        ArrayList<String> fruits = new ArrayList<>();

        // 添加元素
        fruits.add("苹果");
        fruits.add("香蕉");
        fruits.add("橙子");

        // 访问元素
        System.out.println("第一个水果: " + fruits.get(0)); // 输出 苹果

        // 遍历ArrayList
        System.out.println("所有水果:");
        for (String fruit : fruits) {
            System.out.println(fruit);
        }

        // 修改元素
        fruits.set(1, "草莓");
        System.out.println("修改后的水果列表:");
        for (String fruit : fruits) {
            System.out.println(fruit);
        }

        // 删除元素
        fruits.remove(0);
        System.out.println("删除后的水果列表:");
        for (String fruit : fruits) {
            System.out.println(fruit);
        }

        // 获取ArrayList的大小
        System.out.println("ArrayList的大小: " + fruits.size());
    }
}

输出:

第一个水果: 苹果
所有水果:
苹果
香蕉
橙子
修改后的水果列表:
苹果
草莓
橙子
删除后的水果列表:
草莓
橙子
ArrayList的大小: 2
2.7 方法

方法是Java程序中的功能模块,用于执行特定的任务。方法可以接受参数,并且可以返回一个值。

2.7.1 方法的声明与调用

示例:定义并调用方法

public class MethodExample {
    // 定义一个无返回值的方法
    public static void greet() {
        System.out.println("Hello, World!");
    }

    // 定义一个带参数的方法
    public static void greetWithName(String name) {
        System.out.println("Hello, " + name + "!");
    }

    // 定义一个有返回值的方法
    public static int add(int a, int b) {
        return a + b;
    }

    public static void main(String[] args) {
        // 调用无返回值的方法
        greet(); // 输出: Hello, World!

        // 调用带参数的方法
        greetWithName("Alice"); // 输出: Hello, Alice!

        // 调用有返回值的方法
        int sum = add(5, 7);
        System.out.println("5 + 7 = " + sum); // 输出: 5 + 7 = 12
    }
}
2.7.2 方法重载(Method Overloading)

方法重载是指在同一个类中,可以定义多个方法名相同但参数列表不同的方法。

示例:方法重载

public class OverloadedMethods {
    // 重载方法:无参数
    public void display() {
        System.out.println("Display without parameters");
    }

    // 重载方法:一个参数
    public void display(String message) {
        System.out.println("Display with message: " + message);
    }

    // 重载方法:两个参数
    public void display(String message, int number) {
        System.out.println("Display with message: " + message + " and number: " + number);
    }

    public static void main(String[] args) {
        OverloadedMethods om = new OverloadedMethods();

        om.display(); // 输出: Display without parameters
        om.display("Hello"); // 输出: Display with message: Hello
        om.display("Number", 10); // 输出: Display with message: Number and number: 10
    }
}

输出:

Display without parameters
Display with message: Hello
Display with message: Number and number: 10
2.8 面向对象编程(OOP)基础

在第一篇中,我们介绍了面向对象编程(OOP)的基本概念。本节将进一步探讨类与对象的细节,包括构造方法、this关键字、static关键字、访问修饰符等。

2.8.1 构造方法(Constructors)

构造方法是用于创建对象时初始化对象的特殊方法。其名称与类名相同,并且没有返回类型。

示例:定义构造方法

class Car {
    String model;
    int year;

    // 无参数的构造方法
    public Car() {
        this.model = "未知型号";
        this.year = 2020;
    }

    // 带参数的构造方法
    public Car(String model, int year) {
        this.model = model;
        this.year = year;
    }

    public void displayInfo() {
        System.out.println("型号: " + model + ", 年份: " + year);
    }
}

public class ConstructorExample {
    public static void main(String[] args) {
        // 使用无参数构造方法创建对象
        Car car1 = new Car();
        car1.displayInfo(); // 输出: 型号: 未知型号, 年份: 2020

        // 使用带参数构造方法创建对象
        Car car2 = new Car("Toyota", 2021);
        car2.displayInfo(); // 输出: 型号: Toyota, 年份: 2021
    }
}

输出:

型号: 未知型号, 年份: 2020
型号: Toyota, 年份: 2021
2.8.2 this关键字

this关键字指向当前对象的引用,用于区分类的属性与方法的参数或局部变量。

示例:使用this关键字

class Person {
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name; // 区分属性和参数
        this.age = age;
    }

    public void displayInfo() {
        System.out.println("姓名: " + this.name + ", 年龄: " + this.age);
    }
}

public class ThisKeywordExample {
    public static void main(String[] args) {
        Person person = new Person("Alice", 30);
        person.displayInfo(); // 输出: 姓名: Alice, 年龄: 30
    }
}
2.8.3 static关键字

static关键字用于声明类级别的成员,即不依赖于对象实例。静态成员可以通过类名直接访问,无需创建对象。

示例:使用static关键字

class MathUtils {
    // 静态变量
    public static final double PI = 3.14159;

    // 静态方法
    public static int square(int num) {
        return num * num;
    }
}

public class StaticKeywordExample {
    public static void main(String[] args) {
        // 访问静态变量
        System.out.println("PI: " + MathUtils.PI); // 输出: PI: 3.14159

        // 调用静态方法
        int result = MathUtils.square(5);
        System.out.println("5的平方: " + result); // 输出: 5的平方: 25
    }
}
2.8.4 访问修饰符

访问修饰符用于控制类、方法和变量的可见性。Java主要有四种访问修饰符:

  1. public:公开的,任何其他类都可以访问。
  2. protected:受保护的,同一包内的类或子类可以访问。
  3. 默认(无修饰符):包私有,同一包内的类可以访问。
  4. private:私有的,仅在定义它的类内部可以访问。

示例:使用访问修饰符

class AccessModifierExample {
    public int publicVar = 1;
    protected int protectedVar = 2;
    int defaultVar = 3; // 默认访问级别
    private int privateVar = 4;

    public void displayVariables() {
        System.out.println("publicVar: " + publicVar);
        System.out.println("protectedVar: " + protectedVar);
        System.out.println("defaultVar: " + defaultVar);
        System.out.println("privateVar: " + privateVar);
    }
}

public class AccessModifierTest {
    public static void main(String[] args) {
        AccessModifierExample ame = new AccessModifierExample();
        System.out.println("publicVar: " + ame.publicVar);         // 可访问
        System.out.println("protectedVar: " + ame.protectedVar);   // 可访问
        System.out.println("defaultVar: " + ame.defaultVar);       // 可访问
        // System.out.println("privateVar: " + ame.privateVar);    // 编译错误:privateVar不可访问

        ame.displayVariables();
    }
}

输出:

publicVar: 1
protectedVar: 2
defaultVar: 3
publicVar: 1
protectedVar: 2
defaultVar: 3
privateVar: 4
2.9 异常处理

异常处理是Java程序中处理运行时错误的重要机制。通过使用try-catch块,程序可以在发生异常时捕获并处理错误,避免程序崩溃。

2.9.1 异常的分类

Java的异常分为两大类:

  1. 检查型异常(Checked Exceptions):编译时必须处理的异常,如IOExceptionSQLException
  2. 运行型异常(Unchecked Exceptions):运行时异常,可以选择处理,如NullPointerExceptionArithmeticException
2.9.2 try-catch语句

示例:处理除零异常

public class ExceptionHandlingExample {
    public static void main(String[] args) {
        int a = 10;
        int b = 0;

        try {
            int result = a / b; // 可能抛出ArithmeticException
            System.out.println("结果: " + result);
        } catch (ArithmeticException e) {
            System.out.println("错误: 除以零是不允许的。");
        }

        System.out.println("程序继续运行...");
    }
}

输出:

错误: 除以零是不允许的。
程序继续运行...
2.9.3 finally

finally块用于在try-catch语句后执行无论是否发生异常的代码,常用于资源的释放。

示例:使用finally

public class FinallyExample {
    public static void main(String[] args) {
        try {
            System.out.println("尝试执行代码...");
            int result = 10 / 0; // 抛出ArithmeticException
            System.out.println("结果: " + result);
        } catch (ArithmeticException e) {
            System.out.println("捕获到异常: " + e.getMessage());
        } finally {
            System.out.println("这是finally块,无论异常是否发生都会执行。");
        }
    }
}

输出:

尝试执行代码...
捕获到异常: / by zero
这是finally块,无论异常是否发生都会执行。
2.9.4 抛出异常

使用throw关键字手动抛出异常,或使用throws关键字声明方法可能抛出的异常。

示例:抛出自定义异常

class InvalidAgeException extends Exception {
    public InvalidAgeException(String message) {
        super(message);
    }
}

public class ThrowExample {
    public static void checkAge(int age) throws InvalidAgeException {
        if (age < 18) {
            throw new InvalidAgeException("年龄必须至少18岁。");
        }
        System.out.println("年龄合法。");
    }

    public static void main(String[] args) {
        try {
            checkAge(16);
        } catch (InvalidAgeException e) {
            System.out.println("异常: " + e.getMessage());
        }

        try {
            checkAge(20);
        } catch (InvalidAgeException e) {
            System.out.println("异常: " + e.getMessage());
        }
    }
}

输出:

异常: 年龄必须至少18岁。
年龄合法。
2.10 注释

注释用于在代码中添加说明性文字,不会被编译器执行。Java支持三种注释类型:

  1. 单行注释:以//开头,用于注释单行代码。
  2. 多行注释:以/*开始,*/结束,用于注释多行代码。
  3. 文档注释:以/**开始,*/结束,用于生成Java文档。

示例:各种注释

public class CommentExample {
    public static void main(String[] args) {
        // 这是一个单行注释

        /*
         * 这是一个多行注释
         * 可以用于注释多行代码或文本
         */

        /**
         * 这是一个文档注释
         * 可以用于生成API文档
         */
        System.out.println("Hello, World!"); // 输出欢迎信息
    }
}
2.11 包与导入

包用于组织类和接口,避免命名冲突。import语句用于在类中引用其他包中的类和接口。

2.11.1 创建与使用包

示例:创建包

  1. 创建包:在项目中创建一个名为com.example.utils的包,并在其中创建一个工具类MathUtils.
// 文件: com/example/utils/MathUtils.java
package com.example.utils;

public class MathUtils {
    // 静态方法:计算两个数的最大值
    public static int max(int a, int b) {
        return (a > b) ? a : b;
    }

    // 静态方法:计算两个数的最小值
    public static int min(int a, int b) {
        return (a < b) ? a : b;
    }
}
  1. 使用包中的类
// 文件: com/example/Main.java
package com.example;

import com.example.utils.MathUtils; // 导入MathUtils类

public class Main {
    public static void main(String[] args) {
        int a = 10, b = 20;

        int maximum = MathUtils.max(a, b);
        int minimum = MathUtils.min(a, b);

        System.out.println("最大值: " + maximum); // 输出: 最大值: 20
        System.out.println("最小值: " + minimum); // 输出: 最小值: 10
    }
}
2.11.2 import语句

import语句用于引用其他包中的类或接口。可以使用特定类import com.example.utils.MathUtils;,也可以使用通配符import com.example.utils.*;导入包中所有的类。

注意:Java的import语句并不会影响代码执行,只是为了方便类的引用。

2.12 常用编程规范

良好的编程规范有助于提高代码的可读性和可维护性。以下是一些常见的Java编程规范:

  1. 命名规范

    • 类名:使用大驼峰命名法(每个单词的首字母大写),例如MyClass
    • 方法名与变量名:使用小驼峰命名法(首字母小写,后续单词首字母大写),例如calculateSumtotalAmount
    • 常量名:使用全大写字母,单词间用下划线分隔,例如MAX_VALUE
  2. 缩进与格式

    • 使用一致的缩进风格(通常是4个空格)。
    • 代码块使用大括号{}包裹,即使是单行代码。
  3. 注释

    • 适当添加注释,解释复杂的逻辑或重要的代码段。
    • 使用文档注释/** */为公共方法和类编写说明。
  4. 代码结构

    • 类成员的顺序通常为:常量、变量、构造方法、方法。
    • 每个类单独一个文件,文件名与类名相同。
  5. 异常处理

    • 合理使用异常处理,避免捕获过于宽泛的异常。
    • 提供有意义的异常消息,方便调试。
  6. 避免硬编码

    • 将常用的值定义为常量,避免在代码中直接使用魔法数字或字符串。

示例:应用编程规范

package com.example.utils;

/**
 * MathUtils 提供常用的数学运算方法。
 */
public class MathUtils {
    // 常量
    public static final double PI = 3.14159;

    /**
     * 计算两个整数的最大值。
     *
     * @param a 第一个整数
     * @param b 第二个整数
     * @return 两个整数中的最大值
     */
    public static int max(int a, int b) {
        return (a > b) ? a : b;
    }

    /**
     * 计算两个整数的最小值。
     *
     * @param a 第一个整数
     * @param b 第二个整数
     * @return 两个整数中的最小值
     */
    public static int min(int a, int b) {
        return (a < b) ? a : b;
    }
}
package com.example;

import com.example.utils.MathUtils;

/**
 * Main 类是程序的入口点。
 */
public class Main {
    /**
     * 程序的主方法。
     *
     * @param args 命令行参数
     */
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        int maximum = MathUtils.max(a, b);
        int minimum = MathUtils.min(a, b);

        System.out.println("最大值: " + maximum);
        System.out.println("最小值: " + minimum);
    }
}
2.13 总结

本篇文章深入介绍了Java的语法基础,包括数据类型与变量、运算符、控制结构、数组、方法、面向对象编程的进一步内容、异常处理以及常用的编程规范。理解并掌握这些基础知识是编写高效、可维护Java程序的前提。接下来的篇章将进一步探讨更高级的Java特性,如面向对象编程的高级主题、集合框架、多线程编程、I/O操作、网络编程等内容。

通过不断练习和实践,您将逐步提升Java编程技能,能够应对更复杂的开发任务。


http://www.kler.cn/a/538945.html

相关文章:

  • DeepSeek从入门到精通:全面掌握AI大模型的核心能力
  • Java 中 ArrayList 和 LinkedList 有什么区别?
  • CF998A Balloons​ 构造 ​
  • Spring Boot统一异常拦截实践指南
  • Java ArrayList 扩容机制详解
  • trimesh 加载obj mesh处理
  • Python Pandas(6):Pandas JSON
  • 前端VSCode常用插件
  • NIO——网络编程
  • 什么是 HTTP/2 和 HTTP/3?
  • 聚焦 MySQL 优化器:探究 Adaptive Hash Index 与 Query Cache 那些事儿
  • Android开发获取缓存,删除缓存
  • 2月9日QT
  • 车载工具简介 --- VH6501基本配置guideline
  • 知识图谱智能应用系统:数据分析与挖掘技术文档
  • 每日一题洛谷P5733 【深基6.例1】自动修正c++
  • AI 网络安全处理 开源 人工智能+网络安全
  • 深入探究 Go 语言中的 Fx 框架:依赖注入的强大工具
  • UMLS初探
  • 如何修改IDEA的maven远程仓库地址
  • monitorenter /moniterexit
  • Oracle数据连接 Dblink
  • 四次挥手详解
  • PID 算法简介(C语言)
  • Ai无限免费生成高质量ppt教程(deepseek+kimi)
  • 【数论】—— 欧拉函数