关于java的面向对象

关于java的面向对象

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

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

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

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

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

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

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

3、两者差异

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

4、面向对象

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

5、面向对象的特征

  • 封装

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

  • 继承

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

  • 多态

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

6、认识论和代码

  • 要是从认识论的角度来看,是现有对象,后有类,比如先有人,后有的职业,老师分为一个类,医生分为一个类,IT分为一个类。
  • 对象,是具体的事物。
  • 类,是抽象,是对对象的抽象,例如把老师都抽象出来变成一个类。
  • 对象,在使用的时候需要new出来,比如我们创建了一个人的类叫Person,我们想拿其中一个人,把他变成老师,就需要new这个类,我们之前的学习种也有了解过。
  • 程序员最常说的玩笑话就是,你还没有对象(女朋友),那你就new一个出来🤣。
  • 代码运行的角度来考虑,是先有类,后有对象,类是对象的模板,需要雕刻它让它变成什么样子。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/613646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 发布订阅

目录 1.Redis Unsubscribe 命令 - 指退订给定的频道。简介语法可用版本: > 2.0.0返回值: 这个命令在不同的客户端中有不同的表现。 示例 2.Redis Subscribe 命令 - 订阅给定的一个或多个频道的信息。简介语法可用版本: > 2.0.0返回值: 接收到的信息 示例 3.Redis Pubsub …

【技能---labelme软件的安装及其使用--ubuntu】

文章目录 概要Labelme 是什么?Labelme 能干啥? Ubuntu20.04安装Labelme1.Anaconda的安装2.Labelme的安装3.Labelme的使用 概要 图像检测需要自己的数据集,为此需要对一些数据进行数据标注,这里提供了一种图像的常用标注工具——la…

13. C++ linux命令,查看端口占用,cpu负载,内存占用,如何发送信号给一个进程

linux命令: 查看端口占用:losf -i:端口号 、netstat -tunlp cpu负载: top、uptime 内存占用: free -m、vmstat -s、top 查看磁盘: df、du Linux命令netstat用过吗? Linux如何查看哪些进程占用的内存最多: ps aux tracetoute命令了解吗…

ChatSDK 全双工语音识别库

ChatSDK :是对AIUI的语音SDK封装,套餐费用最低在6万/年iflylib :是对原始msc的语音SDK封装,相对AIUI便宜很多baidulib :是对百度语音SDK封装,百度号称永久免费AIUITools :AIUI网络测试工具-折线图动态测试可持续观测 共同特点:实现了全双工语音识别iat、…

Camunda Spin

