单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第一讲 Java和面对对象概述,时间:2023年2月,电子信息工程学院 姜斌,教材:第一章前三节,学问要点,本讲着重介绍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,万物皆对象!,Brand,:,Hammer,Type,:,H2,Color,:,Yellow,Door,:,4,Drive(),Brand,:,Toyota,Type,:,FJ,酷路泽,Color,:,Blue,Door,:,2,Drive(),Memory,消息message,对象之间进展通信的一种构造叫做消息,消息传递是对象与其外部世界相互关联的唯一途径。对象可以向其他对象发出消息以恳求效劳,也可以响应其他对象传来的消息。,张三,轿车,A,轿车,A.,启动,(),轿车A.驾驶,轿车A.停顿,3.面对对象的三大特性,所谓封装又称为信息隐蔽(Information Hiding),是面对对象的根本特征。封装的目的在于将使用者与设计者分别,使用者不必知道操作实现的细节,只需用设计者供给的消息来访问对象。,信息隐蔽的特点:,1.在属性值访问上,一般属性是私有的,供给效劳的方法是公有的。,2.内部实现受疼惜,供给的功能具体实现,实现细节不能够在对象外访问,有时也称为内部方法。,3.面对对象的三大特性,继承是面对对象语言中的一种重要机制,该机制自动地为一个类供给来自另一个类的操作和属性,这样程序员只需在新类中定义已有类中没有的属性与或操作来建立新类。,多态性是指一个名字具有多种语义,即指同一消息为不同对象所承受时,可以导致不同的操作。,除遗传关系外,现实世界中还普遍存在着局部整体关系。例如,飞机可由发动机、机身、机械把握系统、电子把握系统等构成。聚拢关系,留意Java不支持多父继承。,交通工具,汽车,轮船,飞机,三、,Java,语言概述,1.什么是java语言 2JDK三种平台 3进展历史 4语言特点,1.,什么是,Java*(,页,1),JAVA是Sun公司开发(该公司已经于2023年被甲骨文公司收购)的一种面对对象的语言技术,通过它用户可以快速开发跨平台的、高效安全的单机或网络应用程序。,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的版本又分成内部版本和外部版本,例如:也称为5.0版,也称为7.0,具有大转变的版本内部版本,1.1,1.2,3Java 语言版本进展,3Java 语言版本进展,留意:2023年,由于Oracle收购了Sun公司,7.0和其他早期版本JDK,JRE下载 都在Oracle的官网上,网站如下:,JavaSUN和.NETM$所属系列语言是开发两大阵营。,在目前流行的B/S开发中,Java和.NET两种开发环境是两大阵营体系;而Java比后者具有更显著的可移植性,跨平台性,而且很多java工程往往是基于自由组织开发GNU协议的免费工程,可以自由地被用户工程所引用。,4,Java,语言的应用前景,Java虚拟机JVM 软件虚拟的计算机,SUN公司供给各个操作系统上的Java虚拟机,Java效劳器端技术-JSP/Servlet等技术为代表的效劳器,5.Java 语言的特点pg 6-7,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+语言进展面对对象程序设计所无法实现的。,6.Java,程序的执行过程,首先在某个操作系统下用编辑器编写代码,保存源代码.java,然后对编写的代码进展编译产生字节码文件.class,编译后的程序其执行过程为:,载入:Java的类载入器负责把程序中的全部字节码文件都加载到内存中。这些被装入内存的字节码文件可以保持在硬盘的当前名目下;,代码校验:字节码全部载入内存后,Java的代码校验器开头检查这些字节码的合法性;,解释执行:通过了代码校验的二进制字节码程序被交给解释器逐句的解释并运行。,编译型源程序,可执行程序,exe,编译连接,运行,操,作,系,统,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+的程序员能