Java和面向对象概述.ppt_第1页
Java和面向对象概述.ppt_第2页
Java和面向对象概述.ppt_第3页
Java和面向对象概述.ppt_第4页
Java和面向对象概述.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一讲 Java和面向对象概述,时间:2015年9月,电子信息工程学院 姜斌 教材:第一章(前三节),知识要点,本讲着重介绍Java语言中的背景知识和基本概念。 具体涉及: 本章将简要介绍软件开发方法的变革 面向对象程序设计中的基本概念 介绍Java语言的特点及开发Java程序的基本步骤等 介绍Java语言特点、与C/C+的主要差异、Java程序执行过程、Java运行环境及开发工具等基本知识。,内容概述,一、 面向对象软件开发方法概述 二、 面向对象的基本概念 三、 Java语言概述 四、 Java主要相关技术 本章小结 思考与练习,课程前序掌握或了解的概念,软件(Software) 软件工程(Software Engineering) 计算机程序语言(Programming Language) 信息(Information)和数据(Data) 计算机系统(Computer System) 数据库系统(Database System),一 面向对象软件开发方法概述,60年代至80年代,早期传统的开发方法,软件开发方法是面向过程进行开发的;因此统称为面向过程的开发方法 代表语言:有Fortran, Pascal, C语言等 软件生产率低 软件重用程度低 软件维护艰辛 软件非用户所需,1传统软件开发方法存在的问题,特点:分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 事例:五子棋 1、开始游戏, 2、黑子先走, 3、绘制画面, 4、判断输赢, 5、轮到白子, 6、绘制画面, 7、判断输赢, 8、返回步骤2, 9、输出最后结果。 每一步都要走,这就是过程; 然而用户需求的是可能变化的,因此这种变化对基于过程的设计来说是灾难 。,2. 面向过程方法问题的归因,3. 面向对象方法特点,特点:面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个过程中的属性和行为。 而面向对象的设计则是从另外的思路来解决问题。对象有玩家(Player),棋盘系统(Chess),规则系统(GameRule) 整个五子棋可以分为: 1、黑白双方,这两方的行为是一模一样的,行为有下棋,悔棋等 2、棋盘系统,负责绘制画面, 3、规则系统,负责判定诸如执先手、犯规、输赢等。,4. 面向对象方法特点,面向对象方法(Object-oriented),以对象代表问题解的中心环节,力求符合人们的思维习惯,采用“对象+消息”的程序设计模式 发展时间:90年代,发展和流行 代表语言: Java, C+, C#, VB.NET 地位:面向对象堪称是软件发展取得的里程碑式的伟大成就。 包括部分:面向对象分析和设计(OOAD),面向对象编码(OOP),面向对象测试(OOT),5. 面向对象方法的主要优点,符合人们通常的思维方式,采用“对象+消息”方式,易理解性 降低或分解问题的难度和复杂性,可重用性好 日趋成熟,标准化,体系化, 标准性 主流开发方法,可维护性好,6.面向对象的软件开发生命周期,开发一个软件系统需要有多个环节的,整个构成一个生命周期(SDLC) 例子:瀑布式 作用:可有效和高效地进行软件开发工作的组织,课件附有流行的一种生命周期过程,附2:一种典型面向对象软件开发过程,二、 面向对象的基本概念,简而言之: 面向对象三元素类+对象+消息 面向对象三大特性 封装性(encapsulation) 继承性(inheritance) 多态性 (polymorphism),1. 面向对象的基本概念,2. 面向对象三元素,类(class) 类描述对象的“基本原型”,是描述性的类别或模板,即对一组对象的抽象。它定义一组对象所能拥有的静态特征和动态行为在java中分别被称为属性(Attribute)和方法(Method),用以说明该组对象的能力与性质,被编译后的类存在于class文件中。 例如,小汽车car可以被抽象成类,它描述了所有小汽车的性质,包括汽车的品牌、型号、颜色、车门数、速度,即属性;还包括动态行为操作,如启动、驾驶、加速、刹车等等,即方法。 别称:属性有时在某种语境下也被称为字段(fields)或变量(variables) 方法有时在某种语境下被称为行为(behaviors),一些程序员或中文资料中还误称为(函数)。,对象(object) 对象就是现实世界中某个具体的物理实体在计算机中的映射和体现。所以一个对象把属性和行为密封成一个整体,通过一个类作为模板可以建立多个对象,建立后的对象实例存在于内存中 例如:以Car汽车类为模板,可以创建hammerCar , toyotaCar对象;这两个对象的是独立的个体,具有各自属性和相应方法。,new,new,万物皆对象!,Memory,消息(message) 对象之间进行通信的一种构造叫做消息,消息传递是对象与其外部世界相互关联的唯一途径。对象可以向其他对象发出消息以请求服务,也可以响应其他对象传来的消息。,轿车A.驾驶(),轿车A.停止(),3. 面向对象的三大特性,所谓封装又称为信息隐蔽(Information Hiding),是面向对象的基本特征。封装的目的在于将使用者与设计者分离,使用者不必知道操作实现的细节,只需用设计者提供的消息来访问对象。,信息隐藏的特点: 1. 在属性值访问上,一般属性是私有的,提供服务的方法是公有的。 2. 内部实现受保护,提供的功能具体实现,实现细节不能够在对象外访问,有时也称为内部方法。,3. 面向对象的三大特性,继承是面向对象语言中的一种重要机制,该机制自动地为一个类提供来自另一个类的操作和属性,这样程序员只需在新类中定义已有类中没有的属性与(或)操作来建立新类。 多态性是指一个名字具有多种语义,即指同一消息为不同对象所接受时,可以导致不同的操作。 除遗传关系外,现实世界中还普遍存在着部分整体关系。例如,飞机可由发动机、机身、机械控制系统、电子控制系统等构成。聚集关系 注意Java不支持多父继承。,三、 Java语言概述,1. 什么是java语言 2JDK三种平台 3发展历史 4语言特点 ,1. 什么是Java*(页1),JAVA是Sun公司开发(该公司已经于2009年被甲骨文公司收购)的一种面对对象的语言技术,通过它用户可以快速开发跨平台的、高效安全的单机或网络应用程序。,2Java 语言三种平台简介(页3),Java要实现“一次写成,多处运行”,就必须提供多个平台 J2SE-java 2 standard edition 标准版,提供了标准的SDK开发平台(也称为JDK),可开发低端java用于小型 J2MEjava 2 micro edition 微型版, 用于java的移动应用开发,适应于目前比较流行的嵌入式开发 J2EEjava 2 enterprise edition 企业版,用于构建企业级的服务应用,J2EE平台包括J2SE平台,并附加了企业级开发的类库。,3Java 语言的发展历史(页1),1991: James Gosling,Bill Joy等人一起从事Green Project中、 产生新的语言Oak, 1994下半年: WWW迅速发展,得到Sun公司的支持,通过Oak开发的HotJava浏览器得到关注;随后Oak改名Java。 1995: Java作为SUN公司开发工具产品,正式发布 最早是1.0,Java语言自1995年问世以来不断发展,开发平台的版本已经从早先的JDK 1.0发展到JDK 1.2.0,到当前广泛应用的JDK 1.5.0,以及SUN最后开发的JDK 1.6.0 。Java语言的每一个版本的推出,都是对自身不足的克服和完善。它日益成为网络应用的一支强有力的技术力量。(注意从Java1.5后,Java的版本又分成内部版本和外部版本,例如:1.5.0也称为5.0版,1.7.0也称为7.0) 具有大改变的版本(内部版本) 1.1 1.2 1.5.0 1.7.0,3Java 语言版本发展,3Java 语言版本发展,注意:2011年,由于Oracle收购了Sun公司,7.0和其他早期版本JDK,JRE下载 都在Oracle的官网上,网站如下: /technetwork/java/javase/downloads/index.html,Java(SUN)和.NET(M$)所属系列语言是开发两大阵营。 在目前流行的B/S开发中,Java和.NET两种开发环境是两大阵营体系;而Java比后者具有更显著的可移植性,跨平台性,而且很多java项目往往是基于自由组织开发(GNU)协议的免费项目,可以自由地被用户项目所引用。,4Java 语言的应用前景,5. Java语言的特点(P 2),简单性 面向对象 分布式处理 健壮性 结构中立 安全性,系统精简,但功能齐备。 风格类似于C+,对C+程序员而言非常容易掌握。 Java摒弃了C+中容易引发程序错误的地方,如指针操作和内存管理; 提供丰富的类库。,完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。,支持TCP/IP协议。Java应用程序可通过一个特定的URL来打开并访问对象,就像访问本地文件系统那样简单。,提供面向对象的异常处理机制,在编译时能对Null指针检测、数组边界检测、异常出口字节代码校验等。 自动垃圾收集来进行内存管理。,将源程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码。,Java语言提供的安全。 编译器提供的安全。 字节码校验。,5.Java语言的特点,可移植性 解释性 高性能 多线程 动态,Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,而与体系结构无关。,Java编译器将java源文件生成类文件.class,类文件可通过java命令解释执行,将Java字节码转换为机器码。,JIT编译器。可以提高 Java 代码的执行速度。,内置多线程功能,使得在一个程序里可同时执行多个小任务。带来的好处是更好的交互性和实时控制性。,允许程序动态地装入运行过程中所需要的类,这是C+语言进行面向对象程序设计所无法实现的。,Java虚拟机(JVM) 软件虚拟的计算机, SUN公司提供各个操作系统上的Java虚拟机 Java服务器端技术 - JSP/Servlet等技术为代表的服务器,5.Java 特点引申,6. Java程序的执行过程,首先在某个操作系统下用编辑器编写代码,保存源代码(.java),然后对编写的代码进行编译产生字节码文件(.class) 编译后的程序其执行过程为: 载入:Java的类载入器负责把程序中的所有字节码文件都加载到内存中。这些被装入内存的字节码文件可以保持在硬盘的当前目录下; 代码校验:字节码全部载入内存后,Java的代码校验器开始检查这些字节码的合法性; 解释执行:通过了代码校验的二进制字节码程序被交给解释器逐句的解释并运行。,图1. Java程序运行过程和编译型程序运行过程对比,字节码程序,二进制,运行,二进制,二进制,Linux平台,图2. Java虚拟机和跨平台解释运行,Unix平台,Windows平台,解释器,JVM(虚拟机),Java在基本类库中,提供了大量的类以满足网络化、多线程、面向对象系统的需要,类库包含有类包,例如:类包有:java.lang, java.io, , java.awt, java.util等等。,7丰富的类库(P 4),对于变量声明、参数传递、操作符、流控制等,Java使用了和C、C+相同的传统,使得熟悉C、C+的程序员能很方便地进行编程。同时,Java为了实现其简单、鲁棒、安全等特性,也摒弃了C和C+中许多不合理的内容,例如多父继承,运算符重载。,8. Java和C、C+,实践:第一个Java程序,像一个Baby在世界发出第一声叫声一样; 我们一起做一个Java程序HelloWORLD; 对它进行编辑,编译,解释运行工作,看看虚拟机的工作过程;,I am Cindy,1 month old,创建简单的Java程序,代码分析,行1为注释。 行2定义了用户自定义类HelloWorld。 行2和行6的花括号对定义了代码块,其中的代码为类HelloWorld的实现。 行3定义了类HelloWorld的一个成员,即名为main的方法。main()方法是使用static修饰符声明的静态方法,将作为程序的入口点。 行3和行5的花括号对定义了代码块,其中的代码为main()方法的实现。 行4通过调用System.out.println(“Hello World!“),在控制台上输出字符串:Hello World!。,编译和运行结果,javac HelloWorld.java 产生一个名HelloWorld.class的文件,即字节码的类文件 运行应用程序 java HelloWorld 输出结果: Hello World!,四、 Java语言相关重要概念,1.Java的应用程序类型(P 3),它适于: 跨平台/多平台的应用程序 基于Web的分布式网络应用程序(B/S) 基于GUI的应用程序 企业级应用程序 多线程应用程序 关键任务的(数据库)应用程序 分布式网络应用程序 手机移动应用程序 随着技术发展,Java和其他语言各有新技术纳入到体系,2.Java核心概念,1). JDK (Java Development Kit) (P 5) 即java开发环境。JDK是Sun公司开发的一个免费的Java开发工具集,提供了Java开发、运行和测试一体的环境,它包含完整的JRE 2). JRE (Java Runtime Environment) (P 4) 即Java运行环境。JRE只是Java的运行环境,提供了Java程序运行所需要的基本类库。 注意:JRE一般是和JDK捆绑下载的,如果只需要在平台下运行java程序的,不需要开发的,可以下载JRE的单独版本来安装,3). JVM (Java Virtual Machine) (P 4) 即Java虚拟机,它是一个软件系统,可按照于不同操作系统下,它可以编译,解释并运行Java字节码。它是Java的核心,保证了在任何异构的环境下都可以运行Java成,解决了Java跨平台的问题。 4). 字节码文件(ByteCode) 与传统的解释型高级语言不同,Java源程序不是直接交给解释器解释,而是通过一个与编译型语言相似的编译过程,把Java源程序翻译成一种特定的二进制字节码文件(扩展名为class),再把这个字节码文件交给Java解释器来解释执行。,5). API(Application Programmin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论