徐州的网站设计,太原小程序开发定制,做网站导航栏素材图,可以做描文本的网站【JAVA面试题】什么是面向对象#xff1f;谈谈你对面向对象的理解
在 Java 面试中#xff0c;面向对象 是一个高频考点。它不仅是一种编程思想#xff0c;更是现代软件开发的核心方法论。本文将从 面向对象的概念、与面向过程的对比、以及 面向对象的三大特性#xff08;封…【JAVA面试题】什么是面向对象谈谈你对面向对象的理解
在 Java 面试中面向对象 是一个高频考点。它不仅是一种编程思想更是现代软件开发的核心方法论。本文将从 面向对象的概念、与面向过程的对比、以及 面向对象的三大特性封装、继承、多态 三个方面深入探讨面向对象的核心思想。 1. 什么是面向对象
面向对象Object-Oriented ProgrammingOOP是一种编程范式它将现实世界中的事物抽象为 对象并通过对象之间的交互来解决问题。与 面向过程 不同面向对象更注重 参与者对象 以及它们各自的职责。
面向对象 vs 面向过程
面向过程关注问题的解决步骤和顺序将任务拆解为一系列函数。面向对象关注问题的参与者对象以及它们的行为和属性。
示例洗衣机洗衣服 面向过程 打开洗衣机放衣服放洗衣粉清洗烘干 面向对象 人打开洗衣机、放衣服、放洗衣粉洗衣机清洗、烘干
从上述例子可以看出
面向过程直接高效适合简单任务。面向对象更易于 复用、扩展 和 维护适合复杂系统。 2. 面向对象的三大特性
面向对象的核心思想体现在以下三大特性中
2.1 封装Encapsulation
封装 是指将对象的属性和行为隐藏起来只暴露必要的接口供外部访问。封装的意义在于
明确职责对象的内部细节对外部透明外部调用者无需关心内部实现。提高安全性防止外部直接修改对象的内部状态。
示例JavaBean 的封装
public class User {private String name;public void setName(String name) {this.name CSDN_ name; // 命名规则由对象内部决定}public String getName() {return name;}
}属性私有化name 属性被声明为 private外部无法直接访问。提供公共方法通过 setName 和 getName 方法控制对属性的访问。
实际应用ORM 框架
使用 MyBatis 操作数据库时我们不需要关心数据库连接和 SQL 执行细节只需调用封装好的方法即可。 2.2 继承Inheritance
继承 是指子类可以继承父类的属性和方法并在此基础上进行扩展或修改。继承的意义在于
代码复用子类可以直接使用父类的共性方法和属性。扩展功能子类可以添加新的方法或重写父类的方法。
示例继承与扩展
class Animal {public void eat() {System.out.println(Animal is eating);}
}class Dog extends Animal {Overridepublic void eat() {System.out.println(Dog is eating);}public void bark() {System.out.println(Dog is barking);}
}复用Dog 类继承了 Animal 的 eat 方法。扩展Dog 类新增了 bark 方法并重写了 eat 方法。 2.3 多态Polymorphism
多态 是指同一个方法调用由于对象所属的类不同实际执行的逻辑也不同。多态的意义在于
提高灵活性同一接口可以有不同的实现。降低耦合调用者无需关心具体实现只需关注接口。
示例多态的实现
Animal animal new Dog(); // 父类引用指向子类对象
animal.eat(); // 输出Dog is eating父类引用指向子类对象Animal 类型的变量指向 Dog 对象。方法调用调用 eat 方法时实际执行的是 Dog 类的 eat 方法。
注意事项
多态只能调用父类中定义的方法无法调用子类特有的方法如 bark。 3. 总结
面向对象是一种强大的编程思想它将现实世界中的事物抽象为对象并通过 封装、继承 和 多态 三大特性提高了代码的 复用性、扩展性 和 维护性。