关于java的面向对象

关于java的面向对象

我们在前面的文章中,学习到了java的基础知识。类,变量,方法,数组等,我们本篇文章来了解一下,java的面向对象,也是java比较核心的存在😊

1、面向过程的思想(线性思维)

  • 步骤清晰简单,第一步做什么,第二步做什么...
  • 面对过程适合处理一些比较简单的问题。

2、面向对象的思想(分类思维)

  • 物以类聚,分类的思维模式,思考问题首先要会解决问题需要哪些分类,然后对这些分类进行单独的思考。
  • 最后,才对某个分类下的细节进行面向过程的思索。
  • 面向对象,适合处理比较复杂的问题,适合处理需要多人协助的问题!

对于描述复杂的事务,为了从宏观上把握,从整体上进行合理的分析,我们需要使用面向对象的思路,来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。

属性+方法,会变成一个类

3、两者差异

  • 面向过程是一个线性思维,就好比我们早上起床,吃早饭,去上学上班。
  • 面向对象是一个分类思维,比如我们要建造一栋楼,首先要找施工方,然后去找工程师,再分配到干活的工人,再分配具体的工作内容等。
  • 所以在写代码的时候,技术能力是必不可少的,但是逻辑思维能力一定要缜密,多去思考,多去分解,大问题分成小问题,小问题去考虑细节等因素,比如我们到一个工厂里面,想给厂子上一套数字化管理系统,用来减少工人的操作,保证数据的精准性,我们就需要思考,生产的过程,如何去用代码实现,如何设计系统流程,功能等😀,把现实的东西抽象化,就是程序的意义。
  • 面向对象和面向过程不可分割,一个是框架,一个是流程。

4、面向对象

  • 面向对象编程(Object-Oriented Programming,简称OOP)
  • 面向对象编程的本质:以类的方式组织代码,以对象封装数据
  • 抽象:比如我们要开发一个学生成绩管理系统,有好多个学生,我们只需要知道,学生的学号,班级,姓名和成绩,但是因为学生人数很多,我们要把共同的信息抽取出来,这个过程就叫做抽象(抽像🤣)。

5、面向对象的特征

  • 封装

    把数据包装起来,比如我们过年收到红包,然后把钱取出来放到保险箱中,这个就是封装,但是要留一个密码自己可以取出来,我们封装了数据,也要可以拿出来用。

  • 继承

    比如我们生活中,儿子和父亲的关系,儿子会继承父亲的东西,比如家业等,代码中,我们会有一个子类,一个父类,通过继承,子类就可以得到父类的所有东西。

  • 多态

    同一个事务,会有多种形态,就好比,学习这个方法是人创造的,但是人也分很多种,A通过学习,取得了好的成绩,但是B通过学习,没有取得好成绩,都是运用了学习的方法,但是最后得到的结果是不同的。也有很多像这种方式的游戏,主线只有一个,但是结局可能会有很多个。

6、认识论和代码

  • 要是从认识论的角度来看,是现有对象,后有类,比如先有人,后有的职业,老师分为一个类,医生分为一个类,IT分为一个类。
  • 对象,是具体的事物。
  • 类,是抽象,是对对象的抽象,例如把老师都抽象出来变成一个类。
  • 对象,在使用的时候需要new出来,比如我们创建了一个人的类叫Person,我们想拿其中一个人,把他变成老师,就需要new这个类,我们之前的学习种也有了解过。
  • 程序员最常说的玩笑话就是,你还没有对象(女朋友),那你就new一个出来🤣。
  • 从代码运行的角度来考虑,是先有类,后有对象,类是对象的模板,需要雕刻它让它变成什么样子。
相关推荐
SamDeepThinking17 分钟前
并发量就算只有2,该上锁还得上呀
java·后端·架构
Alice-YUE29 分钟前
【js高频八股】防抖与节流
开发语言·前端·javascript·笔记·学习·ecmascript
Sam_Deep_Thinking33 分钟前
如何让订单系统和营销系统解耦
java·架构·系统架构
云泽80833 分钟前
C++11 核心特性全解:列表初始化、右值引用与移动语义实战
开发语言·c++
froginwe111 小时前
DOM 加载函数
开发语言
lzhdim1 小时前
SQL 入门 12:SQL 视图:创建、修改与可更新视图
java·大数据·服务器·数据库·sql
Hello eveybody1 小时前
介绍一下背包DP(Python)
开发语言·python·动态规划·dp·背包dp
AI进化营-智能译站1 小时前
ROS2 C++开发系列12-用多态与虚函数构建可扩展的ROS2机器人行为模块
开发语言·c++·ai·机器人
iCxhust1 小时前
微机原理实践教程(C语言篇)---A002流水灯
c语言·开发语言·单片机·嵌入式硬件·51单片机·课程设计·微机原理
FQNmxDG4S2 小时前
Maven依赖管理:版本冲突解决与生命周期控制
java·数据库·maven