北京科技大学天津学院 信息工程系 面 向 对 象 程 序 设 计 第1讲 Java初探 主讲:于静
学习目标 最终目标:Java软件工程师 近期目标 本学期目标 Java语法、J2SE平台基础、面向对象编程思想和方法(Java 基础) Java Web开发(简单应用) J2EE企业开发(企业级应用) 辅助技术:Struts/Spring/Hibernate框架、JavaScript、XML、 SQL语言 开发工具:JDK、Eclipes、MyEclipse 近期目标 在校期间,掌握Java语法、面向对象编程思想和方法、Java Web应用 本学期目标 本学期, Java语法、J2se平台基础、面向对象编程思想和方法, 培养自学能力。 Java是什么?Java能用来做什么? 北京科技大学天津学院-信息工程系
课程要求 掌握Java语言基础知识 理解面向对象的编程思想 理解异常处理机制 能够使用util包的集合类进行对象管理 能够使用io包进行输入输出(I/O)操作 了解多线程编程 了解网络编程 熟悉Eclipse开发环境的使用 能够编写Swing图形用户界面程序 能够使用JDBC编写数据库访问程序 北京科技大学天津学院-信息工程系
学习方法指导 奠定Java语法基础 学习Java的第一步是用Java语言来编写程序,学习Java语言的第一步,就是熟悉其语法的使用。 注意思考和总结 在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。即便对一个简单的例子也要有耐心去琢磨、调试、改动。 动手写代码 在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己。 在学到一定阶段后,试用学过的东西做些什么。 培养自学能力 Java API文档 英文地址:http://java.sun.com/reference/api/ 中文:网上搜索下载 充分利用网络学习资源 使用搜索引擎 加入论坛参与讨论 北京科技大学天津学院-信息工程系
网络学习资源 (1)Java中国开发网--http://bbs.cjsdn.net/ (5)ChinaJavaWorld.com技术论坛 http://bbs.chinajavaworld.com/index.jspa (6)赛迪网技术社区 http://bbs.java.ccidnet.com/index.php (7)SUN中国技术社区 http://gceclub.sun.com.cn/ (8)全球最大中文IT社区http://www.csdn.net/ 北京科技大学天津学院-信息工程系
本讲主要内容 了解Java的发展历史 了解Java的三大特性 初步熟悉面向对象与类的概念 熟练掌握JDK的安装配置方法 北京科技大学天津学院-信息工程系
Java的发展历史 Java之父:James Gosling。 Java的萌芽:1991年, sun公司 一种语言能够应用于具备不同指令系统处理器的 智能化家用电器中,于是Java的前身 Oak语言诞 生。 Java正式诞生:1996年,Sun公司正式发布JDK 1.02。 JDK最新版本:JDK7(目前成熟使用JDK1.6)。 北京科技大学天津学院-信息工程系
Java是什么 程序员看来,Java是一种编程语言。 北京科技大学天津学院-信息工程系
Java SE Java 2 Platform,Standard Edition JVM (Java Virtual Machine):为了实现跨平台 的运行Java程序,必须装有Java虚拟机。 JRE (Java Runtime Environment):包括JVM, 为了运行Java程序,必须要取得JRE并进行安装。 JDK (Java Development Kits):要开发Java程 序,则必须安装JDK。JDK包括JRE,强大的API 类库,以及开发过程中所需的一些工具,如 java.exe,javac.exe等。 北京科技大学天津学院-信息工程系
Java EE Java 2 Platform,Enterprise Edition JSP、Servlet、JavaBean JDBC、EJB、XML Struts、Spring、Hibernate、Ajax、WebService 北京科技大学天津学院-信息工程系
Java ME Java 2 Platform,Micro Edition J2ME是一种高度优化的Java运行环境,主要 针对消费类电子设备的,例如蜂窝电话和可视 电话、数字机顶盒、汽车导航系统等等。 J2ME技术在1999年的JavaOne Developer Conference大会上正式推出,它将Java语言 的与平台无关的特性移植到小型电子设备上, 允许移动无线设备之间共享应用程序。 北京科技大学天津学院-信息工程系
Java的特性 (1) 平台无关性 编译 Java字节码文件 .java .class Java源程序文件 不同系统的JVM 其他操作系统 Windows Mac OS 硬件 硬件 硬件 北京科技大学天津学院-信息工程系
Java的特性 (2) 面向对象 以封装、继承、多态3个特性为指导思想,程序员 按照更符合人类理解的方式进行程序的组织。 继承:通过子类继承父类,对类的功能进行扩展。 多态:不同事物的同一行为在程序运行过程中, 动态地展现出不同的形为方式。 北京科技大学天津学院-信息工程系
Java的特性 (3) 多线程 Java 程序使用 “多线程”的进程,同时处理多项 任务。 例如,五个人一起做一张桌子,比一个人做一张 桌子,效率要高很多。 北京科技大学天津学院-信息工程系
Java的垃圾回收处理机制 不再使用的内存空间应回收——垃圾收集。 在C/C++ 等语言中,由程序员编写显示代码 来回收无用内存。 Java语言提供一种系统级线程跟踪存储空间 的分配情况。并在JVM的空闲时,检查并释放 那些可被释放的存储器空间。 垃圾收集在Java程序运行过程中自动进行, 程序员无法精确控制和干预。 北京科技大学天津学院-信息工程系
面向对象与类的概念 (1) 封装与类 抽象:对现实系统进行描述,即对某一具体问题 进行概括,总结出同类问题所具有的基本属性以 及操作这些属性的方法。 封装:以“类”(class)这种结构形式,将共性属 性和共性方法组织在一起,形成一个独立的“系 统”。外界一般不能直接访问内部属性,而是规 定某些公开方法对外可见。 Vehicle 类 属性:—发动机、—刹车装置、—车轮方法:+加速、+减速 北京科技大学天津学院-信息工程系
面向对象与类的概念 (2) 对象 类是对相似对象的定义,对象由类来生成。 类像是一个“模板”,要使用一个类的功能,多 数情况下要利用该类实例化一个对象。由对象去 执行指定功能。 例如,要使用汽车的“加速”功能,必须首先用 汽车类实例化一辆具体的汽车(对象),由这辆 现实的汽车来执行“加速”操作。 北京科技大学天津学院-信息工程系
面向对象与类的概念 (3) 继承与多态 继承,是指当描述一个新类时,可以在已经定义 好的类的基础之上进行属性或方法的扩展。已经 定义好的,被扩展的类称为父类,进行属性或方 法扩展的新类称为子类。 Vehicle 类 属性:-发动机、-刹车装置、-车轮方法:+加速、+减速 继承 派生 Truck 类 属性:-发动机、-刹车装置、-车轮、-后车厢 方法:+加速、+减速、+翻斗 北京科技大学天津学院-信息工程系
面向对象与类的概念 (3) 继承与多态 (续) 多态机制把不同的子类对象都当作父类类型看待, 屏蔽了不同子类对象之间差异。 比如,以Vehicle类为父类,实现两个子类: Truck类和Car类,均继承父类的“加速”方法。 但是实际上货车和轿车的加速程序是不同的。因 此,加速方法应该在子类中根据不同车型重新定 义。当发布命令:“A汽车加速”。命令中并没有 指定该汽车是货车还是轿车。程序运行过程中, 多态机制会自动判断A汽车的类型,如果A车是货 车则执行货车的加速方法,是轿车的话则执行轿 车的加速方法。 北京科技大学天津学院-信息工程系
面向对象程序设计的意义 面向过程的编程思想 缺点:数据与数据的操 作相分离 以C语言为例 int area(int length, int width) { return length * width; } void main( ) { int l = 3; //定义长方形的长度 int w = 4; //定义长方形的宽度 printf("面积为%d\n", area(l, w)); //输出结果 } 缺点:数据与数据的操 作相分离 int area(int length, int width) {…} int sum(int num1, int num2) { return num1 + num2; } void main( ) { int l = 3; int w = 4; printf("面积为%d\n", area(l, w)); w = 2; //数据可被直接修改 printf(“求和为%d\n", sum(l, w)); //数据被无关函数使用 } 北京科技大学天津学院-信息工程系
Java开发环境配置 JDK(Java Development Kits) 免费下载: 最新版本JDK1.6,下载后安装。 http://www.oracle.com/technetwork/java/javase/downlo ads/index.html 最新版本JDK1.6,下载后安装。 JDK安装目录 : bin目录:存放可执行文件; Java编译器:javac.exe Java运行时解释器:java.exe Java文档化化工具:javadoc.exe lib目录:存放Java的类库文件; jre目录:存放Java运行环境文件; 北京科技大学天津学院-信息工程系
Java开发环境配置 选择高级 单击 右键 单击 编辑 单击 新建 北京科技大学天津学院 信息工程系 北京科技大学天津学院-信息工程系
开发一个简单Java命令行程序 基本步骤: 编写源代码:新建 .java源文件,编写Java代码, 用文本编辑工具即可; 编译源代码:生成 .class文件; javac HelloWorld.java 注:此处HelloWorld是源代码文件名 运行程序 java HelloWorld 注:此处HelloWorld是含有main方法的类名称 北京科技大学天津学院-信息工程系
第1步——编写程序 /** * 此类用于在屏幕上显示消息。 * @ version1.0,2009 年 5 月 20 日 * @author Michael */ public class HelloWorld { //类名为Message * 这是一个 main 方法 public static void main(String[ ] args) { System.out.println("欢迎来到 Java 世界!"); // 输出 } 北京科技大学天津学院-信息工程系
第2步——编译程序 点击“开始”—“运行”进入DOS命令行窗口, 利用“cd”等DOS命令将目录转向到Java源文 件保存的目录。 执行命令:javac HelloWorld.java 编译成功后, 产生HelloWorld.class字节码文 件。 北京科技大学天津学院-信息工程系
第3步——运行程序 在.class字节码文件所在的路径下。 执行命令: java HelloWorld 北京科技大学天津学院-信息工程系
Java程序运行过程 北京科技大学天津学院-信息工程系
编写Java程序的注意事项 最基本的程序至少包含一个类。 一个源文件中最多定义一个公共类(public class),并且该公共类的命名要与源文件名相 同,区分大小写。 程序从 main( ) 方法开始执行,关键字 static 表示无需创建类的实例,可以直接调用 main( ) 方法,关键字 void表示main( ) 方法 在执行时不返回任何值。 整个类及其所有成员都是在一对大括号中(即 { 和 } 之间)定义的,它们标志着类定义块的 开始与结束。 北京科技大学天津学院-信息工程系
常见错误 (1) 公共类(public class)应与源文件名同名。 北京科技大学天津学院-信息工程系
常见错误 (2) 运行的类名写错,Java中所有类名、变量名 和方法名等均区分大小写。 北京科技大学天津学院-信息工程系
常见错误 (3) 运行的类中不包含main( )方法。 北京科技大学天津学院-信息工程系
Java API文档 选 择 包 选择包中的 接口或类 可查看相应帮助 北京科技大学天津学院 信息工程系 北京科技大学天津学院-信息工程系
本讲小结 Java 是面向对象的跨平台语言。 由Java源代码编译生成Java 字节码,它是 Java 虚拟机 (JVM) 可理解的机器语言指令, 运行于对应操作系统的硬件平台上。 Java开发运行环境的安装和配置。 开发并运行简单的Java命令行程序。 北京科技大学天津学院-信息工程系