java高频面试之SE-04
面向对象和面向过程的区别?
面向对象和面向过程是两种不同的编程范式,它们在设计和组织代码方面存在显著的区别。
当然可以,下面用通俗易懂的例子来说明面向对象和面向过程的区别。
面向过程
例子:做早餐
-
步骤:
- 准备食材(鸡蛋、面包、牛奶)。
- 煮鸡蛋。
- 烤面包。
- 倒牛奶。
- 摆盘,享受早餐。
-
代码示例:
function prepareBreakfast() {
prepareIngredients();
boilEggs();
toastBread();
pourMilk();
serve();
}
function prepareIngredients() {
// 准备鸡蛋、面包、牛奶
}
function boilEggs() {
// 煮鸡蛋的逻辑
}
function toastBread() {
// 烤面包的逻辑
}
function pourMilk() {
// 倒牛奶的逻辑
}
function serve() {
// 摆盘
}
面向对象
例子:做早餐(面向对象)
-
对象:
- 食材(Ingredient):有属性(如
名称
、数量
)和方法(如准备()
)。 - 早餐(Breakfast):有属性(如
食材
)和方法(如准备()
)。
- 食材(Ingredient):有属性(如
-
结构:
class Ingredient {
String name;
int quantity;
void prepare() {
// 准备食材的逻辑
}
}
class Breakfast {
List<Ingredient> ingredients;
void prepare() {
for (Ingredient ingredient : ingredients) {
ingredient.prepare();
}
// 其他步骤
}
}
// 创建对象并做早餐
Ingredient egg = new Ingredient("鸡蛋", 2);
Ingredient bread = new Ingredient("面包", 2);
Breakfast breakfast = new Breakfast([egg, bread]);
breakfast.prepare();
总结对比
- 面向过程类似于制定一个详细的步骤说明,强调操作的调用顺序,像一份食谱。
- 面向对象则将相关数据和操作封装在一个对象中,更像是在构建一个完整的厨房设备,每种食材可以有自己独立的准备方法,方便管理和复用。
通过上面的例子,可以看到面向对象如何更好地组织和管理复杂性,而面向过程则更侧重于操作步骤本身。
java的三大特性是什么?
Java 的三大特性是:封装、继承和多态。下面用通俗易懂的例子来描述这三种特性。
1. 封装 (Encapsulation)
定义:封装是将数据(属性)和对数据的操作(方法)包装在一起,只暴露必要的接口给外部访问。
例子:想象一个手机。
- 内部数据:手机的电池容量、存储空间等。
- 操作方法:开机、关机、发短信等。
你只需要通过手机的按钮或屏幕进行操作,而不需要知道内部如何实现。例如,按下开机键就可以开机,细节都被隐藏了。
代码示例:
class Phone {
private String brand; // 品牌信息,封装在内部
private int battery; // 电池容量
public Phone(String brand, int battery) {
this.brand = brand;
this.battery = battery;
}
public void turnOn() {
System.out.println(brand + " 手机已开机!");
}
}
2. 继承 (Inheritance)
定义:继承是一个类可以基于另一个类创建,用于实现代码重用。子类可以继承父类的属性和方法。
例子:想象一个动物的例子。
- 父类:动物(Animal),具有通用属性,如名字、年龄。
- 子类:狗(Dog)和猫(Cat),继承了动物的属性,并且可以有自己特有的行为。
代码示例:
class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public void eat() {
System.out.println(name + " 在吃饭!");
}
}
class Dog extends Animal {
public Dog(String name) {
super(name);
}
public void bark() {
System.out.println(name + " 在叫!");
}
}
3. 多态 (Polymorphism)
定义:多态是指同一方法可以有不同的实现,具体的执行在运行时决定。
例子:想象一个交通工具的例子。
- 不同的交通工具(如汽车、飞机)都有
move()
这个方法,但它们实现的方式不同。汽车是开,飞机是飞。
代码示例:
class Vehicle {
public void move() {
System.out.println("交通工具在移动");
}
}
class Car extends Vehicle {
public void move() {
System.out.println("汽车在开");
}
}
class Plane extends Vehicle {
public void move() {
System.out.println("飞机在飞");
}
}
// 使用多态
Vehicle myVehicle = new Car();
myVehicle.move(); // 输出: 汽车在开
myVehicle = new Plane();
myVehicle.move(); // 输出: 飞机在飞
总结
- 封装:保护内部数据,只通过方法访问,像手机只通过按钮操作。
- 继承:重用代码,父类的特性可被子类继承,就像狗和猫都继承动物的特性。
- 多态:同一个方法在不同对象上的不同表现,像交通工具的
move()
方法。
这些特性让 Java 成为一个灵活且强大的编程语言,方便开发和维护代码。
IDEA ji huo
https://pan.quark.cn/s/4216736c0427
🎬大全
https://kdocs.cn/l/cqhxNU9I2lLD
12306回家科技
https://pan.quark.cn/s/45f6bf9be1b3