Java学习笔记——第3篇
面向对象
结构化程序的任何一个结构都具有唯一的入口和唯一的出口,并且程序不会出现死循环。
虽然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篇的更多相关文章
- java学习笔记之基础篇
java选择语句之switch //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...
- Java学习笔记——第2篇
Java程序的基本规则 Java程序的组织形式:纯粹的面向对象的程序设计语言,所以Java程序必须以类的形式存在,类是Java程序的最小程序单位,Java程序不允许可执行语句.方法等成分独立存在,所有 ...
- Java学习笔记——第1篇
Java程序运行机制 Java程序要经过先编译,后解释两个步骤 编译型:高级语言源码 -->机器码(一次性) 生成可执行程序,脱离开发环境,在指定平台上运行.(C/C++/Objectiv ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 20145330第十周《Java学习笔记》
20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...
- 20145330第九周《Java学习笔记》
20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...
- 20145330第八周《Java学习笔记》
20145330第八周<Java学习笔记> 第十五章 通用API 通用API 日志:日志对信息安全意义重大,审计.取证.入侵检验等都会用到日志信息 日志API Logger:注意无法使用构 ...
- 20145330第七周《Java学习笔记》
20145330第七周<Java学习笔记> 第十三章 时间与日期 认识时间与日期 时间的度量 GMT(格林威治标准时间):现在不是标准时间 世界时(UT):1972年UTC出来之前,UT等 ...
- 20145330第六周《Java学习笔记》
20145330第六周<Java学习笔记> . 这周算是很忙碌的一周.因为第六周陆续很多实验都开始进行,开始要准备和预习的科目日渐增多,对Java分配的时间不知不觉就减少了,然而第十和十一 ...
随机推荐
- 将MySQL一张表的数据迁移到MongoDB数据库的Java代码示例
Java代码: package com.zifeiy.snowflake.handle.etl.mongodb; import java.sql.Connection; import java.sql ...
- 原生JavaScript贪吃蛇
在实例开发过程中还是能认识到很多不足的,并且加强了一些基础. 简单写一下制作过程: 1.创建画布 2.创建蛇和老鼠 坐标不能重叠 3.让蛇移动起来 4.添加死亡方法 5.添加转点坐标和方向 6.添加吃 ...
- Docker入门之docker-compose
参考:https://blog.51cto.com/9291927/2310444 一,Docker-compose简介 1,Docker-compose简介 Docker-Compose项目是Doc ...
- MultiDesk远程桌面连接
MultiDesk 是一个选项卡(TAB标签)方式的远程桌面连接 (Terminal Services Client),可以管理组远程桌面连接,更改连接端口. 功能特性 绿色软件,只有一个很小的可执行 ...
- 利用eclipse导入jar包到本地仓库
如果不也不想用mvn install xxxxxx 后面跟一大堆的东东,可以让eclipse替代完成导入,看下图 File------->Import 大功告成,可见eclipse还没有废掉,至 ...
- 网络I/O模型
事件驱动模型 与传统编程模式不同,事件驱动程序在启动之后,就在那等待,等待什么呢?等待被事件触发.传统编程下也有“等待”的时候,比如在代码块D中,你定义了一个input(),需要用户输入数据.但这与下 ...
- 【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的错误, ...
- 【HC89S003F4开发板】 6crc校验
HC89S003F4开发板crc校验 前言 第一次用有带crc的mcu 使用资料自带的demo @实现效果 通过PC向MCU发送5个8位数据,MCU返回CRC校验值 void main() { /** ...
- docker 实践七:docker-machine
本篇是关于 docker 三剑客中的 docker machine. 注:环境为 CentOS7,docker 19.03. docker-machine 是 docker 官方三剑客项目之一,它是一 ...
- go语言实现链式栈
haa哈哈== import "errors" var ( // ErrEmpty 栈为空 ErrEmpty = errors.New("stack is empty&q ...