Java 对象和类

在 Java 中,对象和类是面向对象编程(OOP)的核心概念。理解它们是学习 Java 编程的关键。


目录

  1. 类(Class)
  2. 对象(Object)
  3. 构造方法(Constructor)
  4. 访问控制符(Access Modifiers)
  5. this 关键字
  6. 静态成员(Static Members)
  7. 参考资料
  8. 出站链接

1. 类(Class)

类是对象的模板或蓝图。它定义了对象的属性(字段)和行为(方法)。类描述了对象的结构和功能,而对象是类的实例。类本质上是一种抽象数据类型,包含了构造对象所需的所有信息。

类的基本语法:

public class ClassName {
    // 属性(字段)
    int age;
    String name;

    // 方法(行为)
    public void displayInfo() {
        System.out.println("Name: " + name + ", Age: " + age);
    }
}

  • 字段(成员变量):描述类的状态或特征。
  • 方法(成员方法):描述类的行为或功能。

2. 对象(Object)

对象是类的实例,代表类的具体事物。对象通过 new 关键字创建。每个对象都有自己的属性值和方法,可以通过对象来访问类中的属性和行为。

创建对象的基本语法:

ClassName objectName = new ClassName();

示例:

public class Person {
    // 属性
    String name;
    int age;

    // 方法
    public void displayInfo() {
        System.out.println("Name: " + name + ", Age: " + age);
    }

    public static void main(String[] args) {
        // 创建 Person 类的对象
        Person person1 = new Person();
        
        // 赋值
        person1.name = "John";
        person1.age = 25;
        
        // 调用方法
        person1.displayInfo();  // 输出:Name: John, Age: 25
    }
}


3. 构造方法(Constructor)

构造方法是用来初始化新创建的对象的特殊方法。当使用 new 关键字创建对象时,构造方法会被自动调用。构造方法的名字必须与类名相同,并且没有返回类型。

构造方法的语法:

public ClassName() {
    // 初始化对象的操作
}

示例:

public class Car {
    String brand;
    int year;

    // 构造方法
    public Car(String brand, int year) {
        this.brand = brand;
        this.year = year;
    }

    public void displayInfo() {
        System.out.println("Brand: " + brand + ", Year: " + year);
    }

    public static void main(String[] args) {
        // 创建对象并调用构造方法
        Car myCar = new Car("Toyota", 2020);
        myCar.displayInfo();  // 输出:Brand: Toyota, Year: 2020
    }
}


4. 访问控制符(Access Modifiers)

Java 提供了访问控制符来控制类、方法、字段的访问权限。常见的访问控制符有:

  • public:类、方法或字段可以被任何其他类访问。
  • private:类、方法或字段只能在当前类内部访问。
  • protected:类、方法或字段可以在当前类、子类以及同一包内的类中访问。
  • default(包级访问):如果没有指定访问控制符,默认情况下类、方法或字段只能在同一包内访问。

示例:

public class Person {
    private String name;  // 私有属性
    private int age;

    // 公有方法
    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void displayInfo() {
        System.out.println("Name: " + name + ", Age: " + age);
    }

    public static void main(String[] args) {
        Person person = new Person();
        person.setName("Alice");
        person.setAge(30);
        person.displayInfo();  // 输出:Name: Alice, Age: 30
    }
}


5. this 关键字

this 关键字用于指代当前对象的实例。它常用于区分实例变量和局部变量,尤其是在构造方法或方法中,避免变量名冲突。

示例:

public class Student {
    String name;
    int age;

    public Student(String name, int age) {
        this.name = name;  // 使用 this 关键字区分实例变量和参数
        this.age = age;
    }

    public void displayInfo() {
        System.out.println("Name: " + name + ", Age: " + age);
    }

    public static void main(String[] args) {
        Student student = new Student("Tom", 20);
        student.displayInfo();  // 输出:Name: Tom, Age: 20
    }
}


6. 静态成员(Static Members)

静态成员是类级别的成员,它们属于类本身而不是对象。静态方法和静态字段可以通过类名直接访问,无需创建对象。

示例:

public class Counter {
    static int count = 0;  // 静态字段

    public Counter() {
        count++;  // 每次创建对象时,count 增加
    }

    public static void displayCount() {
        System.out.println("Count: " + count);
    }

    public static void main(String[] args) {
        new Counter();  // 创建对象
        new Counter();
        Counter.displayCount();  // 输出:Count: 2
    }
}


参考资料


出站链接