哪种情况用哪种括号?

{} 大括号:用来圈定一个范围或一个代码块。

[] 中括号:专门用来操作数组 (Array)。

() 小括号:用于调用和定义。


1. { } 大括号  - 代码的身体和边界

它的核心作用是定义一个范围 (Scope) 或一个代码块 (Block)。所有写在 {} 里面的东西都属于同一个整体。

在以下情况必须使用 {}:

  • 定义类的身体:

    public class MyClass {
        // 类的所有代码(成员变量、方法)都在这里
    }
  • 定义方法的身体:

    public void myMethod() {
        // 方法要执行的所有语句都在这里
        System.out.println("Hello");
    }
  • 定义 if-else, for, while, switch 等流程控制语句的主体:

    if (condition) {
        // 条件为真时,执行这里的所有代码
    } else {
        // 条件为假时,执行这里的所有代码
    }
    
    for (int i = 0; i < 5; i++) {
        // 循环体,这里面的代码会被重复执行
    }
  • 初始化数组时直接赋值:

    int[] numbers = {1, 2, 3, 4, 5}; // 注意:这里是和[]配合使用
  • 定义静态代码块或构造代码块:

    class Test {
        static {
            // 静态代码块,类加载时执行一次
        }
        {
            // 构造代码块,每次创建对象时执行
        }
    }

2. [ ] 中括号 - 数组的专属标志

它的作用非常专一,几乎所有与数组 (Array) 相关的操作都离不开它。

在以下情况必须使用 []:

  • 声明数组类型:

    int[] scores; // 声明一个int类型的数组,[]跟在类型后面
    String[] names; // 声明一个String类型的数组
  • 创建数组实例时指定长度:

    scores = new int[10]; // 创建一个可以存放10个int的数组
    names = new String[5];
  • 访问/获取/修改数组中的元素: 通过索引 (index) 来操作。

    scores[0] = 99; // 修改第一个元素(索引从0开始)
    System.out.println(names[2]); // 访问第三个元素

3. ( ) 小括号  - 命令与参数的容器

它的核心作用是传递信息和确定优先级。

在以下情况必须使用 ():

  • 定义方法时声明参数列表:

    // 定义一个需要两个参数的方法
    public void calculateSum(int a, String b) {
        // ...
    }
    // 定义一个不需要参数的方法,括号也不能省略
    public void printHello() {
        // ...
    }
  • 调用方法时传入实际参数:

    myObject.calculateSum(10, "message"); // 调用方法并传入参数
    myObject.printHello(); // 调用无参方法
  • 创建对象时调用构造函数:

    String s = new String("Hello");
  • if, while, for, switch 语句中包裹判断条件:

    if (x > 10) { ... }
    while (isRunning) { ... }
    for (int i = 0; i < 10; i++) { ... }
  • 控制运算的优先级: 和数学里一样。

    int result = (5 + 3) * 2; // 结果是16,而不是 5 + 6 = 11
  • 强制类型转换:

    double d = 9.78;
    int i = (int) d; // 将double强制转换为int,值为9

总结表格

符号核心用途问自己例子
{ }代码块/范围我在定义一个“身体”或“区域”吗?

class MyClass { ... } 

void myMethod() { ... } 

if (true) { ... }

[ ]数组操作我在操作“数组”吗?

int[] arr;

arr = new int[5]; 

 arr[0] = 100;

( )方法调用/参数/条件我在“调用/定义方法”或“设定条件”吗?

myMethod(arg1, arg2);

if (x > y)

int r = (a + b) * c;

更多推荐