何为“类”?(Java基础语法) - 教程

类 (Class)

 OS:初学时,我们知道要把代码写成一步步的指令。但很快就会发现,很多指令需要被反复执行,非常繁琐。这时,“类”就像游戏里的“宏功能”,能把一套复杂的操作打包成一个“大招”,大大提升了我们的开发效率和代码质量。

  • 官方术语:类是一个模板,它描述了一类对象的共同属性 (attributes) 和行为 (behaviors)

  • 个人理解 :
    类,就是把解决某个问题的一套“方法”和所需“变量”,封装成一个“类”,以后直接用这个“类”就行,不用再一步步重复操作。

  • 作用: 类的主要作用就是作为创建对象的模板。我们通过设计的类,来确保所有根据它创建出的对象,都是行为正确、数据安全的。


举个例子:从“搓招”到“一键发招”

在玩一个动作游戏时,一个新手玩家需要按顺序按 A(轻拳)、A(轻拳)、→(前)、B(重拳)才能打出一个简单的“连招”。这个过程不仅慢,还容易按错。

“类”就相当于一个“宏功能”或“自定义技能”。

我们可以设计一个,它内部封装好了这一整套固定的按键顺序和逻辑。

以后,我们只需要创建一个这个技能的对象,然后调用它一个方法,角色就能瞬间、准确地打出这套连招。

  • 类 -> (创建) -> 对象 -> (调用) -> 方法


一、 如何创建(定义)一个类?

创建类,就是编写它的“设计图”。这遵循一个固定的语法结构。

基本语法

codeJava

[修饰符] class 类名 {
    // 1. 成员变量 (属性)
    //    用来描述这类对象的状态
    // 2. 构造方法 (Constructor)
    //    用来初始化新创建的对象
    // 3. 成员方法 (方法)
    //    用来描述这类对象的行为
}
组成部分详解
  1. [修饰符] (Modifier)

    • 最常用的就是 public。public class MyClass 意味着这个类可以被项目中的任何其他代码访问。

    • 如果不写(class MyClass),则为默认的包访问权限。

    • 对于初学者,一律使用 public 即可。

  2. class 关键字

    • 这是Java的关键字,固定写法,告诉编译器你正在定义一个类。

  3. 类名 (Class Name)

    • 你为这个类起的名字。

    • 命名规范: 必须遵循大驼峰命名法 (UpperCamelCase),即每个单词的首字母都大写,例如 Student, Car, ArrayList。

    • 文件名必须和 public 类的类名完全一致(包括大小写),例如 Student 类必须保存在 Student.java 文件中。

  4. { ... } (类体)

    • 大括号内是类的所有内容,包括下面要讲的三个核心组成部分。


二、 构造方法 (Constructor) - 类的“建造者”

构造方法是一个非常特殊的方法,它在你使用 new 关键字创建对象时被自动调用。

构造方法的核心规则
  1. 方法名必须与类名完全相同。这是辨别它的铁律。

  2. 没有返回值类型。连 void 都不需要写。

  3. 主要作用是初始化成员变量,为新生的对象赋予初始状态。

构造方法的组成

[修饰符] 构造方法名([参数列表]) { // 方法体 }

  • 修饰符: 通常是 public,与类的修饰符保持一致。

  • 方法名: 必须是类名。

  • 参数列表: 括号内的部分,可以为空,也可以包含一个或多个参数。

  • 方法体: {} 内的代码,用于执行初始化逻辑。


三、 无参构造方法 vs. 有参构造方法

一个类可以提供多种不同的“建造方案”,这就是通过构造方法重载 (Overloading) 实现的。最常见的就是提供“无参”和“有参”两种版本。

1. 无参构造方法 (No-Argument Constructor)
  • 写法: 构造方法的参数列表是空的 ()。

  • 作用: 提供一种快速、便捷的创建对象的方式,通常会为对象的属性赋予一个合理的默认值

  • 示例:

    codeJava
    public class Student {
        private String name;
        private int age;
        // 这就是无参构造方法
        public Student() {
            System.out.println("正在调用无参构造方法...");
            this.name = "匿名"; // 赋予默认名字
            this.age = 18;     // 赋予默认年龄
        }
    }
  • 如何调用:

    codeJava
    // new 后面跟的括号是空的,就会自动匹配并调用无参构造方法
    Student stu1 = new Student();
    // stu1 对象一生下来,name就是"匿名",age就是18
  • ⭐ 特殊规则:默认构造方法

    • 如果你一个构造方法都不写,Java编译器会自动为你提供一个看不见的、public的、方法体为空的无参构造方法。

      codeJava
      // 你只写了这样
      public class Dog {}
      // 编译器会自动帮你变成这样
      public class Dog {
          public Dog() {} // 自动添加
      }
      // 所以你依然可以这样创建对象:
      Dog myDog = new Dog();
    • 重要一旦你手动写了任何一个构造方法(无论是有参还是无参),编译器就“罢工”了,不再提供任何默认构造方法。

2. 有参构造方法 (Parameterized Constructor)
  • 写法: 构造方法的参数列表 () 中包含一个或多个参数。

  • 作用: 提供一种定制化的创建对象的方式,允许在 new 的那一刻,就通过参数将外部数据传递进来,对新对象进行精确的初始化。

  • 示例:

    codeJava
    public class Student {
        private String name;
        private int age;
        // 无参构造...
        // 这就是有参构造方法
        public Student(String name, int age) {
            System.out.println("正在调用有参构造方法...");
            // 使用 this 关键字,将参数的值赋给成员变量
            this.name = name;
            this.age = age;
        }
    }
  • 如何调用:

    codeJava
    // new 后面括号里的参数,其类型、个数、顺序
    // 必须和某个有参构造方法的参数列表完全匹配
    Student stu2 = new Student("张三", 20);
    // stu2 对象一生下来,name就是"张三",age就是20

四、 完整示例与总结

codeJava

// Student.java
public class Student {
    // 1. 成员变量 (属性)
    private String name;
    private int age;
    // 2. 构造方法 (多种创建方案)
    // 无参
    public Student() {
        this.name = "新生";
        this.age = 18;
    }
    // 有参
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    // 3. 成员方法 (行为)
    public void introduce() {
        System.out.println("大家好,我叫 " + this.name + ",今年 " + this.age + " 岁。");
    }
}
// Test.java (使用Student类)
public class Test {
    public static void main(String[] args) {
        // 调用无参构造,创建默认学生
        Student defaultStudent = new Student();
        defaultStudent.introduce(); // 输出: 大家好,我叫 新生,今年 18 岁。
        // 调用有参构造,创建定制学生
        Student customStudent = new Student("李四", 22);
        customStudent.introduce(); // 输出: 大家好,我叫 李四,今年 22 岁。
    }
}

总结:

  • 创建类就是定义其框架 (public class ...)、属性 (成员变量) 和方法 (成员方法)。

  • 构造方法是类中一个特殊部分,负责初始化 new 出来的新对象。

  • 无参构造提供默认创建方式,有参构造提供定制化创建方式。

  • 一个类可以有多个构造方法(重载),new 时传入的参数列表决定了调用哪一个。

posted @ 2025-10-03 22:56  wzzkaifa  阅读(16)  评论(0)    收藏  举报