1、Java面向对象程序设计,主讲教师:郑大庆 上海财经大学 信息管理与工程学院,第一讲 Java 概述,2,上海财经大学 信息管理与工程学院,教材: Java语言程序设计, 郎波编著,清华大学出版社,2005年5月第1版 参考书: Java编程思想(Thinking in Java)API文档参考网站 http:/ 信息管理与工程学院,Java学习网站资源,(世纪乐知) Java学习网站(J Java世界() 中文Java开发者() 中文Java技术网(-) 中国Java俱乐部() Java学习站() http:/ 信息管理与工程学院,可供本课程使用的软件,Java2 SDK 1.4.2 Fo
2、r Windows UltraEdit for Windows Eclipse,5,上海财经大学 信息管理与工程学院,1 课程的定位,1.1 课程性质 1.2 课程学习目的和基本要求 1.3 课程内容与重点 1.4 实践环节 1.5 课时分布 1.6 考核,6,上海财经大学 信息管理与工程学院,1.1 课程性质,是一门建立在现代软件设计基本概念的课程,是本科信息类专业的必修课程。通过Java语言建立面向对象程序设计思想和理念,为将来进一步学习面向对象软件工程和编程打下基础。,7,上海财经大学 信息管理与工程学院,为什么选择Java,而不是C+,有利因素 使用Java,能更容易、更准确地理解面向
3、对象程序设计的概念。学习Java,能为应用软件尤其是网络、跨平台应用软件的开发奠定基础。,8,上海财经大学 信息管理与工程学院,为什么选择Java,而不是C+,不利因素 个别研究生入学考试个别使用到C+ 学习C+有利于系统软件的开发,9,上海财经大学 信息管理与工程学院,1.2 课程学习目的和基本要求,掌握面向对象程序设计的基本概念,如:类、对象、类的封装等;以及Java语言中面向对象的个性概念,如接口等。初步应用面向对象程序设计的思路分析问题、设计程序。掌握Java的基本语言规范与面向对象机制。初步掌握Java语言的多线程、网络的程序设计。,10,上海财经大学 信息管理与工程学院,1.3 课
4、程内容与重点,面向对象程序设计的概念重点掌握面向对象的基本概念,有类、对象、属性操作、封装、继承、接口、重载、包容、多态。 Java基本语言规范重点掌握GUI(Graphic User interface)、Java语法基础、GUI Applet、多线程、网络等。,11,上海财经大学 信息管理与工程学院,1.4 课程的实践教学,面向对象程序设计的实践教学 通过实验案例,对问题采用面向对象的思路进行分析 通过上机实验和作业,自主设计程序,12,上海财经大学 信息管理与工程学院,1.5 课时分布(68课时),Java概述与基本语法 14 面向对象与java的OOP核心14 I/O4 Applet4
5、 GUI6 异常处理4 多线程4 面向对象程序设计案例4 上机实验10 复习与练习4,13,上海财经大学 信息管理与工程学院,课程的主要章节,Java概述 简单数据类型 运算符和表达式 流程控制 Java语言中的面向对象特性 异常处理 图形用户界面,14,上海财经大学 信息管理与工程学院,主要章节(续),线程 Java输入输出及文件操作 Applet Java Bean 网络通信 JDBC编程 RMI编程技术 Holding Objects,15,上海财经大学 信息管理与工程学院,作业 源程序,程序说明 上机实验 实验报告,源程序 成绩期末考试 60%平时作业 10%上机实验 20%出勤 10
6、%,1.6 课程考核,16,上海财经大学 信息管理与工程学院,课程注意,请保持课堂纪律,上课期间注意保持安静; 请准时到达教室,不迟到,不早退; 按时完成课后作业和实验要求; 如果有事情不能上课,请预先请假。,17,上海财经大学 信息管理与工程学院,学习Java的心得,三“勤” 勤于思考 勤于动手 勤于交流 三“心” 信心 耐心 专心,18,上海财经大学 信息管理与工程学院,第一章 Java 语言概述,Java 语言的产生 Java 的特点 Java 的工作方式 Java 的版本 Java 程序的类型 Java 的开发工具 Java 程序举例,19,上海财经大学 信息管理与工程学院,1. Ja
7、va 的产生,1991年 ,SUN 公司成立了由James Gosling等人组成的Green小组 , 为在电视、控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak的程序语言。,20,上海财经大学 信息管理与工程学院,1. Java 的产生,1993年,WWW兴起 WebRunner 1995年,第1届JavaONE大会在旧金山召开。Oak Java Java(印尼盛产咖啡的小岛) WebRunner Hot Java 1995年被PC Magezine十大优秀科技产品,21,上海财经大学 信息管理与工程学院,Java 的发展历程,1995.3 公布Java的Alpha 1
8、.0a2版本 1996.1 第一个开发包JDK v1.0 1997.2 JDK v1.1 1998.12 JDK v1.2 Java 2 Platform 2002.02 J2SE v1.4.0 比较成熟的版本,22,上海财经大学 信息管理与工程学院,Java的应用前景,企业的信息化处理(电子政务) 全球范围的交互通讯(协作计算、协同开发) 网络计算的中的各种服务(远程教育、医疗) 无线领域的应用(移动终端、手机、掌上电脑) 家庭智能控制系统(家用电器的控制) Java与Web应用的结合 网络游戏,23,上海财经大学 信息管理与工程学院,2. Java 的特点,简单:语法单纯易学;可重用类库;
9、自动内存管理,简化重载,去掉指针和C+中一些不是绝对必要的功能面向对象:纯面向对象语言,所有程序代码均以类的形式组织,由类来定义对象的各种状态和行为,24,上海财经大学 信息管理与工程学院,Java 的特点,体系结构中立(跨平台):Java应用程序能够在网络上任何地方执行,字节码 平台无关性;完全统一的语言版本 (如数据类型在所有平台上一样)实现无关性。,25,上海财经大学 信息管理与工程学院,Java 的特点,半编译,半解释:本质上,Java是解释执行的,但Java通过预先将源代码编译为接近于机器指令的字节码,有效地克服了传统解释型语言的性能瓶颈,同时又保持了解释型语言的可移植性。Java解
10、释器能直接在任何机器上执行Java字节码。,26,上海财经大学 信息管理与工程学院,Java 的特点,分布性: 数据分布性:如通过URL类访问远地资源; 操作分布性:Applet字节码从服务器分散到客户机,在客户端(浏览器)执行强壮性:静、动态检查(强类型语言),排除出现错误的条件;异常处理;取消指针达到内存保护安全性: 目的:使用于网络/分布式运算环境,确保建立无病毒、不会被侵入的系统 手段:内存分配及布局由Java运行系统决定;字节码验证,27,上海财经大学 信息管理与工程学院,Java 的特点,多线程:支持多线程,在语言级(而不是操作系统级)嵌入了并发控制的功能,大大简化了多线程应用程序
11、的开发 动态性:面向对象设计的延伸。Java的基本组成单元是类,而Java的类又是运行时动态加载的,更能适应变化的环境。因此,Java程序不会象c+那样因类库的更新而必须重新编译全部程序,28,上海财经大学 信息管理与工程学院,Java 与C、C+ +的比较,类 Java不允许同时继承多个父类; Java有abstract和final修饰词 接口 Java引进接口的主要目的是实现多重继承 程序包 多线程 取消指针,29,上海财经大学 信息管理与工程学院,Java 的运行系统,类装配器 字节码验证器 解释器 代码生成器 运行支持库 本地系统,即时编译技术(Just in time compili
12、ng): 将要执行的字节码一次编译为机器代码,然后全速运行。可提高运行速度,编译:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件( .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。 解释:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,,30,上海财经大学 信息管理与工程
13、学院,3. Java的工作方式,文件类型 .java Java源文件 .class 二进制字节码文件,Java编译过程,31,上海财经大学 信息管理与工程学院,Java的工作方式(续),Java虚拟机(JVM) Java处理器“芯片”,一般由软件实现,Java虚拟机,类装入器,字节码验证器,解释器,执行,DF BA 09,hello.class,字节码,机器码,32,上海财经大学 信息管理与工程学院,Java 所定义的虚拟CPU JVM提供以下定义: 指令集(Bytecodes 是JVM的机器指令)。 寄存器组 类文件格式 栈 垃圾回收“堆”(实现内存的动态分配和自动回收) 内存区域,JVM(
14、Java Virtual Machine),33,上海财经大学 信息管理与工程学院,Java的工作方式(续),最为典型的例子是网站,34,上海财经大学 信息管理与工程学院,JRE java 运行环境 . JRE 是由JVM 和 java platform 核心类以及相关支撑文件组成。,Java的运行环境,35,上海财经大学 信息管理与工程学院,Bytecode 字节码,JVM指令集,.class JDK Java Developers Kit (java开发工具包) 包含JVM和其他工具,以及API和相关文件 Java 2 Java 2 Platform J2 SDK Java 2 Softw
15、are Development Kit,Java中的几个英文术语,36,上海财经大学 信息管理与工程学院,4. The Java 2 Platform, Java 2 Platform, Standard Edition (J2SE) Java 2 Platform, Enterprise Edition (J2EE) Java 2 Platform, Micro Edition (J2ME),37,上海财经大学 信息管理与工程学院,The Java 2 Platform,High-End Server,Java Technology Enabled Desktop,Workgroup Ser
16、ver,Java Technology Enabled Devices,38,上海财经大学 信息管理与工程学院,J2SE体系结构,39,上海财经大学 信息管理与工程学院,5. Java程序的类型,Application “Java 应用程序”是可以独立运行的Java程序。 由Java解释器控制执行。 例:计算器,40,上海财经大学 信息管理与工程学院,Java程序的类型,Applet “Java小程序”不能独立运行,而是被嵌入到Web页中。 如:计算器,网页效果1 ,2,3。 由Java兼容的浏览器控制执行。,Server,Browser,网页,字节码,41,上海财经大学 信息管理与工程学院,
17、Java程序的类型,Servlets(Server Applet) Servlet运行在WEB服务器上,用来生成WEB页面。 是Java技术对CGI 编程的解决方案。 是运行于Web server上的、作为来自于Web browser (或其他HTTP 客户端的请求) 和 在HTTP 服务器上的数据库及其他应用程序之间的中间层程序。,Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。最早支持Servlet标准的是JavaSoft的Java Web Server。此后,一些其它
18、的基于Java的Web服务器开始支持标准的Servlet。,42,上海财经大学 信息管理与工程学院,程序类型与用户界面,43,上海财经大学 信息管理与工程学院,6. Java 开发工具,J2 SDK文本编辑器 Notepad、TextPad、UltraEdit . IDE JBuilder(Borland) EClipse Visual J+(MicroSoft) WebSphere(IBM),44,上海财经大学 信息管理与工程学院,J2SDK中的实用程序,javac.exe java编译器,将Java源程序编译成字节码 java.exe java解释器,直接从类文件执行Java应用程序, 即
19、application appletviewer.exe 小程序浏览器,执行html文件中的Java小程序,即Applet,45,上海财经大学 信息管理与工程学院,7. Application程序举例,HelloWorld.java:,class HelloWorld public static void main(String args) /display “HelloWorld!”System.out.println(“HelloWorld!“); ,主类名,46,上海财经大学 信息管理与工程学院,Application程序基本结构,由一个或多个“类”组成。 如何定义类 : class H
20、elloWorld 其中必须有一个“类”定义了main() 方法: public static void main(String args)该方法是自动执行的类方法,是java应用运行的起始点。而这个类也就称之为“主类”。,47,上海财经大学 信息管理与工程学院,HelloWorld.java的深入分析,Java源文件名要与主类名同名(包括大小写) class HelloWorld HelloWorld.java 注释/display “HelloWorld!”,48,上海财经大学 信息管理与工程学院,HelloWorld.java的深入分析,方法的调用System.out.println(“
21、Hello World!“);,public final class System public final static PrintStream out ;. . ,49,上海财经大学 信息管理与工程学院,Application程序创建过程,1.编写源代码 HelloWorld.java 2.编译 javac.exe javac HelloWorld.java编译通过后,将生成HelloWorld.class 文件 3.解释执行 java.exe java HelloWorld (隐含.class文件),D: javac HelloWorld.java D: java HelloWorld
22、Hello World!,50,上海财经大学 信息管理与工程学院,Class Many_Hellos,Many_Hellos.javapublic class Many_Hellos public static void main(String args)for ( int j=0; j5; j+) System.out.println(“Hello! World,”); int c=0; ,类声明与定义,类中的方法,语句结尾以分号标志,用大括号括起 语句组,51,上海财经大学 信息管理与工程学院,Java语言中的大小写,Java语言区分大小写 类名第一个字母大写 PhoneCard 方法名第
23、一个字母小写 getBalance() 变量名第一个字母小写 cardNumber,52,上海财经大学 信息管理与工程学院,Applet的开发、执行模式,Client机,Server机,Browser,53,上海财经大学 信息管理与工程学院,applet 小程序举例,Boy.java,import java.awt.Graphics; import java.applet.Applet; /将java.applet包中的系/统类Applet引入本程序 public class Boy extends Applet public void paint(Graphics g)g.setColor(
24、Color.red);g.drawString(“我一边喝咖啡,一边学习java“,10,20);g.setColor(Color.blue);g.drawString(“我学习的很认真“,50,40); ,54,上海财经大学 信息管理与工程学院,applet 小程序的特殊规范,applet程序中必须包含java.applet.Applet类的子类。该子类就是applet小程序的主类。系统类Applet中已经定义了很多的成员变量和成员方法,它们规定了Applet小程序如何与执行它的解释器WWW浏览器配合工作; 主方法被浏览器自动调用的方法。 init()、start()、stop()、dest
25、roy ()、 paint(),55,上海财经大学 信息管理与工程学院,Applet 的创建过程,编写源代码: HelloApplet.java编译:javac HelloApplet.java生成HelloApplet.class文件建立Boy.html文件,输入如下内容Applet的一个例子Here is the out of “BoyApple“:,56,上海财经大学 信息管理与工程学院,applet 小程序,浏览html文件 使用appletviewer 如: appletviewer index.html 使用常规的浏览器,D: javac Boy.java D: appletviewer Boy.html,57,上海财经大学 信息管理与工程学院,课后作业,安装J2SDK1.4.2,正确配置环境变量 编写一个Application,在屏幕上显示如下的信息: * Welcome * 把上题改写为Applet。 作业/资料下载: BB系统 作业/资料:作业提交:通过BB系统上传作业 作业格式: 学号_姓名_作业1 办公室 419,58,上海财经大学 信息管理与工程学院,Q&A,多谢!,