首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java面向对象OOP

对于原来写好的代码里面是不可修改,但是对于外部又是可扩展的。 开闭原则指导我们,当软件需要变化时,应该尽量通过扩展的方式来实现变化,而不是通过修改已有的代码来实现。...我们尽量不要通过继承等方式添加新的实现,这会导致类型的膨胀以及历史遗留代码的冗余。...但是在实际开发过程中,只通过继承的方式来升级并维护原有系统只是一个理想化的场景,所以,在实际开发过程中,修改原有代码和扩展代码往往是同时存在的, (3)、里氏替换原则(Liskov Substitution...面向对象继承的优缺点 优点: (1)、代码重用,减少创建类的成本,每个子类都拥有父类的方法和属性 (2)、子类和父类基本相似,但又与父类有区别 (3)、提高代码的可扩展性 缺点: (1)、继承是侵入性的...,只要继承就必须拥有父类的所有属性和方法 (2)、可能造成子类代码冗余、灵活性降低,因为子类必须拥有父类的所有属性和方法 本文仅以个人学习总结为主

48320
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java面向对象OOP

    Java面向对象 OOP Object Oriented Programming 要解决的问题 单独的变量解决,不利于数据的管理,把某个对象的信息拆解了,例如:存储一只猫的名字,年龄var等信息...类是对象的模板,对象是类的一个个体,对应一个实例 从类到对象的不同说法 创建一个对象 实例化一个对象 把类实例化 总之:类实例化 -> 对象 面向对象快速入门 使用OOP...通过它,可以查看到源代码 格式: javap xxx.class 或者 javap xxx (可以不带.class) -c 对代码进行反汇编 -v 输出附加信息 -p 显式所有类和成员...,后面自动填上.java IDEA常用快捷键 快速格式化的快捷键:ctrl+alt+L,可以快速补齐代码 模板快捷键 模板可以高效地完成开发,提高效率 包 应用场景 作用 可以区分相同名字的类...去访问 java数据结构 链表的实现 java ListNode链表是用Java自定义实现的链表结构 ```java class ListNode{ int val; ListNode

    17710

    Java OOP 式编程

    Java OOP编程 一、封装 二、继承 (1)子类继承父类 (2)方法的重写 (3)抽象类 三、接口(补充) 四、多态 (1)概念 (2)多态的前提与体现 我们知道 OOP的三大特性分别是封装,继承...,多态,接下来我就以几个简单的实例展示Java的面向对象的特性以及示例代码 一、封装 封装:顾名思义,即把你写的函数的功能给封装起来,别人只能使用它,却不知道功能是如何实现的,一个很简单的实例,看了你就懂了...BoomBird(); b.attack(); } } image.png 三、接口(补充) 接口的一些特征 1、接口是某个事物对外提供一些功能的声明 2、接口常常和多台使用在一起,也解决了java...接口名{} 类实现接口用 impements 实现 格式:class 类名 implements 接口名{} 示例: 这里我们写一个防盗门的样例 分析: 防盗门具有门的属性和防盗铃的属性 代码实现

    33730

    阿里Java编程规约【四】OOP规约

    a, Object b) Java7 源码如下所示: public static boolean equals(Object a, Object b) { return (a...Java 世界里相等请用equals方法,== 表示对象相等,一般在框架开发中会用到。 8. 【强制】任何货币金额,均以最小货币单位且为整型类型进行存储。 9....开闭原则告诉我们应尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来完成变化,它是为软件实体的未来事件而制定的对现行开发设计进行约束的一个原则。...参考(References) 《1. 2022 Java开发手册(黄山版).pdf 《设计模式之禅 第1版》 《Java技术手册 第6版》 《编写高质量代码:改善Java程序的151个建议》 白话阿里巴巴...Java开发手册(安全规约) - 李艳鹏 - 简书(https://www.jianshu.com/p/9528c4ea1504)

    56110

    Java抽象类与oop三大特征

    从这里,我们可以体会到Java语言设计者的初衷,它是对行为的抽象,而没有具体的实现,接口本身不是类。...即普通方法),而接口中只能存在public abstract 方法; 2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的; 3)接口中不能含有静态代码块以及静态方法...,而抽象类可以有静态代码块和静态方法; 4)一个类只能继承一个抽象类,而一个类却可以实现多个接口, Java是单继承,多实现 。...通过使用继承我们能够非常方便地复用以前的代码,能够大大的提高开发的效率。...重载是一个类中多态性的一种表现; Java 的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。

    79840

    AOP与OOP

    2.AOP是OOP的补充 AOP 与 OOP 并不是相互竞争的两种技术, 人们不是为了代替OOP 而提出 AOP, 事实上 AOP 与 OOP 两者互相之间是一个很好的补充和完善。...也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。...对于其他类型的代码,如安全性、异常处理和透明的持续性也是如此。...这种散布在各处的无关的代码被称为横切(cross-cutting)代码,在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。...所谓“方面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。

    46710

    Python OOP-1

    OOP-Python面向对象 Python面向对象 面向对象编程 基础 公有私有 继承 组合,Mixin 魔法函数 魔法函数概述 构造类魔法函数 运算类魔法函数 1....面向对象概述(ObjectOriented, OO) OOP思想 接触到任意一个任务,首先想到的是任务这个世界的构成,是由模型构成的 几个名词 OO:面向对象 OOA:面向对象的分析 OOD:面向对象的设计...OOI:面向对象的实现 OOP:面向对象的编程 OOA->OOD->OOI:面向对象的实现过程 类和对象的概念 类:抽象名词,代表一个集合,共性的事物 对象:具象的东西,单个个体 类跟对象的关系 一个具象...# 此时,self被a替换 A.say(a) # 同样可以把A作为参数传入 A.say(A) # 此时,传入的是类实例B,因为B具有name和age属性,所有不会报错 A.say(B) # 以上代码

    670107

    面向对象编程(OOP)

    虽然实际上代码量会变多,但是这种编程思维是合情合理的,符合实际的,让人更容易理解,因为每个对象的职责是明确的,从而后期维护会变得更方便。...下面在代码层面,演示一下面向对象和面向过程的区别: 过程化: #include "stdio.h" void Prepare(){ printf("准备食材。...通过继承,我们可以将子类共有的重复代码抽离到父类中,这样所有的子类就不必声明这些成员,就减少了很多代码量。在C#的继承结构中,object类是所有类的父类,任何一个类都是默认继承object。...在代码中的体现就是父类可以接收子类为其赋值。...; } } 以上代码中有一个共同的Dog类,分别有两个类哈士奇,柯基继承了它。还有一个宠物狗商店,需要Dog这个属性。

    48230

    python的OOP机制

    python的OOP机制 在Python中,实际上一切都是对象,我们使用的内置数据类型,本质上也是类的实例化。...除此之外,python的OOP模型基本就是处理内置类型的函数。 OOP不仅是一门技术,更是一种经验。...因为OOP不是在所有场景下都优于POP(Procedure-Oriented Programmin) python是一门一致性非常好的语言,大多数使用OOP的方式,都可以统一表达为: object.attribute...让我们暂时先忽略类中的属性,那么代码应该如下所示: class C2: ... class C3: ... class C1(C2, C3): ......OOP是关于代码重用 类所支持的代码重用方式是python中其它方式难以提供的,事实上,代码重用也是OOP最重要的目的。通过类,我们可以定制现有的代码来实现需求。

    42030
    领券