菜鸡的Java笔记 第八 - java 面向对象
面向对象的特点以及开发过程。
java中最大的特点是其支持面向对象编程设计思想。在面向对象之前广泛流传的是面向过程的编程思想,例如:C语言的开发就属于面向过程
如果要想更简单的去理解面向过程与面向对象的区别:如果说现在要生产自行车:
面向对象:不同的工厂生产不同的配件,而后合理的组装,这样的好处是所有的配件都统一的标准化的尺寸。如果出现了损坏,那么可以进行更新
面向过程:这个自行车自己自主开发,自主标准,当出现问题之后整体报废
所谓的面向对象编写如果按照今天的方式来理解:制定出操作的标准,而后依据标准去执行程序。
概念
⑴对象。
对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。[2]
⑵对象的状态和行为。
对象具有状态,一个对象用数据值来描述它的状态。
对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。
对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中[2]
⑶类。
具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。
类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。
类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。[2]
⑷类的结构。
在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。
①一般--具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。
②整体--部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。[2]
⑸消息和方法。
对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。[2]
类中操作的实现过程叫做方法,一个方法有方法名、返回值、参数、方法体。
>>>
面向对象的现在最为流行的 软件设计方式之一,但是在实际的软件设计环境之中,有一部分人是反对面向对象的,包括数据库也一样,有一部分是反对关系型数据库,反对SQL的。
对于软件开发模式有两种:面向过程,面向对象。
面向过程指的是只完成自己所需的操作,但是这种设计会缺少可维护性。
面向对象本质上来讲是一种组件化(模块化)的设计 。方便进行代码局部维护。但是这样的设计虽然适合维护,可是设计上的要求规范比较多。也就是说模块化的设计最为重要的是标准,以及整个项目的整体把控。
在面向概念里面实际上回分为一下几个特点:
封装型:保护内部的操作对外不可见,或隐私不被破坏;
继承型:在上一辈的基础上继续发展。
多态性:在一个可控的范围内状态可以发生转变
而在面向对象开发之中,有三个阶段:
OOA:面向对象分析;
OOD:面向对象设计;
OOP:面向对象编程。
如果要想对面向对象进行实际的编程,那么首先就需要知道面向对象能干什么,不能干什么同时记住一个核心点,面向对象对象设计的核心:标准
面向对象如果要进行学习,能够达到一下两点是最好的:
可以进行现实世界的抽象;
可以进行合理的类的功能设计。
>>>>>
面向对象是模块化的设计
面向对象的 主要特点:封装,继承,多态。
菜鸡的Java笔记 第八 - java 面向对象的更多相关文章
- Java笔记(八)
GUI: awt和swing: java.awt:Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能.属于重量级控件. javax.swing:在awt的基 ...
- Java进阶(十八)Java实现定时器(Timer)
Java实现定时器(Timer) 绪 在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等.对于这样的操作最方便.高效的实现方式就是使用java.util.Timer工具类.java.u ...
- 【Java笔记】配置文件java.util.Properties类的使用
配置文件的路径:项目名/src/main/resources/mmall.properties mmall.properties的内容是键值对.例如假设写了ftp服务器的一些信息. ftp.serve ...
- Java笔记12:Java对象排序
代码: import java.util.Arrays; import java.util.Comparator; class Person { private String name; privat ...
- java并发系列(八)-----java异步编程
同步计算与异步计算 从多个任务的角度来看,任务是可以串行执行的,也可以是并发执行的.从单个任务的角度来看,任务的执行方式可以是同步的,也可以是异步的. Runnable.Callable.Future ...
- 菜鸡的Java笔记 第四 - java 基础运算符
数学运算符,逻辑运算,三目运算,位运算 double d2 = 314e2; //采用科学计数法的写法,表示10的2次方.= 31400.0 代码写的越简单越好 简化运算符 代码:x=x+y 可以 ...
- 菜鸡的Java笔记 第二十三 - java 抽象类的概念
abstractClass 抽象类的概念 1.抽象类的基本定义 2.抽象类的使用原则 不会抽象类与接口,java = 没学 ...
- 菜鸡的Java笔记 第七 - java 数组
数组的基本概念 笔试中经常出现的试题或是问题 1.1 概念 数组指的是一组相关变量的集合 如果用最原始的方式定义100个变量的话没问题但是这些变量的关联实在 ...
- 菜鸡的Java笔记 第六 - java 方法
前提:现在所讲解的方法定义格式,只属于JAVA 方法定义的其中一种组成方式.而完整的组成方式将随着学习逐步渗透. 1.方法的基本定义 方法(Method)在一些书中也会有人将其说是 函数(Funct ...
随机推荐
- 【Golang】三个点(...)用法
众所周知,Go语言是严格类型语言,而开发的时候又遇到传入参数不定的情况,怎么办? 这里的三个点(-),就给我们编程人员带来很大的灵活性,具体如下 在Golang中,三个点一共会用在四个地方(话说三个点 ...
- 实现js读取Excel数据
如何通过js去读取excel中的数据 <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- Fastjson中getJSONObject()与getJSONArray()的使用
测试JSON串: { "package": { "List1": { "errorCode": "0", "e ...
- 使用tinypng对需要上传Gitee图床的图片进行压缩
目录 背景 Tinypng简介 Tinypng使用 手动上传图片 使用API 调用API自动上传超过1MB图片 安装tinyfy 自动上传脚本 其他 背景 在使用Gitee作为图床时(使用Typora ...
- Rvalue References
Rvalue References
- Windows系统安装Java步骤
今天学习到Burp Suite的使用,提示到安装Burp Suite需要安装Java环境. 于是乎,本弱鸡开启了漫长的Java环境安装之路~ 一.Java SE版本众多,在这里推荐下载Java1.8版 ...
- 【原创】Linux v4l2框架分析
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- 【数据结构与算法Python版学习笔记】图——最短路径问题、最小生成树
最短路径问题 概念 可以通过"traceroute"命令来跟踪信息传送的路径: traceroute www.lib.pku.edu.cn 可以将互联网路由器体系表示为一个带权边的 ...
- Git浅析
Git浅析 索引 Git的常用命令 GitHub的使用 Git版本创建和回退 Git的工作区和暂存区 Git分支管理 1-Git的常用命令 01.创建一个版本库--进入相应的目录 git init 可 ...
- 《Spring源码深度解析》学习笔记——Spring的整体架构与容器的基本实现
pring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块,如下图所示 这些模块被总结为以下几个部分: Core Container Core Container(核心容器)包含有C ...