跳转至

面向对象编程基础:类与对象

概述

在Java编程语言中,面向对象编程(OOP)是一种编程范式,它使用“对象”来设计应用程序和软件。对象是类的实例,类是对象的蓝图或模板。理解类和对象是掌握面向对象编程的基础。

什么是类?

类(Class)是Java中的一种用户定义的数据类型,它封装了数据(属性)和行为(方法)。类可以看作是一个模板或蓝图,用于创建对象。类定义了对象的结构和行为。

类的定义

在Java中,类通过class关键字来定义。类的基本结构如下:

class ClassName {
    // 成员变量(属性)
    // 方法(行为)
}

类的组成部分

  1. 成员变量(属性):类的成员变量是类的属性或状态。它们定义了类的特征。
  2. 方法(行为):类的方法是类的行为或功能。它们定义了类可以执行的操作。

什么是对象?

对象(Object)是类的实例。对象是类的具体表现,它包含了类定义的属性和行为。通过创建对象,我们可以使用类中定义的属性和方法。

对象的创建

在Java中,对象通过new关键字来创建。创建对象的基本语法如下:

ClassName objectName = new ClassName();

代码示例

示例1:定义一个简单的类并创建对象

// 定义一个名为Car的类
class Car {
    // 成员变量
    String brand;
    String color;
    int year;

    // 方法:显示汽车信息
    void displayInfo() {
        System.out.println("Brand: " + brand);
        System.out.println("Color: " + color);
        System.out.println("Year: " + year);
    }
}

public class Main {
    public static void main(String[] args) {
        // 创建Car类的对象
        Car myCar = new Car();

        // 设置对象的属性
        myCar.brand = "Toyota";
        myCar.color = "Red";
        myCar.year = 2020;

        // 调用对象的方法
        myCar.displayInfo();
    }
}

解释: - 我们定义了一个Car类,它有三个成员变量:brandcoloryear。 - displayInfo()方法用于显示汽车的品牌、颜色和年份。 - 在main方法中,我们创建了一个Car类的对象myCar,并设置了它的属性,然后调用了displayInfo()方法来显示汽车的信息。

示例2:使用构造函数初始化对象

// 定义一个名为Student的类
class Student {
    // 成员变量
    String name;
    int age;

    // 构造函数
    Student(String n, int a) {
        name = n;
        age = a;
    }

    // 方法:显示学生信息
    void displayInfo() {
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
    }
}

public class Main {
    public static void main(String[] args) {
        // 创建Student类的对象并使用构造函数初始化
        Student student1 = new Student("Alice", 20);
        Student student2 = new Student("Bob", 22);

        // 调用对象的方法
        student1.displayInfo();
        student2.displayInfo();
    }
}

解释: - 我们定义了一个Student类,它有两个成员变量:nameage。 - 类中定义了一个构造函数Student(String n, int a),用于在创建对象时初始化成员变量。 - 在main方法中,我们创建了两个Student类的对象student1student2,并通过构造函数初始化了它们的属性,然后调用了displayInfo()方法来显示学生的信息。

示例3:使用访问修饰符控制成员变量的访问

// 定义一个名为BankAccount的类
class BankAccount {
    // 私有成员变量
    private double balance;

    // 公有方法:存款
    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
            System.out.println("Deposited: " + amount);
        } else {
            System.out.println("Invalid deposit amount");
        }
    }

    // 公有方法:取款
    public void withdraw(double amount) {
        if (amount > 0 && amount <= balance) {
            balance -= amount;
            System.out.println("Withdrawn: " + amount);
        } else {
            System.out.println("Invalid withdrawal amount");
        }
    }

    // 公有方法:获取余额
    public double getBalance() {
        return balance;
    }
}

public class Main {
    public static void main(String[] args) {
        // 创建BankAccount类的对象
        BankAccount account = new BankAccount();

        // 存款
        account.deposit(1000);

        // 取款
        account.withdraw(500);

        // 获取余额
        System.out.println("Current Balance: " + account.getBalance());
    }
}

解释: - 我们定义了一个BankAccount类,它有一个私有成员变量balance,表示账户余额。 - 类中定义了三个公有方法:deposit()用于存款,withdraw()用于取款,getBalance()用于获取余额。 - 在main方法中,我们创建了一个BankAccount类的对象account,并进行了存款、取款操作,最后获取了账户余额。

练习题

练习1:定义一个Book

  • 定义一个Book类,包含以下成员变量:
  • title(书名)
  • author(作者)
  • year(出版年份)
  • 定义一个方法displayInfo(),用于显示书籍的详细信息。
  • main方法中创建Book类的对象,并调用displayInfo()方法。

练习2:使用构造函数初始化Employee

  • 定义一个Employee类,包含以下成员变量:
  • name(员工姓名)
  • id(员工ID)
  • salary(员工工资)
  • 定义一个构造函数,用于初始化这些成员变量。
  • 定义一个方法displayInfo(),用于显示员工的详细信息。
  • main方法中创建Employee类的对象,并调用displayInfo()方法。

练习3:使用访问修饰符控制Circle类的访问

  • 定义一个Circle类,包含以下成员变量:
  • radius(半径,私有)
  • 定义一个构造函数,用于初始化半径。
  • 定义公有方法getArea(),用于计算并返回圆的面积。
  • 定义公有方法getCircumference(),用于计算并返回圆的周长。
  • main方法中创建Circle类的对象,并调用getArea()getCircumference()方法。

总结

  • 是对象的蓝图或模板,它定义了对象的属性和行为。
  • 对象是类的实例,它包含了类定义的属性和行为。
  • 类通过class关键字定义,对象通过new关键字创建。
  • 构造函数用于在创建对象时初始化成员变量。
  • 访问修饰符(如privatepublic)用于控制类成员的访问权限。

通过本章的学习,你应该能够理解类和对象的基本概念,并能够在Java中定义类、创建对象以及使用构造函数和方法。继续练习这些概念,你将能够更好地掌握面向对象编程的基础。