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修改表名示例
首先,我们新建一个名为test_table的表: drop table if exists test_table; create table test_table select TABLE_SCHEM ...
- 最新CSS兼容方案
CSS兼容方案,让你的样式完美兼容各大浏览器,这个方案主要是用来解决Safari的,Opear是在测试的时候顺带试了一下,结果发现竟然也行,所以顺便也解决了. .e {/*FF OP*/ color: ...
- docker常用管理命令
本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: 容器生命周期管理 — docke ...
- 17点睛Spring4.1-@Conditional
17.1 @Conditional @Conditional为按照条件配置spring的bean提供了支持,即满足某种条件下,怎么配置对应的bean; 应用场景 当某一个jar包在classpath中 ...
- 【计算机视觉】SeetaFace Engine开源C++人脸识别引擎
SeetaFace Engine是一个开源的C++人脸识别引擎,它可以在不依赖第三方的条件下载CPU上运行.他包含三个关键部分,即:SeetaFace Detection,SeetaFace Alig ...
- mybatis xml动态语句写法
mapper.java: /** * @Description: 根据摄像机Id查询出入记录 * @Param: * name 姓名 * monitorId 布控ID * starttime 开始时间 ...
- 用pytorch1.0搭建简单的神经网络:进行回归分析
搭建简单的神经网络:进行回归分析 import torch import torch.nn.functional as F # 包含激励函数 import matplotlib.pyplot as p ...
- zblog常用到的几个标签介绍
文章归档 <divclass="function"id="divArchives"> <h3><#ZC_MSG028#>&l ...
- Django框架2——模板
django框架2--模板 直接将HTML硬编码到你的视图里却并不是一个好主意: 对页面设计进行的任何改变都必须对 Python 代码进行相应的修改. 站点设计的修改往往比底层 Python 代码的修 ...
- 05 IO流(三)——IO流标准流程
流程 选择源 选择合适的流 操作 关闭流:先打开的后关闭 演示 import java.io.File; import java.io.InputStream; import java.io.File ...