面向对象的特点以及开发过程。
    java中最大的特点是其支持面向对象编程设计思想。在面向对象之前广泛流传的是面向过程的编程思想,例如:C语言的开发就属于面向过程
    如果要想更简单的去理解面向过程与面向对象的区别:如果说现在要生产自行车:
        面向对象:不同的工厂生产不同的配件,而后合理的组装,这样的好处是所有的配件都统一的标准化的尺寸。如果出现了损坏,那么可以进行更新
        面向过程:这个自行车自己自主开发,自主标准,当出现问题之后整体报废
    所谓的面向对象编写如果按照今天的方式来理解:制定出操作的标准,而后依据标准去执行程序。

    概念
        ⑴对象。
            对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。[2]
        ⑵对象的状态和行为。
            对象具有状态,一个对象用数据值来描述它的状态。
            对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。
            对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中[2]
        ⑶类。
            具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。
            类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。
            类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。[2]
        ⑷类的结构。
            在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。

            ①一般--具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。
            ②整体--部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。[2]
        ⑸消息和方法。
            对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。[2]
            类中操作的实现过程叫做方法,一个方法有方法名、返回值、参数、方法体。
>>>
    面向对象的现在最为流行的 软件设计方式之一,但是在实际的软件设计环境之中,有一部分人是反对面向对象的,包括数据库也一样,有一部分是反对关系型数据库,反对SQL的。

    对于软件开发模式有两种:面向过程,面向对象。
    面向过程指的是只完成自己所需的操作,但是这种设计会缺少可维护性。
    面向对象本质上来讲是一种组件化(模块化)的设计 。方便进行代码局部维护。但是这样的设计虽然适合维护,可是设计上的要求规范比较多。也就是说模块化的设计最为重要的是标准,以及整个项目的整体把控。

    在面向概念里面实际上回分为一下几个特点:
        封装型:保护内部的操作对外不可见,或隐私不被破坏;
        继承型:在上一辈的基础上继续发展。
        多态性:在一个可控的范围内状态可以发生转变

    而在面向对象开发之中,有三个阶段:
        OOA:面向对象分析;
        OOD:面向对象设计;
        OOP:面向对象编程。
    如果要想对面向对象进行实际的编程,那么首先就需要知道面向对象能干什么,不能干什么同时记住一个核心点,面向对象对象设计的核心:标准

    面向对象如果要进行学习,能够达到一下两点是最好的:
        可以进行现实世界的抽象;
        可以进行合理的类的功能设计。

>>>>>
    面向对象是模块化的设计
    面向对象的 主要特点:封装,继承,多态。

菜鸡的Java笔记 第八 - java 面向对象的更多相关文章

  1. Java笔记(八)

    GUI: awt和swing: java.awt:Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能.属于重量级控件. javax.swing:在awt的基 ...

  2. Java进阶(十八)Java实现定时器(Timer)

    Java实现定时器(Timer) 绪 在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等.对于这样的操作最方便.高效的实现方式就是使用java.util.Timer工具类.java.u ...

  3. 【Java笔记】配置文件java.util.Properties类的使用

    配置文件的路径:项目名/src/main/resources/mmall.properties mmall.properties的内容是键值对.例如假设写了ftp服务器的一些信息. ftp.serve ...

  4. Java笔记12:Java对象排序

    代码: import java.util.Arrays; import java.util.Comparator; class Person { private String name; privat ...

  5. java并发系列(八)-----java异步编程

    同步计算与异步计算 从多个任务的角度来看,任务是可以串行执行的,也可以是并发执行的.从单个任务的角度来看,任务的执行方式可以是同步的,也可以是异步的. Runnable.Callable.Future ...

  6. 菜鸡的Java笔记 第四 - java 基础运算符

    数学运算符,逻辑运算,三目运算,位运算 double d2 = 314e2; //采用科学计数法的写法,表示10的2次方.= 31400.0 代码写的越简单越好   简化运算符 代码:x=x+y 可以 ...

  7. 菜鸡的Java笔记 第二十三 - java 抽象类的概念

    abstractClass 抽象类的概念        1.抽象类的基本定义        2.抽象类的使用原则                不会抽象类与接口,java = 没学           ...

  8. 菜鸡的Java笔记 第七 - java 数组

    数组的基本概念     笔试中经常出现的试题或是问题    1.1 概念        数组指的是一组相关变量的集合         如果用最原始的方式定义100个变量的话没问题但是这些变量的关联实在 ...

  9. 菜鸡的Java笔记 第六 - java 方法

    前提:现在所讲解的方法定义格式,只属于JAVA 方法定义的其中一种组成方式.而完整的组成方式将随着学习逐步渗透. 1.方法的基本定义 方法(Method)在一些书中也会有人将其说是  函数(Funct ...

随机推荐

  1. Css预编译(Sass&&Less)

    目录 Less与Sass是css的预处理技术 而CoffeeScript.TypeScript则是javascript的预处理技术. Less与Sass是css的预处理技术 而CoffeeScript ...

  2. EF Core Sequence contains no elements

    一.在.Net Core中使用Ef的聚合函数报错: 类似函数: 1,使用FirstOrDefault() 来代替 First() 2.使用SingleOrDefault 来代替 Single 3.使用 ...

  3. Zookeeper的选举机制和同步机制超详细讲解,面试经常问到!

    前言 zookeeper相信大家都不陌生,很多分布式中间件都利用zk来提供分布式一致性协调的特性.dubbo官方推荐使用zk作为注册中心,zk也是hadoop和Hbase的重要组件.其他知名的开源中间 ...

  4. typora博客笔记上传图片时不能显示

    前言 markdown具有轻量化.易读易写等特性,并且对于图片.超链接.图片.数学公式都有支持. 但是最近在使用Typora的过程中我发现,在写文章笔记的时候导入的图片,因为图片保存在我们电脑本地,当 ...

  5. 告别Vuex,发挥compositionAPI的优势,打造Vue3专用的轻量级状态

    Vuex 的遗憾 Vuex 是基于 Vue2 的 option API 设计的,因为 optionAPI 的一些先天问题,所以导致 Vuex 不得不用各种方式来补救,于是就出现了 getter.mut ...

  6. 【UE4 C++ 基础知识】<6> 容器——TMap

    概述 TMap主要由两个类型定义(一个键类型和一个值类型),以关联对的形式存储在映射中. 将数据存储为键值对(TPair<KeyType, ValueType>),只将键用于存储和获取 映 ...

  7. spring security中动态更新用户的权限

    在程序的执行过程中,有时有这么一种需求,需要动态的更新某些角色的权限或某些人对应的权限,当前在线的用户拥有这个角色或拥有这个权限时,在不退出系统的情况下,需要动态的改变的他所拥有的权限. 需求:张三 ...

  8. 扩展spring data jpa的repository

    在我们编写代码的过程中,spring data jpa为我们的持久层提供的极大的方便,但有时spring data jpa提供的repository并不能完全满足我们开发的需求,因此就需要进行扩展.s ...

  9. 大厂面试题系列:重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分

    面试题:重载(Overload)和重写(Override)的区别.重载的方法能否根据返回类型进行区分 面试官考察点猜想 这道题纯粹只是考查基础理论知识,对实际开发工作中没有太多的指导意义,毕竟编辑器都 ...

  10. VS2017+QT5.12.10+QGIS3.16环境搭建及开发全流程

    题记:大力发展生产力,助力高效采集.(转载请注明出处https://www.cnblogs.com/1024bytes/p/15477374.html) 本篇随笔分为五个部分: 一.获取QGIS3.1 ...