1 / 307

第一章 Java 语言概述

第一章 Java 语言概述. 主要内容提要. Java 语言的发展历史. Java 语言的主要特性. Java 程序相关问题. Java 程序的开发环境. Java 程序的开发过程. Java 语言的发展历史. 1991. 1995. 1998. James Gosling 领导的 Green 小组开发了面向数字家电的 Oak 语言. Internet 迅猛发展 Java 语言正式问世被美国著名杂志 PC Magazine 评为 1995 年十大优秀科技产品之一.

sakura
Download Presentation

第一章 Java 语言概述

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第一章 Java语言概述

  2. 主要内容提要 Java语言的发展历史 Java语言的主要特性 Java程序相关问题 Java程序的开发环境 Java程序的开发过程

  3. Java语言的发展历史 1991 1995 1998 James Gosling领导的Green小组开发了面向数字家电的Oak语言 Internet迅猛发展Java语言正式问世被美国著名杂志PC Magazine 评为1995年十大优秀科技产品之一 推出了Java2平台。性能上有所提高,而且对Java的基本模式进行了完善,并提供了更为丰富的API

  4. 华中科技大学IBM技术中心 Java2 的版本划分 J2ME Java 2 J2SE J2EE

  5. 华中科技大学IBM技术中心 Java语言的主要特性 简单性 面向对象 平台无关性 分布式、动态性、 可靠性、安全性 …… 多线程

  6. 华中科技大学IBM技术中心 Java程序相关问题——Java虚拟机 Java虚拟机——在真实机器中用软件模拟实现的一种抽象的机器。(Java虚拟机规范) Java虚拟机主要由五个部分组成:指令系统、寄存器、栈、存储区、碎片回收区 解释和执行Java程序编译后产生的字节码

  7. 华中科技大学IBM技术中心 Java程序相关问题——Java API Java API是Java系统提供的预先定义好的软件组件的集合,它们提供了许多可供程序员调用的常用功能 丰富的API为程序员提供了极大的方便,但也是学习的难点 要学会使用Java API手册(The Java 2 Platform API Specification ) http://java.sun.com/j2se/1.5/docs/api/index.html

  8. 华中科技大学IBM技术中心 Java程序相关问题—— Java程序的运行机制 编译 连接 运行 源代码 目标码 可执行代码 操作系统 传统语言的运行机制 编译 解释执行 源代码 字节码 Java解释器 Java语言的运行机制

  9. 华中科技大学IBM技术中心 Java程序相关问题——Java程序类型 Java应用程序(Java Application) 是独立完整的程序 在命令行调用独立的解释器软件即可运行 主类必须有main方法,这也是程序的入口 Java小程序 Java Applet——是指在客户端运行的Java小程序,一般来说客户端是指用户所使用的浏览器 Java Servlet——是在服务器端执行的Java小程序,为了能够支持Servlet的运行,服务器端必须安装包含Java虚拟机的服务器软件,这种能够支持服务端小程序的服务器一般被称为应用服务器

  10. 华中科技大学IBM技术中心 Java开发环境 JDK/J2SDK(Java Developer Kit) JDK1.02 JDK1.1.x JDK1.2/J2SDK1.3/J2SDK1.4/JDK5.0(J2SDK1.5) Java集成开发环境(IDE) NetBeans JBuilder Eclipse JCreator Forte for Java Visual J++ WSAD ……

  11. 华中科技大学IBM技术中心 JDK的安装与设置 从http://java.sun.com/可以下载相关版 本的JDK(本课程采用J2SDK1.3以上版本) 在Windows平台上运行安装程序,以安装JDK 设置PATH(文件路径)参数。由于JDK提供的实用程序都在安装目录下的子目录bin下,为了能在任何目录下直接使用文件名调用这些程序,必须设置操作系统的文件路径参数

  12. 华中科技大学IBM技术中心 环境设置 在Windows环境下,为了快速进入指定目录的命令行窗口,可在注册表中增加项目: [HKEY_CLASSES_ROOT\Directory\shell\进入命令行\command] 默认值设为: cmd /k "cd %1"

  13. 华中科技大学IBM技术中心 JDK的目录结构 • bin目录中包含了所有JDK5.0提供的实用程序 • demo目录中包含了JDK5.0自带的实例程序 • inculde目录中包含了一些支持Java native方法的C\C++头文件 • jre目录中包含了Java运行环境所需的所有文件,这个目录中所包含的java运行环境是JDK私有的,它只为JDK的实用程序提供支持 • lib目录中包含了Java开发环境所需的库文件,它们以jar文件的形式保存 • sample目录中包含的是体现JDK5.0新特性的一些例程

  14. 华中科技大学IBM技术中心 JDK实用程序简介 javac:Java编译器,将Java源代码编译为字节码; java:Java解释器,用来解释执行Java程序的字节码文件; appletviewer(小程序浏览器):一种执行HTML文件上的Java小程序类的Java浏览器; javadoc:根据Java源代码及其说明语句生成的HTML文档; jdb:Java调试器,可以逐行地执行程序、设置断点和检查变量; javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件; javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

  15. 华中科技大学IBM技术中心 Java程序的开发过程 编辑源代码 编译源代码文件 运行程序

  16. 华中科技大学IBM技术中心 Java程序的开发过程——编辑源代码 一般情况下,我们可以使用系统平台下的任何文本编辑器进行源代码的编辑,在Windows平台下常用的是Window系统自带的“记事本”程序或“写字板”程序 Java源码大小写敏感 Java源码文件的扩展名:.java Java源程序文件也不能随意命名,其文件名必须与程序中主类的类名完全相同,包括大小写在内 public class MyFirstJavaApp { public static void main(String[] args) { System.out.println(“This is My First Java Application!”); } }

  17. 华中科技大学IBM技术中心 Java程序的开发过程——编译源代码 使用JDK实用程序javac对源代码文件进行编译 C:\MyJava>javac MyFirstJavaApp.java 如果系统提示符再次出现并且没有任何消息产生,那么编译便成功了 如果有系统报错消息产生,则表示程序编译出错,程序员必须阅读报错信息,并根据这些信息对程序进行修改 程序成功编译后,在与源代码文件同一目录下会生成一个新的文件,其文件名与源代码文件名相同,扩展名为“.class”。这个文件就是源代码文件编译产生的程序字节码文件 MyFirstJava.class

  18. 华中科技大学IBM技术中心 Java程序的开发过程——运行程序 • 要执行一个Java程序非常简单,只需在字节码文件所在目录下输入下列命令就可以了: • java 字节码文件名

  19. Question?

  20. 华中科技大学IBM技术中心 2006 第2章 面向对象的编程概念

  21. 华中科技大学IBM技术中心 主要内容提要 什么是对象 什么是消息 什么是类 什么是继承 什么是接口

  22. 华中科技大学IBM技术中心 面向对象 vs. 面向过程 面向对象(OOP)——Object-Oriented Programming 用类class封装数据以及与数据相关的操作 用类的继承性来实现类的重用性 多态性 面向“对象”,由对象提供服务 面向过程(POP)——Procedure-Oriented Programming 以功能为组织单元 通过数据结构来描述具体的问题 数据在功能(函数)之间以参数的形式被传送

  23. 华中科技大学IBM技术中心 现实世界中的对象 • 现实世界是由对象构成的 • 现实世界中任何实体都可以看作是对象 • 现实世界中的对象有两个共同特征: • 状态 • 行为

  24. 华中科技大学IBM技术中心 软件对象(Object) 变量 方法 • 软件对象是现实世界对象的抽象 • 软件对象同样具有状态和行为 • 定义:对象是变量和相关方法的软件组合

  25. 华中科技大学IBM技术中心 现实对象→软件对象 是否饿了:否 名字:小Q 吃 颜色:黑 叫 咬 方法

  26. 华中科技大学IBM技术中心 封装(Encapsulation) 变量 方法 • 封装性体现了面向对象程序设计的一个特性,将方法和数据组织在一起,隐藏其具体实现而对外体现出公共的接口 • 模块化 • 隐藏信息

  27. 华中科技大学IBM技术中心 消息(Message) 复杂的行为必须通过对象之间的交互来实现 软件对象与其它对象进行交互与通讯是通过互发消息来实现的 消息 对象 A 对象B

  28. 华中科技大学IBM技术中心 消息的组成 消息的目的对象 要执行的方法的名称 方法所需参数 换档(低档) 你 你的车

  29. 华中科技大学IBM技术中心 消息的性质 同一对象可接收不同形式的多个消息,产生不同的响应 同一个消息可以发给不同的对象,所做出的响应可以截然不同 发送方不需要知道接受方如何对请求予以响应的

  30. 华中科技大学IBM技术中心 类(Class) • 定义:类是蓝图或原型,它定义了所有某种类的对象的共有的变量和方法 • 类是具有共同属性和行为的对象的抽象与集合 私有的实现细节 公共API

  31. 华中科技大学IBM技术中心 实例(Instance) • 定义:特定类所描述的一个具体对象

  32. 华中科技大学IBM技术中心 对象、类与实体的关系 计算机世界 现实世界 映射 对象 实体 实例化 抽象 抽象 计算机逻辑的实现 类 抽象数据类 概念世界

  33. 华中科技大学IBM技术中心 继承(Inheritance) 父类 共性部分 子类 继承部分 个性部分 • 广义地说,继承是指能够直接获得已有的性质和特性,而不必重复定义它们。在面向对象的软件技术中,继承是子类自动地共享父类中定义的数据和方法的机制。

  34. 华中科技大学IBM技术中心 单重继承与多重继承 单重继承:一个子类只有一个唯一确定的父类 单重继承所构成的类的关系结构是一棵树 多重继承:一个子类可以有多个不同的父类 多重继承所构成的类的关系结构是一个格 Java语言仅支持单重继承

  35. 华中科技大学IBM技术中心 继承的作用 使软件系统具有开放性 更好地进行抽象与分类 实现代码的复用 提高可维护性

  36. 华中科技大学IBM技术中心 类型(Type) 在面向数值的编程中,类型通常用作数据的表示。在Java这样的强类型语言中,在编译期,每一个变量和表达式都有一个类型与之相对应 Java中的类型:基本类型、类、接口

  37. 华中科技大学IBM技术中心 接口(Interface) 接口和类一样也是一种类型,也同样包含一些方法的定义。但与类不同的是:接口中所定义的所有方法都是抽象方法(即没有实现的方法)。 接口中所定义的方法由实现(implement)该接口的类来实现,一个类可以同时实现多个接口 接口机制使Java的面向对象编程变得更加灵活。解决了单重继承带来的问题 接口定义了对象的行为模型,相当于一个协议。实现接口的各个类负责实现接口所定义的行为。虽然实现细节各不相同,但对用户来说是一样的行为。

  38. 华中科技大学IBM技术中心 面向对象的示例 本例中包含很多对象:点、窗口、颜色、点击事件…… 代码:ClickMeApp.java , ClickMe.java,Spot.java

  39. 华中科技大学IBM技术中心 Spot类 public class Spot { //instance variables private int size; public int x, y; //constructor public Spot() { x = -1; y = -1; size = 1; } //methods for access to the size instance variable public void setSize(int newSize) { if (newSize >= 0) { size = newSize; } } public int getSize() { return size; } }

  40. 华中科技大学IBM技术中心 Spot对象 private Spot spot = null; ... spot = new Spot();

  41. 华中科技大学IBM技术中心 示例中的消息 g2d.setColor(Color.WHITE); g2d.fillRect(0, 0, getWidth() - 1, getHeight() - 1);

  42. 华中科技大学IBM技术中心 示例中的继承和接口 public class ClickMe extends JComponent implements MouseListener { ... } public class ClickMe extends JComponent implements MouseListener { ... //Methods required by the MouseListener interface. public void mousePressed(MouseEvent event) { if (spot == null) { spot = new Spot(); spot.setSize(RADIUS); } spot.x = event.getX(); spot.y = event.getY(); repaint(); } public void mouseClicked(MouseEvent event) {} public void mouseReleased(MouseEvent event) {} public void mouseEntered(MouseEvent event) {} public void mouseExited(MouseEvent event) {} } }

  43. Question ! 欢迎提问

  44. 华中科技大学IBM技术中心 CodePub.com整理 第三章 Java语言基础

  45. 华中科技大学IBM技术中心 变量(Variable) 对象将它的状态存储在变量中 定义:  变量是一个由标识符命名的数据项 变量名必须是一个合法的标识符 --一个以字母开头的无限制的Unicode字符序列。 变量的声明: 类型 名称[ = 初始值]; int i; double pi = 3.1415926; String name;

  46. 华中科技大学IBM技术中心 数据类型 每个变量都必须有一个数据类型. 一个变量的数据类型决定了它能容纳的值和在它上面可以进行什么操作。 Java编程语言有两大类数据类型: 原始类型(primitive) 引用类(reference)

  47. 华中科技大学IBM技术中心 Java的数据类型 Java type system Java type system primitive primitive reference reference char char numeric numeric boolean boolean class class interface interface array array integer integer floating floating - - point point byte byte short short int int long long float float double double

  48. 华中科技大学IBM技术中心 原始类型变量包含单个值,其大小和格式与它的类型匹配:数字、字符或布尔值。 Java语言没有unsigned类型 0xFFFF和0xFF谁大? Java语言必须强制类型转换 float f = 0.1; boolean b = 1; 原始类型

  49. 华中科技大学IBM技术中心 引用类型 • 数组,类和接口就是引用数据类型.与原始类型变量的值不同的是,引用类型变量的值是对应变量代表的一个值或一组值的引用(也就是其地址) • 在其他语言里引用被称为指针或者内存地址。Java不支持显示地使用地址,而是使用变量的名称代替。

  50. 华中科技大学IBM技术中心 变量的引用 通过变量名引用变量的值 简单名称:由单个标识符组成的名称 限定名称:通过类名或对象名引用改类或对象中的成员变量 System.out.println(i+spot.x);

More Related