第 1 章 Java 语言概述 主讲:胡伏湘
问题与思考 1 、 C 语言中最难学的是什么内容? 2 、什么叫可视化程序设计语言?举例说明。
1.1 Java 语言的起源与发展 Java 的起源 Java 语言的前身 : Oak (橡树),以 C++ 为基础 Java : Oak 语言被重新定位于 WWW 浏览 器的应用上 Java 确定是有史以来最伟大的程序设计语 言 --Bill Gates
1.1 Java 语言的起源与发展 Java 的发展 应用广泛:是一种基于 Internet 的网络编程语言 技术先进:面向对象的编程环境、对多媒体信息 的全面支持、多线程技术的使用 市场推广积极:负责开发并推广 Java 技术的 SunSoft 公司将通过颁发许可证的办法来允许 各家公司把 Java 虚拟机和 Java 的 Applets 类 库嵌入他们开发的操作系统
1.1 Java 语言的起源与发展 Java 语言对软件开发技术的影响 软件的需求分析 软件的开发方法 Java 语言的动画效果 软件最终产品 移动通信方面
1.1 Java 语言的起源与发展 Java 语言的前景 所有面向对象的应用开发 计算过程的可视化、可操作化的软件开发 动态画面的设计 交互操作的设计 Internet 的系统管理功能模块的设计 ……
1.2 Java 语言的特点 Java 语言的性能特点 面向对象:程序 = 对象 + 消息 平台无关性 : JVM ,与 OS 及硬件无关 分布式 :支持 C/S 及 B/S 工作模式 可靠性和安全性 :自动错误检查和内存管理 多线程 :自身多线程,提供多线程管理机制 简单性 :省去了多重继承,运算符重载
1.2 Java 语言的特点 Java 语言的性能特点 健壮性:提供异常处理机制 高性能: JAVA 解释器直接解释字节码 灵活性:类库可以自由添加类,方法,属 性, Sun 公司也在不断扩充完善软件功能
1.2 Java 语言的特点 Java 语言与 C 、 C++ 语言的区别 全局变量 :不能在类外定义全局变量 goto 语句 :不支持,用 try…catch 捕获异常 指针 :取消指针,采用数组实现 内存管理 :自动内存回收 数据类型的支持 :固定位数,实现平台无关 类型转换 :自动检查类型的兼容性
1.2 Java 语言的特点 Java 语言与 C 、 C++ 语言的区别 头文件:不支持,采用包机制 结构和联合 :不支持 预处理:不支持,通过 final 定义常量
1.3 Java 语言程序分类 Java 语言应用程序( Application ) public class HelloJavaWorldApp { //an application public static void main (String args[ ]){ System.out.println("Hello Java World!"); } } // 文件名: HelloJavaWorldApp.java
算法设计思考题 有 n 个同学一起出去玩,需要住宾馆,每 m 个人一间,请问要订多少间房间? C 语言中指针是什么?指针与地址有什么 关系?指针与数据有什么关系? 如果有 k 个对象,其结构完全相同,请问 用什么办法表示才能使变量数最少?采 用这种方法时,一般 k 值是多大?
1.3 Java 语言程序分类 Java 语言应用程序( Application ) 运行过程: Javac HelloJavaWorldApp.Java 回车 Java HelloJavaWorldApp 运行结果: 在屏幕上显示 Hello Java World!
1.3 Java 语言程序分类 小应用程序( JavaApplet ) import Java.awt.*; import Java.applet.*; public class HelloWorldApplet extends Applet { //an applet public void paint(Graphics g){ g.drawString ("Hello World!" , 20 , 20);} } 源程序文件名是 HelloWorldApplet.Java
1.3 Java 语言程序分类 小应用程序( JavaApplet ) 运行过程: 1 、编译 Javac HelloWorldApplet.Java 2 、编辑 HTML 网页文件,其中含有语句: 3 、运用浏览器或者 JAVA 自带的浏览器仿 真软件 appletviewer 打开此网页文件
1.4 Java 程序的运行 安装和设置 JDK 1 、下载 JDK 并安装: Java.sun.com 2 、查找路径的设置 :利用 path 环境变量 完成,或设置文件 autoexec.bat 3 、类路径的设置:利用 classpath 环境变量 完成 set classpath=.;c:\j2sdk1.4.1\lib\dt.jar; c:\j2sdk1.4.1\lib\tools.jar (假设 JDK 安装在 c:\j2sdk1.4.1 目录下)
1.4 Java 程序的运行 JDK 环境下 Java 程序的编译与运行 1 、编辑源程序,产生.Java 的文件 2 、运用 Java 虚拟机 JVM 将源文件编译 为.class 的字节码文件 3 、根据程序的不同类型运行程序 如果是 Applet 程序,则必须先建立网页文 件,并将字节码文件嵌入进来。
1.4 Java 程序的运行 其它编程工具介绍 1 、 Jbuilder :集成环境,功能强大,界面复杂 2 、 Jcreator :界面简单,功能齐全,运行方便 3 、 Java Workshop 4 、 Visual Age for Java 5 、 Visual Cafe for Java 6 、 FreeJava 7 、 VJ++ 6.0
1.5 Java 虚拟机 复 习 1 、举例说明 Java 程序与 C 语言程序 有什么不一样? 2 、 Java 程序设计语言可以用于什么 场合?举例说明。
1.5 Java 虚拟机 Java 虚拟机 JVM 的功能 加载.class 文件 管理内存 执行垃圾收集 JVM 是在一台真正的机器上用软件方式实现的一 台假想机, JVM 使用的代码存贮在.class 的字 节码文件中, JVM 的某些指令很像真正的 CPU 指令,包括算术运算、流程控制、数组元素访 问等功能
1.6 面向对象编程基础 对象、类和消息 对象 object 就是变量和相关的方法的集合, 其中变 量表明对象的状态, 方法表明对象所具有的行为 类 class 中定义一类对象共有的变量和方法。把一 个类实例化即生成该类的一个对象 对象之间必须要进行交互来实现复杂的行为 ,用 消息 message 的形式提供信息,消息包括 3 个方 面(接收者,方法,参数)
1.6 面向对象编程基础 继承 inherit 通过对象、类,可以实现封装 encapsulation ,通 过子类则可以实现继承 通过父类 fatherclass 和子类 subclass ,实现类的的 层次,可以从最一般的类开始,逐步特殊化定 义一系列的子类 通过继承实现了代码的复用,使程序的复杂性线 性地增长,而不是呈几何级数增长
1.6 面向对象编程基础 抽象 abstract 与接口 interface 抽象化概念的生成是为了要降低程序版本 更新后,在维护方面的负担 使得功能的提供者,和功能的用户能够分 开,各自独立,彼此不受影响 为了达到抽象化的目的,需要在功能提供 者与功能使用者之间提供一个共同的规 范 ,即接口
1.6 面向对象编程基础 多态 polymorphism Java 通过方法重写和方法重载来实现多态。 通过方法重写 override ,一个类中可以有多 个具有相同名字的方法,由传递给它们 的不同个数的参数来决定使用哪种方法, 这就是多态 通过方法重载,子类可以重新实现父类的 某些方法,使其具有自己的特征
1.6 面向对象编程基础 类的实现 1 .类的声明 class ClassName { …… } 2 .类体 类体中定义了该类所有的变量(即属性)和该类 所支持的方法。通常变量在方法前定义 ( 并不一 定要求 )
1.6 面向对象编程基础 类的实现 3 .成员变量 最简单的成员变量的声明为: type variableName; 成员变量的类型可以是 Java 中的任意数据 类型包括简单类型、数组、类和接口。 在一个类中,成员变量应该是唯一的