索迪教育
Java编程技术基础第一章 面向对象原理与实现索迪教育我们的目标
了解软件危机
了解面向过程的软件设计方法
了解面向对象的软件设计方法
熟悉面向对象系统的基本概念
了解 Java 程序的基本设计方法索迪教育
IT 技术的发展与软件危机
随着计算机硬件技术的飞速发展,计算机的容量、速度迅速提高,计算机取得了越来越广泛的应用,这就对软件开发提出了更高的要求
然而软件技术的进步却远远滞后于硬件技术的进步,
人们常常无法控制软件开发的周期和成本,软件的质量总是不尽人意,经常是用之不灵、弃之可惜,有的软件甚至无法交付,这种状况人们称之为“软件危机”
索迪教育面向过程的软件设计方法
为了摆脱软件危机,必须按照工程化的原则和方法来组织软件开发工作
二十世纪七十年代流行的面向过程的软件设计方法,
目的主要是解决面向过程语言系统的设计问题。
它主要强调程序的模块化和自顶向下的功能分解
在涉及大量计算的算法类问题上,从算法的角度揭示事物的特点,面向过程的分割是合适的索迪教育面向过程的软件设计方法
但是现在的软件应用涉及社会生活的方方面面,面对变动的现实世界,面向过程的设计方法暴露出越来越多的不足
例如
功能与数据分离,不符合人们对现实世界的认识,要保持功能与数据的相容也十分困难
基于模块的设计方式,导致软件修改困难
自顶向下的设计方法,限制了软件的可重用性,降低了开发效率,也导致最后开发出来的系统难以维护索迪教育面向对象的软件开发方法
为了解决结构化程序设计的这些问题,面向对象的技术应运而生。
它是一种非常强有力的软件开发方法
它将数据和对数据的操作作为一个相互依赖、不可分割的整体,采用数据抽象和信息隐蔽技术,力图使对现实世界问题的求解简单化
它符合人们的思维习惯,同时有助于控制软件的复杂性,提高软件的生产效率,从而得到了广泛的应用
面向对象的技术是目前最为流行的一种软件开发方法索迪教育面向对象
现实世界中所有的事物都是对象
对象都具有某些特征,并展现某些行为索迪教育面向对象示例
公司中的不同部门都是对象人事会计 销售索迪教育面向对象示例
按照实体在现实世界中的表现来实现
将活动和属性与每一实体相关联数据员工详细资料工资结算表票据凭证收据活动计算工资支付工资支付帐单记帐银行交易会计索迪教育面向对象系统的基本概念
可以这样认为:面向对象 =对象 +类 +继承 +通信
如果一个软件系统是使用这样四个概念来设计和实现的,我们认为这个软件系统是面向对象的
相关概念
对象
类
抽象
继承
封装
可重用性
多态性索迪教育关于对象
现实对象
存在于客观世界的实体
物理对象一辆汽车、一个人、一本书
概念实体一种语言、一个图形、一种管理方式
程序对象
构成程序的实体
对象的用途
帮助理解现实世界
为计算机应用提供实践基础索迪教育现实对象车型,法拉利颜色,红色年份,1995
活动发动停车加速索迪教育程序对象
计算机用户环境中的元素
窗口
菜单
数据集合
机器零件清单
员工档案
用户自定义的数据类型
时间
角度
复数索迪教育对象的特征
对象有其自身的表现数据,而且可以进行某些活动表现数据 活动停车发动加速倒车颜色重量年份发动机功率索迪教育关于类
类是一组具有相同数据结构和相同操作的对象的集合
类建立了现实对象到程序对象的桥梁
类是对一系列具有相同性质的现实对象的抽象,是对现实对象共同特征的描述
程序对象都是类的实例,同一类的实例对象具有
相同数据结构,但有不同的值
相同操作
类中的数据结构叫属性
类中的操作叫方法索迪教育从现实对象到类多边形对象 多边形类属性顶点边的颜色填充颜色方法绘制擦除移动抽象为索迪教育方法 1
抽象 — 1
考察特定应用程序相关问题的某些方面的过程索迪教育抽象 — 2
数据抽象是识别特定实体的属性和方法的过程属性方法类索迪教育抽象 — 3
抽象分为两类
数据抽象
识别与特定的应用程序相关的属性
过程抽象
将注意力集中在过程的参数和返回值,而不是实现索迪教育关于继承
继承重用现有类生成新类
可重用性通过继承来实现动物昆虫 哺乳动物 爬行动物人类 非人类索迪教育继承的双方
超类是有其他类继承其行为的类
继承其他类的类称为子类动物索迪教育关于封装
信息隐藏的过程
有选择的数据隐藏
防止意外的数据破坏
更易于隔离和修复错误索迪教育封装的有选择地隐藏
封装是允许有选择地隐藏类中的属性和方法的过程在类的外部不能访问在类的外部可以访问私有公有类索迪教育可重用性
程序可以分解为可重用的对象
现有类可以和附加功能一起使用形状索迪教育可重用性示例猫科动物发出声音进食 /饮水捕食猎物喵喵叫喝牛奶捕食老鼠吼叫吃肉捕食大型猎物索迪教育多态性
同样的函数在不同的类上有不同的行为类 –
艺术家舞蹈家 诗人雕刻家对各个子类实现的方法将产生不同的结果索迪教育多态性示例类:形状方法:
绘制移动初始化子类索迪教育什么是 Java编程语言
Java是
一种编程语言
一种开发环境
一种应用环境
一种部署环境
句法与 C++相似,语义与 Small Talk相似
用来开发 applets,又用来开发 applications
索迪教育
Java编程语言的基本特点
简单
面向对象
分布式
健壮性
安全
体系结构中立
可移植性
解释执行
高性能
多线程
动态索迪教育
Java运行环境编译时
.java
(源代码 )
.class
(字节码 )
运行时类加载器字节码校验器解释器 JIT代码生成器硬件索迪教育
Java虚拟机
提供硬件平台规范
解读独立于平台的已编译的字节码
可当作软件或硬件来实现
可在 Java技术开发工具或 Web浏览器上实现
由保持适当类型约束的字节码形成代码
大部分类型检查在编译代码时完成
每个由 SUN批准的 JVM必须能够运行任何从属类文件索迪教育
JVM为下列各项做出了定义
指令集(相当于中央处理器[ CPU] )
注册集
类文件格式
栈
垃圾收集堆
存储区索迪教育垃圾收集
可检查和释放不再需要的存储器
可自动完成上述工作
可在 JVM实现周期中,产生意想不到的变化索迪教育字节码校验可保证
代码符合 JVM规范
代码不破坏系统完整性
代码不会引起操作数栈上溢或下溢
所有操作代码的参数类型的准确性
无非法数据转换(整数到指针的转换)
索迪教育一个基本的 Java应用程序
//
//我们的第一个 Java应用程序
//
public class HelloWorldApp
{
public static void main (String args[])
{
System.out.println ("Hello World!");
}
}
索迪教育编译时的常见错误
javac:Command not found
PATH变量未正确设置以包括 javac编译器。 javac编译器位于 JDK目录下的 bin目录。
HelloWorldApp.java:6,Method
printl(java.lang.String)
not found in class java.io.PrintStream.System.
out.printl ("Hello World!");
方法名 println 出现打印错误。
In class HelloWorldApp:main must be public or
static
该错误的出现是因为词 static 或 public被放在了包含
main方法的行之外索迪教育运行时的错误
can’t find class HelloWorldApp (这个错误是在打印 java HelloWorldApp时产生的)
通常,它表示在命令行中所指定的类名的拼写与
filename.class文件的拼写不同。 Java编程语言是一种大小写区别对待的语言。
例如,public class HelloWorldapp {}
创建了一个 HellloWorldapp.class,它不是编译器所预期的类名 (HelloWorldApp.class)。
索迪教育使用 Java API文档索迪教育本章小结
了解软件危机
了解面向过程的软件设计方法
了解面向对象的软件设计方法
熟悉面向对象系统的基本概念
了解 Java 程序的基本设计方法
Java编程技术基础第一章 面向对象原理与实现索迪教育我们的目标
了解软件危机
了解面向过程的软件设计方法
了解面向对象的软件设计方法
熟悉面向对象系统的基本概念
了解 Java 程序的基本设计方法索迪教育
IT 技术的发展与软件危机
随着计算机硬件技术的飞速发展,计算机的容量、速度迅速提高,计算机取得了越来越广泛的应用,这就对软件开发提出了更高的要求
然而软件技术的进步却远远滞后于硬件技术的进步,
人们常常无法控制软件开发的周期和成本,软件的质量总是不尽人意,经常是用之不灵、弃之可惜,有的软件甚至无法交付,这种状况人们称之为“软件危机”
索迪教育面向过程的软件设计方法
为了摆脱软件危机,必须按照工程化的原则和方法来组织软件开发工作
二十世纪七十年代流行的面向过程的软件设计方法,
目的主要是解决面向过程语言系统的设计问题。
它主要强调程序的模块化和自顶向下的功能分解
在涉及大量计算的算法类问题上,从算法的角度揭示事物的特点,面向过程的分割是合适的索迪教育面向过程的软件设计方法
但是现在的软件应用涉及社会生活的方方面面,面对变动的现实世界,面向过程的设计方法暴露出越来越多的不足
例如
功能与数据分离,不符合人们对现实世界的认识,要保持功能与数据的相容也十分困难
基于模块的设计方式,导致软件修改困难
自顶向下的设计方法,限制了软件的可重用性,降低了开发效率,也导致最后开发出来的系统难以维护索迪教育面向对象的软件开发方法
为了解决结构化程序设计的这些问题,面向对象的技术应运而生。
它是一种非常强有力的软件开发方法
它将数据和对数据的操作作为一个相互依赖、不可分割的整体,采用数据抽象和信息隐蔽技术,力图使对现实世界问题的求解简单化
它符合人们的思维习惯,同时有助于控制软件的复杂性,提高软件的生产效率,从而得到了广泛的应用
面向对象的技术是目前最为流行的一种软件开发方法索迪教育面向对象
现实世界中所有的事物都是对象
对象都具有某些特征,并展现某些行为索迪教育面向对象示例
公司中的不同部门都是对象人事会计 销售索迪教育面向对象示例
按照实体在现实世界中的表现来实现
将活动和属性与每一实体相关联数据员工详细资料工资结算表票据凭证收据活动计算工资支付工资支付帐单记帐银行交易会计索迪教育面向对象系统的基本概念
可以这样认为:面向对象 =对象 +类 +继承 +通信
如果一个软件系统是使用这样四个概念来设计和实现的,我们认为这个软件系统是面向对象的
相关概念
对象
类
抽象
继承
封装
可重用性
多态性索迪教育关于对象
现实对象
存在于客观世界的实体
物理对象一辆汽车、一个人、一本书
概念实体一种语言、一个图形、一种管理方式
程序对象
构成程序的实体
对象的用途
帮助理解现实世界
为计算机应用提供实践基础索迪教育现实对象车型,法拉利颜色,红色年份,1995
活动发动停车加速索迪教育程序对象
计算机用户环境中的元素
窗口
菜单
数据集合
机器零件清单
员工档案
用户自定义的数据类型
时间
角度
复数索迪教育对象的特征
对象有其自身的表现数据,而且可以进行某些活动表现数据 活动停车发动加速倒车颜色重量年份发动机功率索迪教育关于类
类是一组具有相同数据结构和相同操作的对象的集合
类建立了现实对象到程序对象的桥梁
类是对一系列具有相同性质的现实对象的抽象,是对现实对象共同特征的描述
程序对象都是类的实例,同一类的实例对象具有
相同数据结构,但有不同的值
相同操作
类中的数据结构叫属性
类中的操作叫方法索迪教育从现实对象到类多边形对象 多边形类属性顶点边的颜色填充颜色方法绘制擦除移动抽象为索迪教育方法 1
抽象 — 1
考察特定应用程序相关问题的某些方面的过程索迪教育抽象 — 2
数据抽象是识别特定实体的属性和方法的过程属性方法类索迪教育抽象 — 3
抽象分为两类
数据抽象
识别与特定的应用程序相关的属性
过程抽象
将注意力集中在过程的参数和返回值,而不是实现索迪教育关于继承
继承重用现有类生成新类
可重用性通过继承来实现动物昆虫 哺乳动物 爬行动物人类 非人类索迪教育继承的双方
超类是有其他类继承其行为的类
继承其他类的类称为子类动物索迪教育关于封装
信息隐藏的过程
有选择的数据隐藏
防止意外的数据破坏
更易于隔离和修复错误索迪教育封装的有选择地隐藏
封装是允许有选择地隐藏类中的属性和方法的过程在类的外部不能访问在类的外部可以访问私有公有类索迪教育可重用性
程序可以分解为可重用的对象
现有类可以和附加功能一起使用形状索迪教育可重用性示例猫科动物发出声音进食 /饮水捕食猎物喵喵叫喝牛奶捕食老鼠吼叫吃肉捕食大型猎物索迪教育多态性
同样的函数在不同的类上有不同的行为类 –
艺术家舞蹈家 诗人雕刻家对各个子类实现的方法将产生不同的结果索迪教育多态性示例类:形状方法:
绘制移动初始化子类索迪教育什么是 Java编程语言
Java是
一种编程语言
一种开发环境
一种应用环境
一种部署环境
句法与 C++相似,语义与 Small Talk相似
用来开发 applets,又用来开发 applications
索迪教育
Java编程语言的基本特点
简单
面向对象
分布式
健壮性
安全
体系结构中立
可移植性
解释执行
高性能
多线程
动态索迪教育
Java运行环境编译时
.java
(源代码 )
.class
(字节码 )
运行时类加载器字节码校验器解释器 JIT代码生成器硬件索迪教育
Java虚拟机
提供硬件平台规范
解读独立于平台的已编译的字节码
可当作软件或硬件来实现
可在 Java技术开发工具或 Web浏览器上实现
由保持适当类型约束的字节码形成代码
大部分类型检查在编译代码时完成
每个由 SUN批准的 JVM必须能够运行任何从属类文件索迪教育
JVM为下列各项做出了定义
指令集(相当于中央处理器[ CPU] )
注册集
类文件格式
栈
垃圾收集堆
存储区索迪教育垃圾收集
可检查和释放不再需要的存储器
可自动完成上述工作
可在 JVM实现周期中,产生意想不到的变化索迪教育字节码校验可保证
代码符合 JVM规范
代码不破坏系统完整性
代码不会引起操作数栈上溢或下溢
所有操作代码的参数类型的准确性
无非法数据转换(整数到指针的转换)
索迪教育一个基本的 Java应用程序
//
//我们的第一个 Java应用程序
//
public class HelloWorldApp
{
public static void main (String args[])
{
System.out.println ("Hello World!");
}
}
索迪教育编译时的常见错误
javac:Command not found
PATH变量未正确设置以包括 javac编译器。 javac编译器位于 JDK目录下的 bin目录。
HelloWorldApp.java:6,Method
printl(java.lang.String)
not found in class java.io.PrintStream.System.
out.printl ("Hello World!");
方法名 println 出现打印错误。
In class HelloWorldApp:main must be public or
static
该错误的出现是因为词 static 或 public被放在了包含
main方法的行之外索迪教育运行时的错误
can’t find class HelloWorldApp (这个错误是在打印 java HelloWorldApp时产生的)
通常,它表示在命令行中所指定的类名的拼写与
filename.class文件的拼写不同。 Java编程语言是一种大小写区别对待的语言。
例如,public class HelloWorldapp {}
创建了一个 HellloWorldapp.class,它不是编译器所预期的类名 (HelloWorldApp.class)。
索迪教育使用 Java API文档索迪教育本章小结
了解软件危机
了解面向过程的软件设计方法
了解面向对象的软件设计方法
熟悉面向对象系统的基本概念
了解 Java 程序的基本设计方法