[ XJTUSE ]JAVA语言基础知识——第一章 面向对象程序设计思想

这篇具有很好参考价值的文章主要介绍了[ XJTUSE ]JAVA语言基础知识——第一章 面向对象程序设计思想。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.1 类与对象

  1. 类描述了一组有相同特性(属性)和相同行为(方法)的对象,类和对象是面向对象思想的两个核心概念

    · 人类是一种类,每一个具体的人则是这个类的对象

  2. 用面向对象程序来模拟真实世界

    1. 发现并创建类
    2. 发现类的特征
    3. 发现类的行为
  3. 在面向对象程序中,对象的特征由各种数据类型整组合在一起,行为用方法表述出来(函数在Java中称为方法),两种表述组合在一起,用Java提供的一种**抽象的数据类型——类(class)**表示

1.2 面向对象程序设计的三大特征

三大特征:封装、继承、多态

  1. 封装

    • 封装就是将对象的数据和基于数据的操作封装成一个独立性很强的模块
    • 将对象不需要对外提供的私有数据和私有操作隐藏起来
    • 外界要访问封装的数据—>依靠对象将某些操作公有化,在类中定义为对外的公共接口
  2. 继承

    • 继承是在当前类的基础上创建新类,并在其中添加新的属性和功能
    • 继承是实现代码复用的主要方式
  3. 多态

    • 多态即在一个继承关系的程序中允许同名的不同方法共存
    • 多态是以继承为前提的
    • 多态的引入使程序能够在继承的基础上进一步实现变异,增强其可扩展性

1.3 面向对象的程序设计

面向对象软件开发的几个基本流程

  1. 面向对象需求分析(Object Oriented Analysis, OOA)

  2. 面向对象设计(Object Oriented Design, OOD)

  3. 面向对象编程(Object Oriented Programming, OOP)

1.3.1 类的建模

UML的主要类图
图名 说明
类图 表示类之间的关系
对象图 表示特定对象之间的关系
时序图 表示对象之间在时间上的通信
协作图 按照时间和空间顺序表示对象之间的焦糊和它们之间的关系
状态图 表示对象的状态和响应
用例图 表示程序用户如何和程序交互
活动图 表示系统元素的活动
组件图 表示实现系统的组件的组织
配置图 表示环境的配置

1.3.2 类的层次结构设计

类与类之间的关系包括泛化(就是继承关系)、依赖、关联、聚合、组合

1.3.3 面向对象程序设计原则

  • 单一责任原则

    • 让一个类尽可能地承担一种责任,只执行单一的功能
    • 按功能而不是按照过程
  • 开放—封闭原则

    • 对类的扩展采取开放的方式,而更改采取封闭的方式
    • 高内聚,低耦合
  • 依赖倒转原则

    • 高层模块不依赖于底层模块。二者都依赖抽象,不依赖于实现,无论是什么样的系统(低层模块),通过接口都可以与高层模块通信
  • 里氏代换原则文章来源地址https://www.toymoban.com/news/detail-412236.html

    • 子类类型能够被其父类类型替换,体现了多态机制实现的基础——向上转换机制

到了这里,关于[ XJTUSE ]JAVA语言基础知识——第一章 面向对象程序设计思想的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue 3 第三十一章:状态管理(Pinia基础知识)

    状态管理是现代 Web 应用开发中的一个重要概念。Vue 3 中的状态管理库 Pinia ,是一个基于 Vue 3 Composition API 的状态管理库,它提供了一种 简单 、 灵活 的方式来管理应用程序的状态,同时还具有 高性能 和 可扩展性 。 Pinia 在某种程度上来说,也可以被叫做 Vuex5 ,因为它结合

    2024年02月07日
    浏览(26)
  • 第一篇 FPGA基础知识

    FPGA的全称为Field-ProgrammableGateArray,即现场可编程门阵列。 在开始学习FPGA之前,同学们首先应该清楚地了解FPGA的概念,明白FPGA到底是什么东西,可以用来做什么。FPGA是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物,是作为专用集成电路(ASIC)领域中的一种半定制

    2024年02月07日
    浏览(39)
  • 【蓝桥杯备赛Java组】第一章·语言基础|竞赛常用库函数|输入输出|String的使用|常见的数学方法|大小写转换

    🎥 个人主页:深鱼~ 🔥收录专栏:蓝桥杯 🌄欢迎 👍点赞✍评论⭐收藏 目录 一、编程基础 1.1 Java类的创建  1.2 Java方法  1.3 输入输出  1.4 String的使用 二、竞赛常用库函数 1.常见的数学方法 2.大小写转换 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,

    2024年01月19日
    浏览(28)
  • 【软件测试】基础知识第一篇

    软件测试就是验证软件产品特性是否满足用户的需求 。 那需求又是什么呢?在多数软件公司,会有两种需求,一种是用户需求,一种是软件需求: 用户需求 :可以简单理解为甲方提出的需求,该需求一般比较简略 软件需求 :或者叫功能需求,该需求会详细描述开发人员必

    2023年04月14日
    浏览(29)
  • 【STM32】基础知识 第一课 单片机简介

    单片机 (Single-Chip Microcomputer) 单品微型计算机, 是一种集成电路芯片. 电脑 vs 单片机: 电脑 单片机 CPU CPU 内存 SRAM 硬盘 Flash 主板 外设 SRAM 静态随机读取器 (Static Random-Access Memory): SRAM 是随机存储器的一种, 属于静态数据, 这类存储器要是维持电源, 里面存储的信息就可以恒常维持

    2024年02月11日
    浏览(20)
  • Python库第一课:基础Numpy知识(下):矩阵

            好的,我们今天继续来学习Numpy的基础,昨天,已经介绍完Numpy的成员之一——数组,今天,在接着介绍其另一大成员——矩阵,也是应用非常广泛的成员。         矩阵,在线性代数中是几乎贯穿全文的成员,因此,这里需要较高的线性代数的基础。在这里,默认

    2024年02月03日
    浏览(21)
  • 详解TCP/IP协议第一篇:网络基础知识

    😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783824   📚📚  工作微信:BigTreeJava 拉你进微信群,免费领取! 🍎🍎4:本文章内容出自上述:Spring应用课程!💞💞

    2024年02月09日
    浏览(26)
  • 探究 ChatGPT 的心脏--Transformer(基础知识第一篇)

                     Transformer 是 ChatGPT 的核心部分,如果将 AI 看做一辆高速运转的汽车,那么 Transformer 就是最重要的引擎。它是谷歌于 2017 年发表的《Attention is All You Need》中提出的 Sequence-to-sequence 的模型,诞生之后便一统江湖,在 NLP, CV, Audio, Video 多个模态领域成为了

    2024年04月12日
    浏览(19)
  • 零基础玩转C语言第一章—分支语句

    大家好,我是深鱼~ 目录 前言: 1.什么是语句? 2.分支语句(选择结构) 2.1if语句 2.1.1悬空的else 2.1.2if书写形式的对比 2.1.3练习 2.2switch语句  2.2.1在switch语句中的break和default语句 2.2.2练习 结语:彼方尚有荣光在,少年不惧岁月长 今天我们来重点来学习分支语句的相关内容,

    2024年02月15日
    浏览(23)
  • 计算机网络之TCP/IP协议第一篇:网络基础知识

    😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783824   📚📚  工作微信:BigTreeJava 拉你进微信群,免费领取! 🍎🍎4:本文章内容出自上述:Spring应用课程!💞💞

    2024年02月09日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包