面向对象

结构化程序的任何一个结构都具有唯一的入口和唯一的出口,并且程序不会出现死循环。

虽然Java是面向对象的,但Java的方法里则是一种结构化的程序流。

面向对象的基本思想:类、对象、继承、封装、消息……

采用面向对象方式开发的软件系统,其最小的程序单元是类,这些类可以生成系统中的多个对象。

面向对象的语言不仅使用类来封装一类事物的内部状态数据,,还会提供操作这些状态数据的方法。

成员变量(状态数据)+方法(行为)=类定义

面向对象方法具有三个基本特征:封装、继承、多态

封装:将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能;

继承:面向对象实现软件复用的重要手段,当子类继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法。

多态:多态指的是子类对象可以直接赋值给父类变量,但运行时依然表现出子类的行为特征,这意味着同一个类型的对象在执行同一个方法时,可能表现出多种行为特诊。

抽象也是面向对象的重要部分

由于多继承可能引起继承结构的混乱,而且会大大降低程序的可理解性,所以Java不支持多继承

“基于对象”≠“面向对象”

基于对象也使用了对象,但是无法利用现有的对象模板产生新的对象类型,继而产生新的对象。JavaScript语言就是基于对象的,它使用一些封装好的对象,调用对象的方法,设置对象的属性,但是他们无法让开发者派生新的类,开发者只能使用现有对象的方法和属性。

UML(统一建模语言)介绍

面向对象软件开发需要经过:OOA(目标系统分析,建立分析模型) /OOD(用面向对象的思想细化OOA的结构)/ OOP(编程)

uml是用来描述、记录OOA 和OOD结果的符号表示法。

最常用的UML图包括:用例图,类图,组件图,部署图,顺序图,活动图和状态机图等。

Java的面向对象特征

一切都是对象

在Java语言中,除八个基本数据类型值之外,一切都是对象,而对象就是面向对象程序设计的中心。

对象具有状态,一个对象用数据值来描述它的状态。

对象还具有操作,这些操作可以改变对象的状态,也称之为行为。

Java语言不允许直接访问对象,而是通过对对象的引用来操作对象。

类和对象

类是对一类事物的描述,是抽象的,概念上的定义。

对象是实际存在的该类事物的个体,因此也称为实例

对象的抽象化就是类,类的具体化就是对象。

Java语言使用class关键字定义类,定义类时可使用成员变量来描述该类对象的数据,可使用方法来描述该类对象的行为特征。

类间关系:

①一般→特殊关系(典型的继承关系,Java中使用extends关键字来表示这种继承关系,is a

②整体→部分结构关系(组装结构,典型的组合关系,Java通过在一个类里保存另一个对象的引用来实现这种组合关系,has a

Java学习笔记——第3篇的更多相关文章

  1. java学习笔记之基础篇

    java选择语句之switch   //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...

  2. Java学习笔记——第2篇

    Java程序的基本规则 Java程序的组织形式:纯粹的面向对象的程序设计语言,所以Java程序必须以类的形式存在,类是Java程序的最小程序单位,Java程序不允许可执行语句.方法等成分独立存在,所有 ...

  3. Java学习笔记——第1篇

    Java程序运行机制 Java程序要经过先编译,后解释两个步骤 编译型:高级语言源码 -->机器码(一次性)    生成可执行程序,脱离开发环境,在指定平台上运行.(C/C++/Objectiv ...

  4. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  5. 20145330第十周《Java学习笔记》

    20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...

  6. 20145330第九周《Java学习笔记》

    20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...

  7. 20145330第八周《Java学习笔记》

    20145330第八周<Java学习笔记> 第十五章 通用API 通用API 日志:日志对信息安全意义重大,审计.取证.入侵检验等都会用到日志信息 日志API Logger:注意无法使用构 ...

  8. 20145330第七周《Java学习笔记》

    20145330第七周<Java学习笔记> 第十三章 时间与日期 认识时间与日期 时间的度量 GMT(格林威治标准时间):现在不是标准时间 世界时(UT):1972年UTC出来之前,UT等 ...

  9. 20145330第六周《Java学习笔记》

    20145330第六周<Java学习笔记> . 这周算是很忙碌的一周.因为第六周陆续很多实验都开始进行,开始要准备和预习的科目日渐增多,对Java分配的时间不知不觉就减少了,然而第十和十一 ...

随机推荐

  1. 将MySQL一张表的数据迁移到MongoDB数据库的Java代码示例

    Java代码: package com.zifeiy.snowflake.handle.etl.mongodb; import java.sql.Connection; import java.sql ...

  2. 原生JavaScript贪吃蛇

    在实例开发过程中还是能认识到很多不足的,并且加强了一些基础. 简单写一下制作过程: 1.创建画布 2.创建蛇和老鼠 坐标不能重叠 3.让蛇移动起来 4.添加死亡方法 5.添加转点坐标和方向 6.添加吃 ...

  3. Docker入门之docker-compose

    参考:https://blog.51cto.com/9291927/2310444 一,Docker-compose简介 1,Docker-compose简介 Docker-Compose项目是Doc ...

  4. MultiDesk远程桌面连接

    MultiDesk 是一个选项卡(TAB标签)方式的远程桌面连接 (Terminal Services Client),可以管理组远程桌面连接,更改连接端口. 功能特性 绿色软件,只有一个很小的可执行 ...

  5. 利用eclipse导入jar包到本地仓库

    如果不也不想用mvn install xxxxxx 后面跟一大堆的东东,可以让eclipse替代完成导入,看下图 File------->Import 大功告成,可见eclipse还没有废掉,至 ...

  6. 网络I/O模型

    事件驱动模型 与传统编程模式不同,事件驱动程序在启动之后,就在那等待,等待什么呢?等待被事件触发.传统编程下也有“等待”的时候,比如在代码块D中,你定义了一个input(),需要用户输入数据.但这与下 ...

  7. 【Webservice】2 counts of IllegalAnnotationExceptions Two classes have the same XML type name

    在使用客户端调用服务端的时候发生了2 counts of IllegalAnnotationExceptions Two classes have the same XML type name的错误, ...

  8. 【HC89S003F4开发板】 6crc校验

    HC89S003F4开发板crc校验 前言 第一次用有带crc的mcu 使用资料自带的demo @实现效果 通过PC向MCU发送5个8位数据,MCU返回CRC校验值 void main() { /** ...

  9. docker 实践七:docker-machine

    本篇是关于 docker 三剑客中的 docker machine. 注:环境为 CentOS7,docker 19.03. docker-machine 是 docker 官方三剑客项目之一,它是一 ...

  10. go语言实现链式栈

    haa哈哈== import "errors" var ( // ErrEmpty 栈为空 ErrEmpty = errors.New("stack is empty&q ...