声明
本文章是本人在bilibili视频的学习笔记,视频地址清华大学java语言49讲(郑莉教授)
第二章内容
1.面向对象对象的程序设计方法概述
2.类和对象
3.对象初始化和回收
4.枚举类型
5.应用举例
6.UML简介
7.注解
8.本章小结
面向对象的程序设计
面向对象程序设计与结构化程序设计方法相比,更符合人类认识现实世界的思维方式,这已成为程序设计的主流方向
基本组成单位是类程序在运行时 由类生成的对象,对象是面向对象的核心,类是对同一类对象的统一设计
对象与对象之间,通过发送消息进行通信,相互协作完成相应的功能
主要概念
抽象
封装
继承
多态
对象
程序中一切都是对象,都具有标识(identity)属性和行为
通过一个或多个变量保存其状态
通过方法(method)实现他的行为
现实世界中,万物皆对象,各自具有自己的属性,对外界都呈现各自的行为
如果用面向过程的方法写程序,无法直接地模拟现实世界中的各种对象
类
(分类的思想)
(用分类的方法抽象出同一类对象的共性)
(抽象出需要的共性,忽略不需要)
将属性以及行为相同或相似的对象归为一类
在面向对象的程序设计中,每个对象都属于某个特定的类
结构化程序设计
通常由若干程序模块组成,每个程序模块都可以是子程序或者函数结构化程序设计中 数据和功能是分离的,这样代码维护,复用相对困难(对于复杂的项目会出现软件危机,升级维护非常困难)
现实世界中对象的 功能和数据不是分离的
抽象
忽略问题中与当前目标无关的方面,以便更充分地注意与当前目标相关的方面如钟表可以有各式各样,但基本功能可以表示,小时,分钟,秒
功能:
设置时间
显示时间
封装
1.定义清楚的边界
2.接口
3.受保护的内部实现
一种信息隐藏技术,它是利用抽象数据类型将数据和基于数据操作封装在一起
用户只能看到对象的封装界面信息,对象的内部细节对用户是隐藏的
只需要提供接口(消息机制)来访问对象
(目的:将使用者和设计者分开)
(目的2:为了安全性,实现细节,数据细节不公开)
(现实世界的对象也是封装的)
继承
(super class. basic class) 指新类可以获得已有类(或称超类,基类或父类)的属性和行为,称新类为已有类的派生类(也称子类) (sub class)在继承基础之上,增加新的功能,或者修改一些功能(修改原有方法,或增加方法)
作用1:
(程序的开发速度,效率更高)
作用2:
(解决软件可重用问题,结构清晰,降低编码和维护工作量)
继承方法和属性(实例变量)