孙卫琴著《Java面向对象编程》学习笔记
更新时间:2024-05-30 20:21:01 阅读量: 综合文库 文档下载
面向对象编程思想 语法
Java虚拟机执行程序的原理 项目运用 设计模式 性能优化
? 熟悉Java语法,熟练地编译和调试程序。
? 按照面向对象的思想来快速理解JDK类库及其他第三方提供的类库,通过阅读JavaDoc
和相关文档,知道如何正确地使用这些类库。
? 按照面向对象的思想来分析问题领域,设计对象模型。
? 在开发过程中运用现有的一些优秀设计模式,提高开发效率。 ? 当一个方法有多种实现方式时,能够从可维护、可重用及性能优化的角度选择最佳的实
现方式。
? 理解Java虚拟机执行Java程序的原理,从而更深入地理解Java语言的各种特性和
语法规则。
软件开发生命周期: 软件分析 软件设计 软件编码 软件测试 软件部署 软件维护
软件开发效率: 可重用性 可扩展性 可维护性
结构化开发:
SA:Structure Analysis SD:Structure Design
SP:Structure Programming
DFD:Data Flow Diagram 数据流图
结构化开发中,方法是最小的子系统; 面向对象开发中,对象是最小的子系统。
建立对象模型:自底向上的抽象 + 自顶向下的分解
抽象:问题 –> 对象 -> 类 -> 父类
? 把 问题领域中的事物 抽象为 具有特定属性和行为的对象 ? 把 具有相同属性和行为的对象 抽象为 类
? 若多个类之间存在一些 共性(具有相同属性和行为),把这些共性抽象到 父类 中
UML:Unified Modeling Language 统一建模语言 Rational Rose 可视化建模工具:用于绘制UML图
万物皆为对象 对象具有唯一性
对象具有属性和行为(成员变量和成员方法) 对象具有状态(即属性取值) 对象都属于某个类
Java虚拟机是Java程序的解析器和执行器
Java虚拟机提供的运行环境中,保证每个对象唯一性的手段是为它在内存中分配唯一的地址
对象模型中的类可以看做是开发人员自定义的数据类型,Java虚拟机的运行时环境 封装了 将自定义数据类型映射到计算机内置数据类型的过程。这使得开发人员不受计算机内置数据类型的限制,对于任意一种问题领域,都可以方便地根据 先识别对象,再进行分类(创建任意的数据类型)的思路 来建立对象模型。
每个对象都是服务提供者,对象通过 接口 对外提供服务 Java语言中,接口有两种意思:
? 指概念性的接口,在对象中表现为public类型的方法的声明 ? 指用interface关键字定义的实实在在的接口(接口类型),它用于明确地描述系统对
外提供的所有服务,更清晰地将系统的实现细节与接口分离
封装:隐藏对象的属性和实现细节,仅对外公开接口
面向对象的编程语言主要通过 访问控制机制 来进行封装,有效控制对象的属性和方法的可访问性: ? Public
? Protected 只对同一个包中的类或子类公开 ? 默认 只对同一个包中的类公开 ? Private 只能在对象内部访问
封装原则:所有属性private;尽可能对外提供简洁接口 Java语言中,抽象有两种意思:
? 当抽象作为动词时,指抽象思维过程
如:从子类到父类的抽象。
不同子类具有相同功能,且功能实现方式一样,将功能放在父类中实现;
不同子类具有相同功能,但功能实现方式不一样,父类中仅声明此功能,但不提供具体实现(多态、动态绑定)。
? 当抽象作为形容词时,用来修饰类和方法
abstract修饰方法,表明此方法没有具体的实现; abstract修饰类,表明此类不能被实例化。
继承、扩展、覆盖
通用软件架构提供专门让用户继承和扩展的类,用户只需创建这些类的子类,在子类中扩展或覆盖实现某些功能,保证自定义的子类能顺利与软件架构中其他类协作即可。
Java领域主流架构软件:
? J2EE 分布式分层 企业应用软件架构(Sun) ? Struts JavaWeb应用通用框架(Apache) ? JSF JavaWeb应用界面通用框架(Sun) ? Spring 企业应用服务层通用框架(Spring)
J2EE架构
? JavaWeb层扩展点:Servlet类和JSP ? 应用服务层扩展点:EJB组件
? 企业应用分为客户层、JavaWeb层、应用服务层、数据库层 Structs架构
? MVC(Model-View-Controller)设计模式 ? 控制器层扩展点:Action类
Servlet是J2EE架构在JavaWeb层的扩展点,通过这个扩展点,开发人员能方便地在JavaWeb层添加与特定问题领域相关的服务。Servlet是供用户扩展的组件,运行在Servlet容器中。Servlet容器负责接收并响应Web客户的HTTP请求,Servlet负责提供所请求的特定服务。
开发JavaWeb应用时,可以选择第三方提供的Servlet容器(如Tomcat),开发人员的主要任务是扩展javax.servlet.http.HttpServlet接口,创建能提供特定服务的Servlet子类。将自定义的Servlet类发布到Servlet容器中,Servlet容器就能与这些Servlet协作,Servlet容器根据Web客户的请求,调用相关Servlet对象的方法来响应请求。
类之间的关系:
? 关联:类A与类B的实例之间存在特定的对应关系 ? 依赖:类A访问类B提供的服务
? 聚集:类A为整体类,类B为局部类,类A的对象由类B的对象组合而成 ? 泛化:类A继承类B
? 实现:类A实现了B接口
//从控制台读取用户输入形状类型
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
int shapeType=Integer.parseInt(input.readLine());
----------------------------------------------------------------------- private static Properties shapes=new Properties();
static{ try{
InputStream
in=ShapeFactory.class.getResourceAsStream(\);
shapes.load(in); //把配置信息加载到shapes对象中
}catch(IOException e){throw new RuntimeException(e);} }
----------------------------------------------------------------------- try{
//获得与形状类型匹配的形状类名
String className=(String)shapes.get(String.valueOf(type)); //运用Java反射机制构造形状对象
return (Shape)Class.forName(className).newInstance(); }catch(Exception e){return null;}
Java源文件结构: ? 包声明语句 ? 包引入语句 ? 类的声明 ? 接口声明
Package Statement Import Statement Class Declaration
Interface Declaration
源文件可定义多个类或接口,至多只有一个是public类型,以public类名对文件命名。
Java基本包: java.lang java.awt java.io java.util java.net
Thread、Exception、System、Integer、String 自动引入 Abstract Window ToolKit GUI界面类、绘图类 FileInputStream、FileOutputStream Date、Collection
Socket类、URL 支持TCP/IP网络协议,用于网络编程
else:java.sql、java.rmi、javax.swing、javax.sound
import语句不会导致类的初始化,即Java虚拟机不会将包中的类加载到内存中并初始化。
JDK:Java虚拟机、JDK类库、开发工具
用JDK管理Java应用
? 目录结构 src、classes、lib、doc、doc/api、deploy ? 编译 javac.exe ? 运行 java.exe ? 发布 jar.exe
运行:类加载->字节码检验->解析->执行指令
JVM提供了程序运行时环境,其中最重要的一个资源是运行时数据区。
运行时数据区是操作系统为JVM进程分配的内存区域,JVM将该区域划分为多个子区域: ? 堆区 存放对象
? 方法区 存放类的类型信息(静态变量和方法信息等) ? Java栈区
? 类加载
运行程序->启动JVM进程->进程从classpath中找到.class文件,读取.class文件中的二进制数据,将类的类型信息存放到运行时数据区的方法区中。 ? 类验证及初始化
正在阅读:
孙卫琴著《Java面向对象编程》学习笔记05-30
2019年广西省桂林高中名校高三上学期第三次月考理科数学试卷(含解析)01-04
2010年辽宁省数据总结深入05-12
工程造价-外文翻译11-02
市民教育06-26
2022年事业单位年度考核个人总结范例与2022年事业单位年终工作总04-20
广东省小学信息技术三年级(上册)全册教案04-29
2015年锅炉原理模拟试卷210-22
海洋浮游生物竞争11-26
干部提拔任用考核材料02-08
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 面向
- 对象
- 编程
- 笔记
- 学习
- 卫琴著
- Java
- 现代大学英语精读2 lesson one 课后答案
- 皖农牧函2010343号
- 形式逻辑最全期末复习资料
- 第二十二届运动会秩序册
- 建筑施工企业合同管理的问题与对策
- 毕业设计--土木工程 02 - 图文
- 2010级华东理工大学文献检索答案
- 专题3-4 插值与拟合+数值微分积分
- 苏教版初一下学期英语期中错题集
- 加热炉温度控制系统设计-卢雨生
- 市文广新局廉政风险点及防控措施
- 中国京二胡市场态势调研与发展动向研究报告(2014-2019)
- 上帝的管教
- 国家开放大学历届《合同法》考试试卷及答案
- 半导体物理习题与问题
- 布袋注浆桩施工- 中铁十一局集团有限公司
- 思科第一学期考试试卷1
- 分析化学习题
- 票据调研报告
- 南京理工大学博士、硕士学位论文撰写格式(2014版)讲解