Spin 常用于在脚本中解析json或者xml使用,S(variable) 表示构造成Spin对象,通过prop(“属性名”)获取属性值,通过stringValue()、numberValue()、boolValue() 等对类型转换。 repositoryService.createDeployment().name("消息事件流程&…

web第一次作业

题1&#xff1a; <form action"#" method"post"><table><tr><td>用户名&#xff1a;</td><td><input type"text" name"UserName" maxlength"20" size"15"></td>…

NumPy 数据操作实用指南:从基础到高效(上)

简介&#xff1a; 本文介绍了使用 NumPy 进行数据操作的基本步骤&#xff0c;包括导入库、创建数组、基本操作等。通过实例演示了如何利用 NumPy 进行数组的创建、索引、切片、变形、级联和切割等操作&#xff0c;以及如何应用这些功能在图像处理中进行实际应用。 numpy get st…

C++之单例模式

C之单例模式 前言介绍1、单例模式是什么&#xff1f;1.1 实现单例模式的三个要点1.2 单例模式分类 2. 懒汉式2.1 懒汉实现&#xff1a;基础方法2.2 懒汉实现&#xff1a;基于单锁2.3 懒汉实现&#xff1a;基于双重检测锁2.4 懒汉实现&#xff1a;基于双重检测锁和资源管理2.4.1…

Javascript——vue下载blob文档流

<el-table-column label"操作" fixed"right" width"150" showOverflowTooltip><template slot-scope"scope"><el-button type"text" v-has"stbsd-gjcx-down" class"edit-button" click&…

Mac 远程到 windows/Linux 开发体验为什么这么差?

随着科技的发展&#xff0c;远程开发已经成为一种常见的开发方式&#xff0c;其中Mac远程到windows/Linux开发也得到了广泛的应用。然而&#xff0c;许多用户反映Mac远程到windows/Linux开发体验并不理想&#xff0c;存在诸多问题。本文将深入探讨这些问题&#xff0c;并分析其…

MySQL 从零开始:02 MySQL 安装

文章目录 1、下载 MySQL 安装程序2、安装 MySQL 要操作 MySQL &#xff0c;首先要安装 MySQL &#xff0c;本文将一步步展示如何安装 MySQL&#xff0c;简直详细到令人发指。 环境&#xff1a; 操作系统&#xff1a;Windows10 64位MySQL版本&#xff1a;社区版 8.0.11.0 1、下…

探索AI技术的奥秘:揭秘人工智能的核心原理

人工智能&#xff08;AI&#xff09;已经成为当今科技领域最引人注目的话题之一。然而&#xff0c;对于许多人来说&#xff0c;AI仍然是一个神秘的领域&#xff0c;不清楚其核心原理。本文将探索AI技术的奥秘&#xff0c;为读者揭开人工智能的核心原理。 随着技术的飞速发展&am…

Asynchronous FIFO and synchronous FIFO-翻译自外网

Synchronous FIFO 先进先出 (FIFO) 是一种非常流行且有用的设计块&#xff0c;用于模块之间的同步和握手机制。 FIFO 的深度&#xff1a; FIFO 中的槽数或行数称为 FIFO 的深度。 FIFO 的宽度&#xff1a;每个槽或行中可以存储的位数称为 FIFO 的宽度。 在同步 FIFO 中&…

6.2 声音编辑工具GoldWave5简介(1)

不管你的MP3歌曲的简单剪接或者音频格式的转换,还是更加高级的后期加工 GoldWave5都可以令你轻松胜,甚至你自己录一首卡拉OK,也可以经过GoldWave5的修饰成为像歌星一样水晶般的动人声音!除了附有许多的效果处理功能外&#xff0c;它还能将编辑好的文件存成WAV、AU、SND、RAW、A…

vue 公众号开发,调用jssdk封装

vue 公众号开发&#xff0c;经常会使用到 转发朋友&#xff0c;朋友圈&#xff0c;调用扫一扫等功能&#xff0c;这时就要使用微信的 jssdk 微信jssdk传送门 1. 安装jssdk 插件 (jweixin-module) npm install jweixin-module --save 2. 封装方法 utils/jwx.js let jweixin…

sqlilabs第四十九五十关

Less-49(GET - Error based - String Bind - ORDER BY CLAUSE) 手工注入 无回显(还是单引号闭合)&#xff0c;只能使用延时注入 自动脚本 和上一关一样 Less-50(GET - Error based - ORDER BY CLAUSE -numeric- Stacked injection) 手工注入 这里需要使用堆叠注入的思路 自…

Qt优秀开源项目之二十:RedPanda-CPP(小熊猫C++)

小熊猫C是跨平台、轻量易用的开源C/C集成开发环境。 官网&#xff1a;http://royqh.net/redpandacpp github&#xff1a;https://github.com/royqh1979/RedPanda-CPP 小熊猫C&#xff08;原名小熊猫Dev-C 7)是基于Qt开发的Dev-C替代版本。和经典的Dev-C 5.11、新的Embarcadero …

TDengine 签约积成电子

随着电力系统的复杂性和数据量不断增加&#xff0c;电力负荷、电压、频率等庞大的时序数据需要更高效的存储和处理能力&#xff0c;才能确保数据的可靠性和实时性。此外&#xff0c;电力系统还需要对实时数据进行快速分析和决策&#xff0c;以确保电网的稳定运行。然而&#xf…

openssl3.2 - 官方dmeo学习 - sconnect.c

文章目录 openssl3.2 - 官方dmeo学习 - sconnect.c概述笔记END openssl3.2 - 官方dmeo学习 - sconnect.c 概述 TLS客户端 - 使用根证书, 非阻塞, 向服务器要东西. 笔记 开始一个新demo学习时, 要从头配置包含路径, 麻烦. 直接拷贝上一个实现工程, 换掉实现.c方便一些. 换的…

(超详细)4-YOLOV5改进-添加ShuffleAttention注意力机制

1、在yolov5/models下面新建一个SE.py文件&#xff0c;在里面放入下面的代码 代码如下&#xff1a; import numpy as np import torch from torch import nn from torch.nn import init from torch.nn.parameter import Parameterclass ShuffleAttention(nn.Module):def __…