热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

设计模式_基础知识

目录设计模式基础知识面向对象基础1、类与对象2、面向对象三大特性3、抽象类与接口设计模式基础知识面向对象基础1、类与对象对象:是一个自包含的实体,用于一组可识别的特性和行为来标识。

目录

  • 设计模式基础知识
    • 面向对象基础
      • 1、类与对象
      • 2、面向对象三大特性
      • 3、抽象类与接口


设计模式基础知识

面向对象基础


1、类与对象

对象:是一个自包含的实体,用于一组可识别的特性和行为来标识。对象就是具体的实体,这个实体有具有属性和行为,并且这些属性和行为都是具体表示出来的。

面向对象编程:针对对象来编程,通过对象的行为和属性来表达过程。

:具有相同属性和功能的对象的抽象的集合。


2、面向对象三大特性

封装:每个对象都包含它能进行操作的所需要的信息,所以对象不必依赖其他对象来完成自己的操作。将类内部封装,对外开放接口。优点如下:



  • 良好的封装能够减少耦合

  • 类内部的实现可以自由的修改

  • 类具有清晰的对外接口

继承:子类继承父类的属性和方法或者重新定义、追加属性和方法进行扩展等。特点如下:



  • 子类拥有父类非private的属性和功能

  • 子类具有自己的属性和功能

  • 子类还可以以自己的方式实现父类的功能(重写)。

继承实现了代码的复用,但是继承会破坏封装性,父类变,子类就需要变,显然是一种强耦合性的关系。

多态:不同的对象可以执行相同的动作,但是要通过它们自己的实现代码执行。



  • 子类以父类的身份出现

  • 子类在使用是以自己的方式实现

  • 子类以父类的方式出现时,子类特有的属性和方法不能使用


3、抽象类与接口

抽象类:通常是一个抽象的概念,他提供了一个继承的出发点。

用法:



  • 抽象类不能被实例化

  • 抽象方法必须被子类重写方法

  • 如果一个类中含有抽象方法,那么这个类就必须定义为抽象类

接口:把隐式的公共方法和属性组合起来,封装成特定功能的集合,一旦类实现了接口,类就可以支持接口所指定的所有属性和成员。



推荐阅读
  • Cortex-M3处理器核心解析
    本文详细介绍了Cortex-M3处理器的常见术语及其核心特点,包括其架构、寄存器组、操作模式、中断处理机制、存储器映射、总线接口和存储器保护单元(MPU)。此外,还探讨了Cortex-M3在性能和中断处理方面的优势。 ... [详细]
  • 本文探讨了C语言中关于函数定义与调用的一些基本规则,特别是解释了为何函数定义不可嵌套,而函数调用却可以嵌套,并通过具体示例加以说明。 ... [详细]
  • 匠心|传统_2021年度总结 | 葡萄城软件开发技术回顾(上)
    匠心|传统_2021年度总结 | 葡萄城软件开发技术回顾(上) ... [详细]
  • 本文探讨了Flutter和Angular这两个流行框架的主要区别,包括它们的设计理念、适用场景及技术实现。 ... [详细]
  • 第三周课堂测试1、使用汇编语言编写指令时,用一些简单的容易记忆的符号来代替二进制指令,比机器语言更为方便,属于高级语言。(B ... [详细]
  • Linux系统中高效解决高Buff/Cache占用问题
    本文详细探讨了在Linux系统中遇到的高Buff/Cache占用问题及其解决方案,提供了手动清除与定时任务自动化处理的方法。 ... [详细]
  • 查找数组中的重复元素
    问题描述:给定一个长度为n的数组,其中所有元素值位于0至n-1之间。数组中存在一些重复的数字,但具体哪些数字重复以及重复了多少次未知。本文章将探讨如何高效地找到数组中的任一重复数字。 ... [详细]
  • DOS基础命令详解
    本文介绍了DOS(磁盘操作系统)的基础命令,包括如何启动DOS环境、常用的文件和目录操作命令等,旨在帮助用户更好地理解和使用DOS命令行。 ... [详细]
  • 本文总结了在使用React Native开发过程中遇到的一些常见问题及其解决方法,包括配置错误、依赖问题和特定组件的使用技巧。 ... [详细]
  • Web3隐私协议Manta Network与区块链互操作性平台Axelar达成战略合作,共同推进跨链资产的隐私保护。 ... [详细]
  • 理解HTTP状态码及其应用
    本文详细解析了HTTP状态码的分类及常见代码的意义,帮助开发者和用户更好地理解和解决网络请求中遇到的问题。 ... [详细]
  • 本文记录了作者在尝试启用IIS的Gzip压缩功能时遇到的挑战,特别是当企业内部网络使用ISA服务器作为代理时的问题。文章详细描述了问题的发现过程、解决步骤以及最终的解决方案。 ... [详细]
  • 本文详细介绍了MySQL表分区的概念、类型及其在实际应用中的实施方法,特别是针对Zabbix数据库的优化策略。 ... [详细]
  • 深入解析Spring Boot项目的启动机制
    在Java后端开发中,Spring Boot框架以其简洁性和强大的功能受到了广泛欢迎。本文将探讨Spring Boot项目启动的核心——SpringApplication类及其run()方法的工作原理。 ... [详细]
  • 本文介绍了如何在现有Ceph集群中添加新节点以扩展存储容量,并确保在不中断服务的情况下完成这一操作。文章详细描述了新节点的安装配置步骤及数据重新平衡的方法。 ... [详细]
author-avatar
静净精时
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有