还剩29页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
对象基础本课程将深入探讨面向对象编程的核心概念包括类、对象、属性和方,法等帮助学生全面掌握对象编程的基本原理和使用方法,什么是对象?对象是什么对象的特点对象的组成对象是一种抽象的数据类型,包含了封装对象将属性和方法组合在一起对象由类蓝图创建而成每个对象都•:,属性数据和方法行为对象可以模有自己独特的属性和方法对象是类拟现实世界中的事物如汽车、人、书的实例化用于表示现实世界中的概念,,继承对象可以从其他对象继承属性•:等和方法多态对象可以以不同的形式表现•:对象的属性和方法对象属性对象方法属性和方法的关系对象的属性是描述对象特征的变量对象的方法是描述对象行为的函数对象的属性和方法共同定义了对象可以通过对象来访问和修改这些方法可以对对象的属性进行操作的特性属性描述对象的状态方,属性属性可以表示对象的状态实现对象的功能方法可以接受法描述对象的行为两者密切相关,,如名称、年龄、颜色等参数并返回结果共同构成了对象的完整定义,对象的创建和初始化构造函数1对象通常通过调用特殊的方法称为构造函数来创建和初始化这个函数负责为新对象分配内存并设置初始状态字面量赋值2有时对象也可以直接用字面量语法创建如张三,{name:这种方式非常简洁适用于创建简单的对象,age:25},工厂模式3更复杂的对象可以通过工厂函数来创建这种方式可以隐藏,对象创建的细节并提供定制化的初始化逻辑,对象的访问和修改获取对象属性通过对象点符号或中括号来访问对象的属性值设置对象属性可以直接赋值修改对象的属性值注意要确保属性存在并有写权限调用对象方法使用对象点符号加方法名来调用对象的方法方法可以有参数也可以没有参数对象的引用和复制对象引用对象赋值对象是以引用的方式传递的赋值操作只是创建了一个新不同变量可以指向同一个的引用,指向同一个对象对象,修改一个变量会影响改变对象的属性会影响所有其他变量引用对象复制如果需要创建一个独立的对象副本,可以使用拷贝构造函数或克隆方法这样可以避免引用问题对象的比较和相等性相等性比较比较运算符方法方法equals hashCode判断两个对象是否相等需除了相等性比较,我们还中的类提供了方法返回对象Java ObjecthashCode要检查它们的内容和引用可以使用等方法用于判断两的哈希码值,用于支持哈,,=,=equals是否一致使用运算比较运算符来比较对象的个对象是否逻辑上等价希表操作如果两个对象==符比较对象值是否相等,大小比较的依据是对象子类可以重写这个方法的方法返回,equals true而使用运算符则比较的内部状态,如果对象没以定制比较逻辑它们的方法也===hashCode对象的引用是否指向同一有实现比较接口,则无法应该返回相同的值个实例进行大小比较对象的继承和多态继承多态对象可以继承父类的属性和方法,同一个方法可以根据对象的不同而形成层次化的类结构子类可以复表现出不同的行为父类的方法可用父类的代码,并添加自己独有的以被子类重写以实现不同的功能功能抽象接口抽象类定义了一些通用的属性和方接口定义了一组标准的方法签名,法,子类需要实现这些抽象方法类可以实现多个接口来获得不同的抽象类无法被实例化,只能作为父功能接口可以用于解耦和扩展类被继承抽象类和接口抽象类接口12抽象类是一种特殊的类不接口是一种纯粹的抽象类,能被实例化但可以包含抽型只包含抽象方法声明,,象方法和具体方法它用它定义了一个契约规定了,于定义共同的属性和行为类必须实现的方法联系与区别应用场景34抽象类和接口都用于实现抽象类用于建立共同的基代码复用和多态但前者可类接口用于定义协议和契,,以包含具体实现后者只能约两者配合可以实现更灵,,包含抽象方法声明活的面向对象设计静态方法和静态属性什么是静态方法和静静态方法的应用静态属性的应用使用注意事项态属性?静态方法通常用于执行与静态属性用于在类级别存静态成员的使用应当谨慎,静态方法和静态属性是与类相关的操作,如数学运储数据,如配置信息、常因为它们可能会引入潜在某个类相关联的,而不是算、字符串处理或日期计量值或共享资源它们可的线程安全问题或违反面与某个对象相关联它们算等它们不需要实例化以在不创建对象的情况下向对象设计原则可以在不创建对象的情况对象即可调用访问和修改下访问和使用封装和隐藏数据保护抽象接口对象的数据隐藏可以禁止直通过暴露有限的公有接口来接访问和修改提高数据的安隐藏对象的内部实现细节提,,全性和完整性高代码的模块化和可维护性类和访问修饰符使用不同的访问修饰符、、可以控制对类public protectedprivate成员的访问级别面向对象的设计原则单一职责原则开闭原则里氏替换原则依赖倒置原则每个类应该有一个单一的职软件实体类、模块、函数任何基类可以出现的地方要依赖于抽象不要依赖于,,责和目标避免过多的职责等应该是可以扩展的但不子类一定可以出现具体实现,,和功能混杂可修改单一职责原则职责单一模块化设计重构优化每个类或模块只负责一项具体的功能将代码划分为独立的模块每个模块专通过不断优化代码分离职责可以降低,,,,不应该承担过多的职责这有助于提高注于一个特定的功能有利于提高代码代码的耦合度提高代码的可读性和可,,,代码的可读性和可维护性的灵活性和可扩展性维护性开闭原则灵活性与可维护性扩展需求的响应面向对象设计原则开闭原则要求软件实体(类、模块、当系统需求变更时,通过添加新代码开闭原则是面向对象设计的基本原则函数等)对扩展开放,但对修改关闭而不是修改现有代码的方式来实现扩之一,是实现系统可复用和可维护的这确保了系统的灵活性和可维护性展,可以最大限度地减少对已有功能关键所在的影响里氏替换原则定义目的子类对象可以替换父类对象确保代码的可复用性和可扩使用的原则子类对象的行展性增强代码的健壮性,为应该与父类对象的行为兼容意义有助于确保对象继承层次的正确性避免出现错误,依赖倒置原则什么是依赖倒置原则?为什么需要遵循这一原则?依赖倒置原则是面向对象设计的五大原则之一它建议我遵循依赖倒置原则可以使高层模块不依赖于低层模块的具们应该依赖于抽象接口而不是具体实现这有助于提高代体实现从而提高代码的复用性和可测试性这有助于实现,,码的灵活性和可维护性松耦合的设计接口隔离原则定义接口设计接口时应该尽可能小,满足特定需求,而不是定义臃肿的广泛接口满足需求客户端只需关注自己需要的接口,而不必了解或依赖其他无关的接口增强灵活性接口隔离可以使系统更加灵活,方便增加新的功能而不影响现有的客户端设计模式概述设计模式是面向对象软件设计中反复出现的、经过实践证明有效的通用解决方案它们为常见的软件设计问题提供了标准化的解决方案学习和掌握常见设计模式对于构建高质量、可维护的软件系统至关重要单例模式定义目的12单例模式是一种创建型设确保系统中一个类只有一计模式,它确保一个类只个实例,并提供一个全局有一个实例,并提供一个访问点全局访问点实现优点34通过私有构造函数、静态可以确保全局只有一个实变量和静态获取实例的方例,节省内存资源,控制法来实现单例模式访问点工厂模式定义工厂模式简单工厂模式工厂方法模式工厂模式是一种创建型设计模式用于简单工厂模式定义一个工厂类负责创工厂方法模式定义了一个创建对象的,,隐藏对象创建的复杂逻辑提供一个统建具体的产品对象客户端只需要调接口但由子类决定要实例化的类是哪,,一的接口让子类决定实例化哪个类用工厂类的方法即可获得所需的产品一个工厂方法将对象的实例化推迟到子类策略模式定义优点应用场景实现策略模式定义了一系列算策略模式可以避免使用多当系统需要在不同算法之通过定义一个策略接口不,法并将每个算法封装起来重条件语句不同的算法间灵活切换时如排序算法同的具体策略类实现该接,,使它们可以互相替换策封装在不同的策略类中易、压缩算法等当需要屏蔽口客户端持有一个策略,,;略模式让算法的变化独立于切换、理解和扩展算法的细节只需关注算法对象根据需要动态切换不,,于使用它们的客户端的使用同的算法实现观察者模式观察者接口定义观察者对象的结构和行为包括注册、删除和通知等方法,目标接口定义主题对象的结构和行为包括注册观察者、通知观察者等方法,动态更新当目标对象状态改变时会自动通知所有注册的观察者进行更新,装饰者模式灵活拓展功能解耦责任装饰者模式允许通过添加装装饰器和被装饰的对象都有饰器动态地扩展对象的功能明确的职责分工实现了责,而不会改变对象的核心结任的解耦和高内聚,构层层包装动态扩展装饰者模式支持递归的层层与继承相比装饰者模式提,包装可以为对象叠加多个供了更加灵活的动态扩展功,功能能的方式适配器模式结构型设计模式包装现有功能兼容性转换适配器模式是一种结构型设计模式适配器模式通过在现有类的基础上适配器模式可以解决不兼容的接口用于将一个类的接口转换成客户添加一个包装层来实现目标接口之间的转换问题让客户端无缝地,,,端期望的另一个接口避免了修改原有代码使用新功能桥接模式抽象化将抽象化和实现化解耦使两者可以独立变化,实现化通过组合来达到抽象化和实现化的解耦可扩展性在不改变抽象层的情况下可以改变实现层代理模式定义应用场景实现步骤优势代理模式是一种结构型设代理模式常用于远程对象创建抽象主题接口代理模式可以增强原对象
1.
2.计模式它提供了一个代理访问、安全控制、延迟加创建真实主题类创建的功能提供更好的用户体,
3.,对象来控制对另一个对象载等场景它可以在不影代理类持有真实主题的引验同时还能在不改变原,的访问代理对象可以在响原对象的基础上增加额用并实现共同接口对象的情况下添加额外的不改变原对象的情况下添外的功能控制逻辑加额外的功能或限制命令模式定义核心类应用场景命令模式将请求封装为一个对象从而使您定义了执行操作的接口命令模式被广泛应用于撤销重做、日志记,•Command/可以用不同的请求对客户进行参数化对请录、事务处理等场景以实现请求的封装和,,实现了•ConcreteCommand Command求排队或记录请求日志以及支持可撤销的解耦,接口将与动作绑定,Receiver操作负责调用命令对象执行请求•Invoker知道如何实施与请求相关的•Receiver操作迭代器模式统一访问接口顺序访问松耦合设计迭代器模式提供一个统一的访问集迭代器模式支持对集合元素的顺序迭代器模式将集合对象与遍历逻辑合元素的接口使开发者无需关注访问使得开发者能够遍历集合而分离降低了两者之间的耦合度提,,,,集合的内部结构无需了解其具体实现高了代码的灵活性模板方法模式定义实现12模板方法模式定义了算法通过抽象基类定义算法的的框架并允许子类在不改骨架并允许子类在不更改,,变算法结构的情况下重新算法结构的情况下重新实定义该算法的某些步骤现某些步骤优点应用34可以避免代码重复提高代广泛应用于框架设计、组,码的可重用性和可扩展性件库开发等场景可以提高,同时也提高了算法的稳代码的可重用性定性访问者模式定义应用场景优点缺点访问者模式定义了一个新当需要对一组对象执行不访问者模式可以将算法与访问者模式会破坏开闭原的操作,且不改变数据结同的操作时,可以使用访数据结构分离增加新的操则因为每次添加新的操作,,构它可以在不修改现有问者模式它可以简化算作更加简单和灵活同时都需要修改访问者接口和代码的情况下,为对象添法的实现,并提高代码的它也可以避免对象结构的实现同时它也会增加系加新的功能可维护性变化导致算法的变化统的复杂性备忘录模式捕获状态备忘录模式可以捕获对象内部状态并保存到备忘录对象中撤销操作通过备忘录对象可以恢复对象到先前的状态,实现撤销操作封装状态备忘录对象封装了对象的全部状态,不会泄露对象的内部结构。
个人认证
优秀文档
获得点赞 0