当前位置: 首页 > news >正文

福田欧辉是国企吗做百度手机网站优化点

福田欧辉是国企吗,做百度手机网站优化点,移动网站开发流行,wordpress 博客不显示不出来一、封装(Encapsulation) 1. 封装的概念 封装是面向对象编程的第一大特性,它指的是将数据和操作数据的方法绑定在一起,并对外部隐藏对象的内部实现细节。 2. 封装的核心原则 私有化属性:使用private修饰类的成员变…

一、封装(Encapsulation)

1. 封装的概念

封装是面向对象编程的第一大特性,它指的是将数据和操作数据的方法绑定在一起,并对外部隐藏对象的内部实现细节。

2. 封装的核心原则

  • 私有化属性:使用private修饰类的成员变量
  • 公开方法:提供public的getter和setter方法
  • 控制访问:通过方法限制对属性的不合理访问

3. 封装的实现示例

public class Person {// 私有属性private String name;private int age;// 公开方法public String getName() {return name;}public void setName(String name) {if(name == null || name.trim().isEmpty()) {throw new IllegalArgumentException("姓名不能为空");}this.name = name;}public int getAge() {return age;}public void setAge(int age) {if(age < 0 || age > 150) {throw new IllegalArgumentException("年龄不合法");}this.age = age;}
}

4. 封装的优势

  • 提高安全性:防止外部代码直接修改对象内部状态
  • 易于维护:内部实现修改不影响外部调用
  • 增强可扩展性:可以在方法中添加额外逻辑(如验证)
  • 隐藏复杂性:使用者无需了解内部实现细节

二、继承(Inheritance)

1. 继承的概念

继承是面向对象编程的第二大特性,它允许一个类(子类)基于另一个类(父类)来构建,继承父类的属性和方法。

2. 继承的实现

// 父类
class Animal {private 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("汪汪叫");}
}

3. 继承的特点

  • 单继承:Java只支持单继承(一个子类只能有一个直接父类)
  • 传递性:继承关系可以传递(A继承B,B继承C,则A也继承C)
  • 构造方法:子类构造方法必须先调用父类构造方法(super())
  • 方法重写:子类可以重写(override)父类的方法

4. 方法重写规则

  • 方法名、参数列表必须相同
  • 返回类型可以相同或是父类返回类型的子类
  • 访问权限不能比父类更严格
  • 不能抛出比父类更宽泛的异常

5. super关键字

  • super.成员变量:访问父类的成员变量
  • super.成员方法():调用父类的成员方法
  • super():调用父类的构造方法

三、多态(Polymorphism)

1. 多态的概念

多态是面向对象编程的第三大特性,它指的是同一操作作用于不同对象,可以有不同的解释,产生不同的执行结果

2. 多态的实现条件

  1. 继承关系:存在继承关系的类
  2. 方法重写:子类重写父类的方法
  3. 向上转型:父类引用指向子类对象

3. 多态的类型

(1) 编译时多态(方法重载)
class Calculator {public int add(int a, int b) {return a + b;}public double add(double a, double b) {return a + b;}
}
(2) 运行时多态(方法重写)
class Animal {public void makeSound() {System.out.println("动物发出声音");}
}class Cat extends Animal {@Overridepublic void makeSound() {System.out.println("喵喵喵");}
}class Dog extends Animal {@Overridepublic void makeSound() {System.out.println("汪汪汪");}
}public class Test {public static void main(String[] args) {Animal myAnimal = new Cat(); // 向上转型myAnimal.makeSound(); // 输出"喵喵喵"myAnimal = new Dog(); // 向上转型myAnimal.makeSound(); // 输出"汪汪汪"}
}

4. 多态的应用场景

  • 接口回调:通过接口引用调用不同实现类的方法
  • 集合中的多态:List list = new ArrayList()
  • 方法参数多态:方法参数声明为父类类型,可接受所有子类对象

5. instanceof运算符

用于检查对象是否是特定类或其子类的实例

if (myAnimal instanceof Dog) {Dog myDog = (Dog) myAnimal; // 向下转型myDog.bark();
}

四、三大特性综合关系

  1. 封装是基础:封装数据和方法,形成独立的类
  2. 继承是手段:通过继承建立类之间的关系
  3. 多态是表现:通过多态展现不同对象的特性

五、常见面试问题

Q1: 重载(Overload)和重写(Override)的区别?

区别点重载重写
发生位置同一个类中父子类之间
方法名相同相同
参数列表必须不同必须相同
返回类型可以不同相同或是子类
访问修饰符无限制不能比父类更严格
异常无限制不能抛出更宽泛的异常

Q2: 为什么Java不支持多继承?

为了避免"菱形继承"问题(即一个类继承自两个具有相同方法的父类时产生的二义性)。Java通过接口实现类似多继承的功能。

Q3: 构造方法能否被重写?

不能。构造方法不是成员方法,不能被重写。子类构造方法必须调用父类构造方法(显式或隐式)。

六、最佳实践建议

  1. 封装原则

    • 所有属性尽量私有化
    • 只在必要时提供getter/setter
    • 在setter方法中添加验证逻辑
  2. 继承原则

    • 遵循"is-a"关系设计继承
    • 避免过深的继承层次(一般不超过3层)
    • 考虑使用组合代替继承
  3. 多态原则

    • 优先使用接口编程
    • 避免滥用instanceof
    • 方法参数尽量使用父类/接口类型

通过合理运用封装、继承和多态这三大特性,可以构建出高内聚、低耦合的面向对象程序,提高代码的可维护性和扩展性。

http://www.dtcms.com/a/457305.html

相关文章:

  • npm 扩展vite
  • 和15岁女儿做很舒服网站最新网页版传奇
  • 01.MMDetection3D训练
  • 手机 网站制作什么网站资源多
  • C++之日期类的实现
  • 构建AI智能体:五十七、LangGraph + Gradio:构建可视化AI工作流的趣味指南
  • Create/Assemble/Link x64 Windows
  • 网站建设与管理案例教程第三版答案中国货源大全网
  • 织梦建网站建设收费网站
  • Delphi字段值含有空格
  • 【第五章:计算机视觉-项目实战之生成式算法实战:扩散模型】2.CV黑科技:生成式算法理论-(3)经典扩散模型DDPM算法流程讲解
  • 牛客算法_哈希
  • Product Hunt 每日热榜 | 2025-10-08
  • 重庆建站公司官网国外有名的网站
  • 【论文阅读】Visual Planning: Let’s Think Only with Images
  • 河南教育平台网站建设为中小型企业构建网站
  • 开放指令编辑创新突破!小米开源 Lego-Edit 登顶 SOTA:用强化学习为 MLLM 编辑开辟全新赛道!
  • Vue 与 React 深度对比:底层原理、开发体验与实际性能
  • 平台网站建设协议电话网站域名到期
  • Spring Gateway 全面解析:从入门到进阶实践​
  • 江西九江网站建设注册登记
  • 建个微网站多少钱tv网站建设
  • Docker 说明与安装
  • Docker 镜像结构与相关核心知识总结
  • 容器技术与 Docker 入门部署
  • linux学习笔记(20)线程
  • Vue3后台表单快速开发
  • 前端技术栈 —— 创建React项目
  • 推荐一个 GitHub 开源项目信息卡片生成工具,支持Docker快速部署和API调用
  • 元宇宙的工业制造应用:重构生产、研发与供应链