面向对象编程基础:类与对象¶
概述¶
在Java编程语言中,面向对象编程(OOP)是一种编程范式,它使用“对象”来设计应用程序和软件。对象是类的实例,类是对象的蓝图或模板。理解类和对象是掌握面向对象编程的基础。
什么是类?¶
类(Class)是Java中的一种用户定义的数据类型,它封装了数据(属性)和行为(方法)。类可以看作是一个模板或蓝图,用于创建对象。类定义了对象的结构和行为。
类的定义¶
在Java中,类通过class
关键字来定义。类的基本结构如下:
类的组成部分¶
- 成员变量(属性):类的成员变量是类的属性或状态。它们定义了类的特征。
- 方法(行为):类的方法是类的行为或功能。它们定义了类可以执行的操作。
什么是对象?¶
对象(Object)是类的实例。对象是类的具体表现,它包含了类定义的属性和行为。通过创建对象,我们可以使用类中定义的属性和方法。
对象的创建¶
在Java中,对象通过new
关键字来创建。创建对象的基本语法如下:
代码示例¶
示例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
类,它有三个成员变量:brand
、color
和year
。 - 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
类,它有两个成员变量:name
和age
。 - 类中定义了一个构造函数Student(String n, int a)
,用于在创建对象时初始化成员变量。 - 在main
方法中,我们创建了两个Student
类的对象student1
和student2
,并通过构造函数初始化了它们的属性,然后调用了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
关键字创建。 - 构造函数用于在创建对象时初始化成员变量。
- 访问修饰符(如
private
、public
)用于控制类成员的访问权限。
通过本章的学习,你应该能够理解类和对象的基本概念,并能够在Java中定义类、创建对象以及使用构造函数和方法。继续练习这些概念,你将能够更好地掌握面向对象编程的基础。