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

Java学习手册——第二篇面向对象程序设计

Java学习手册——第二篇面向对象

  • 1. 结构化程序设计
  • 2. 面向对象

第一章我们已经介绍了Java语言的基础知识,也知道他能干什么了,
那我们就从他的设计思想开始入手吧。
接触一个语言之前首先要知道他的大方向,设计思想是什么样的,
这样接触起来就知道基本原理,才能事半功倍。

1. 结构化程序设计

迪克斯特拉(E.W.dijkstra)在 1965 年提出结构化编程,摒弃了 goto 语句,而以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,为设计一些较大的软件打下了良好的基础。按照结构化编程的观点,任何算法功能都可以通过三种基本程序结构(顺序、选择和循环)的组合来实现。
结构化编程主要表现在以下三个方面:

  1. 自顶向下,逐步细化。将编写程序看成是一个逐步演化的过程,将分析问题的过程划分成若干个层次,每一个新的层次都是上一个层次的细化。
  2. 模块化。将系统分解成若干个模块,每个模块实现特定的功能,最终的系统由这些模块组装而成,模块之间通过接口传递信息。
  3. 结构化编码。根据已经细化的算法正确写出计算机程序。

典型的公式: 程序 = 数据结构 + 算法
结构化编程一般适用于底层的语言,比如:C语言。
他们的特点就是按部就班逐步细化,瀑布形式十分理性的编程。
在这里插入图片描述

2. 面向对象

面向对象程序设计(OOP)的发明者:奥利-约翰·达尔、克里斯汀·尼加德
1967年5月20日两位发明者在编程语言Simula67中提出的,然后影响了众多语言:Java、C#、Python等。。。
最重要的三大特性:
封装: 就是把数据属性和行为方法整合成一个整体,就可以当成一个整体的功能来使用。
继承: 这里就要提到类了,比如把人统称为人类,又可以按职业分成其他的子类。
多态: 可以通过重载的方式实现,不同的子类对相同的方法可以做不同的处理。
这里理解起来可能比较困难,刚一入门的时候还是不很适应,
当别人提起你是怎么抽象出属性和方法的?
这些黑话听得懵懵懂懂,但是经常练习就好了。
比如我们将人类根据职业抽象出老师、学生、程序员等,
然后里面的属性有:年龄、性别、籍贯(静态的数据)
方法就是动态功能:说话、行走、吃饭(有动作的行为)
在这里插入图片描述
大家可以多多练习一下:

  1. 什么是类?什么是对象?什么是实例?
  2. 以学生为实体,定义其属性和方法。

参考文档:
聊聊编程范式
Java面向对象的三大特征以及理解

http://www.lryc.cn/news/126770.html

相关文章:

  • Redis实战:Redis的安装及简单使用
  • Linux学习之初识Linux
  • 神经网络基础-神经网络补充概念-29-为什么使用深层表示
  • 2023最新水果编曲软件FL Studio 21.1.0.3267音频工作站电脑参考配置单及系统配置要求
  • 边缘计算:下一代计算模式的突破
  • 连接不上手机,adb devices为空:
  • vuex学习总结
  • 11. Docker Swarm(二)
  • 注册中心Eureka和Nacos,以及负载均衡Ribbon
  • php+tcpdf生成pdf:中文乱码
  • 【AI实战】BERT 文本分类模型自动化部署之 dockerfile
  • 深入理解 Flutter 图片加载原理 | 京东云技术团队
  • Spring Boot 支持多种环境,包括开发环境、测试环境、预发布环境和生产环境。
  • Ctfshow web入门 命令执行RCE篇 web29-web77 与 web118-web124 详细题解 持续更新中(预计8.18完成)~
  • 合宙Air724UG LuatOS-Air script lib API--wifiRil
  • python读取word/pdf文档,指定文字内容和图片
  • 零售行业供应链管理核心KPI指标(二) – 线上订单履行周期
  • VGG分类实战:猫狗分类
  • C++11并发与多线程笔记(3)线程传参详解,detach()大坑,成员函数做线程函数
  • 说几个常见的语法糖
  • Python文件操作与输入输出:从基础到高级应用
  • leetcode算法题--找出最安全路径
  • 神经网络基础-神经网络补充概念-34-正则化
  • idea打jar包
  • 民安汇智(第三方旅游服务暗访)开展旅游景区度假区明察暗访复核检查服务
  • 《游戏编程模式》学习笔记(六)单例模式 Singleton Pattern
  • 《Go 语言第一课》课程学习笔记(二)
  • 神经网络基础-神经网络补充概念-26-前向和反向传播
  • Gin路由组
  • 安防监控视频云存储平台EasyNVR通道频繁离线的原因排查与解决