Java是一种面向对象的编程语言,面向对象程序设计(Object Oriented Programming,OOP)强调对象、类和封装。以下是Java面向对象开发的主要概念:
类和对象:Java中的类是对象的模板,定义了对象的属性和行为。对象是类的实例。通过类可以创建多个对象,每个对象都有自己的状态和行为。
示例代码:
// 例子:定义一个简单的类
public class Car {
// 属性
String brand;
String model;
int year;
// 方法
void start() {
System.out.println("The car is starting.");
}
void drive() {
System.out.println("The car is in motion.");
}
}
// 创建对象
Car myCar = new Car();
myCar.brand = "Toyota";
myCar.model = "Camry";
myCar.year = 2022;
// 调用方法
myCar.start();
myCar.drive();
上述示例展示了类的定义与对象的声明,还有对类中方法的调用,下面对Java面向对象三大特征(封装、继承、多态)进行介绍。
1、封装
封装是一种将数据(属性)和方法(行为)组合成一个单一单元的概念。在Java中,可以使用访问修饰符(如private、public、protected)来控制对类的成员的访问,从而实现封装的概念。以下是四种访问修饰符的区别(若不添加访问修饰符,默认修饰符为default):
| 修饰符 | 当前类 | 同一包内 | 子孙类(同一包) | 子孙类(不同包) | 其他包 |
|---|---|---|---|---|---|
| public | Y | Y | Y | Y | Y |
| protected | Y | Y | Y | Y/N | N |
| default | Y | Y | Y | N | N |
| private | Y | N | N | N | N |
示例代码:
public class BankAccount {
// 私有属性
private double balance;
// 公有方法
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
}
}
public double getBalance() {
return balance;
}
}
2、继承
继承是一种机制,通过它一个类可以继承另一个类的属性和方法。被继承的类可以称之为父类、超类或者基类。而继承的类可以称之为子类。子类可以重用父类的代码,可以直接访问父类中的非私有的属性以及方法。
示例代码:
// 继承
public class ElectricCar extends Car {
// 新的属性
int batteryCapacity;
// 新的方法 void charge() {
System.out.println("The electric car is charging.");
}
}
3、多态
多态发生在继承关系中,父类定义的方法,调用时对其进行重写,即是多态。换句话说,多态允许一个对象在运行时表现出不同的行为。通过方法的重写(override)和接口实现,Java中实现了多态。
示例代码:
public interface Shape {
void draw();
}
public class Circle implements Shape {
@Override
public void draw() {
System.out.println("Drawing a circle.");
}
}
public class Square implements Shape {
@Override
public void draw() {
System.out.println("Drawing a square.");
}
}