1. 类和对象:
- 类(Class): 类是定义对象的模板,包括属性(成员变量)和方法(成员方法)。
- 对象(Object): 对象是类的实例,具有类定义的属性和方法。
// 例子:定义一个简单的类
public class Car {
// 成员变量
String brand;
String model;
// 构造方法
public Car(String brand, String model) {
this.brand = brand;
this.model = model;
}
// 成员方法
public void displayInfo() {
System.out.println("Brand: " + brand);
System.out.println("Model: " + model);
}
}
// 创建对象并使用
Car myCar = new Car("Toyota", "Camry");
myCar.displayInfo();
2. 封装(Encapsulation):
- 将类的内部细节隐藏在类的外部,通过公共方法提供对类的访问。
public class Circle {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
public double calculateArea() {
return Math.PI * radius * radius;
}
}
3. 继承(Inheritance):
- 允许一个类继承另一个类的属性和方法,提供了代码重用的机制。
// 基类(父类)
public class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
// 派生类(子类)
public class Dog extends Animal {
public void bark() {
System.out.println("Dog is barking");
}
}
4. 多态(Polymorphism):
- 允许使用一个基类类型的引用来引用一个派生类的对象,提高代码的灵活性。
Animal myDog = new Dog(); // 多态
myDog.eat(); // 调用派生类的方法
5. 抽象类和接口:
- 抽象类(Abstract Class): 用于包含抽象方法和实际方法的类,不能被实例化。
- 接口(Interface): 定义了一组抽象方法,实现多重继承。
// 抽象类
abstract class Shape {
abstract void draw();
}
// 接口
interface Drawable {
void draw();
}
6. 组合和聚合:
- 组合(Composition): 通过将对象组合成更复杂的对象来创建新的功能。
- 聚合(Aggregation): 表示对象之间的包含关系。
7. 设计原则:
- 单一职责原则(Single Responsibility Principle,SRP): 一个类应该只有一个引起变化的原因。
- 开闭原则(Open/Closed Principle,OCP): 软件实体应该是可以扩展的,但是不可修改的。
- 里氏替换原则(Liskov Substitution Principle,LSP): 子类型必须能够替换掉它们的基类型。
- 依赖倒置原则(Dependency Inversion Principle,DIP): 高层模块不应该依赖低层模块,两者都应该依赖其抽象。
以上是 Java 面向对象设计的一些基本概念和最佳实践。面向对象设计的目标是创建清晰、可维护和可扩展的代码。深入理解这些概念,并在实际项目中应用它们,可以帮助构建更健壮和高效的软件系统。
转载请注明出处:http://www.zyzy.cn/article/detail/447/Java