1、第1章 Java语言概述,学习导读,Java 语言是对软件开发技术有深远影响、应用前景广泛、具有丰富的类库、继承了C+传统(摈弃了某些不足)广泛使用的网络编程语言。Java语言的特性使它可以最大限度地利用网络。 本章介绍面向对象的基本概念:对象和类,对象的属性。,课程结构,1.1 面对对象的软件开发概述 1.2 面对对象的基本概念 1.3 Java语言概述 1.4 Java程序举例,1.1 面对对象的开发概述,1.计算机硬件和计算机软件 计算机的硬件组成中央处理单元,内存单元,输入输出单元,外存单元 软件运行方式:冯 诺依曼式计算系统 存储运行,1.1 面对对象的开发概述,2. 程序设计语言分
2、四个发展阶段: 第一代语言(1GL) : 二进制机器代码 第二代语言 (2GL) : 汇编语言 (Low Level Language LLL) 第三代语言 (3GL): 高级语言 (HLL)C,Pascal,Bascal 第四代语言(4GL) : 面向对象语言(00P )C+ ,Java,1.2 面向对象的基本概念,简而言之: 面向对象=对象+类+继承+消息 面对对象程序设计围绕的几个主要概念: 抽象数据类型、类、类型层次(子类),继承性、多态性。,1.对象 在面向对象的系统中,面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机中的映射和体现。 对象是由属性和操作所构成的一个封闭整
3、体。属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的外部服务。 例如,大型客机可视为对象,它具有位置、速度、颜色、容量等属性,对于该对象可施行起飞、降落、加速、维修等操作,这些操作将或多或少地改变飞机的属性值(状态)。 对象在计算机内存中的映像称为实例,1.2 面向对象的基本概念,2. 类 它定义一组对象所能拥有的共同特征(属性和能完成的操作),用以说明该组对象的能力与性质。 在面向对象的程序设计中,类是程序的基本单元 例如,飞行器类包含位置、速度、颜色等属性,以及起飞、降落、加速等操作。,1.2 面向对象的基本概念,3.消息消息是对象之间进行通信的一种数据结构。程序的执行是靠对
4、象间传递消息来连接的,即所谓的消息驱动。消息一般由三部分组成,即消息的接收对象名、消息操作名和必要的参数。,1.2 面向对象的基本概念,4.面对对象的特征 (1).抽象 (2).封装 (3).继承 (4).多态,1.2 面向对象的基本概念,抽象和封装 封装的目的在于将使用者与设计者分离,使用者不必知道操作实现的细节,只需用设计者提供的消息来访问对象。 面向对象中封装可按下面具有三个内涵的方式定义: 1)一个清楚的界面,所有对象的内部软件的范围被限定在这个边界内。 2)一个接口,这个接口描述了该对象与其他对象之间的相互作用。3)受保护的内部实现,这个实现提供对象的相应的软件功能,实现细节不能在定
5、义这个对象的类的外面访问,1.2 面向对象的基本概念,继承 继承是面向对象语言中的一种重要机制,该机制自动地为一个类提供来自另一个类的操作和属性,这样程序员只需在新类中定义已有类中没有的属性与(或)操作来建立新类。 Java语言只提供单重继承。,1.2 面向对象的基本概念,多态 多态性是指一个名字具有多种语义,即指同一消息为不同对象所接受时,可以导致不同的操作。在面向对象编程语言中,它是指对象拥有同名,但不同参数格式的许多方法的能力。 程序设计的多态性有两种基本形式:编译时多态性和运行时多态性。编译时多态性是指在程序编译阶段就可确定选择哪个方法的多态性而运行时的多态性则必须等到程序动态运行时才
6、可确定的多态性。,1.3 Java语言概述,1. Java产生的历史2. Java的现状与发展前景,1.3 Java语言概述,3.Java语言特点 Java是一种简单的(Simple)、面象对象的(Object Oriented)、分布式的(Distributed)、解释的(Interpreted)、健壮的(Robust)、安全的(Secure)、结构中立的(Architecture Neutral)、可移植的(Portable)、性能优异的(High Performance)、多线程的(Multithreaded)动态的(Dynamic)语言。 java语言的编译方式: Java编译器把Ja
7、va源程序翻译成被称为字节码的中间代码。,1.3 Java语言概述,两种工作模式的比较,1.3 Java语言概述,Java虚拟机 Java语言为每个计算机系统都提供一个叫做Java虚拟机(JVM)的环境,它包括一个编译器和一套软件系统。,不同的操作系统有不同的虚拟机. 它类似一个小巧而高效的CPU. byte-code代码是与平台无关的 是虚拟机的机器指令. Java字节代码运行的两种方式: interpreter(解释方式) Just-in-time(即时编译):有代码 生成器将字节代码转换成本机 的机器代码,然后可以以较高速 度执行.,1.3 Java语言概述,Java 语言的特点 简单
8、面向对象 分布性 健壮性 结构中立 安全性 可移植性 解释执行 高性能 多线程 动态性,1.3 Java语言概述,4.Java的应用程序类型和Java技术名词介绍 重要技术名词 1)JVM(Java Virtual Machine),即Java虚拟机。2)JRE(Java Runtime Environment),即Java运行环境。3)JDK(Java Development Kit),即Java开发环境。4)Servlet Servlet是指利用Java技术设计的、运行在服务器端的一种程序5)JSP(Java Server Pages),是一种以Java为主的跨平台Web开发语言。6)AW
9、T(Abstract Window Toolkit),即抽象窗口工具包,7)JFC(Java Function Class),即Java基础类库。8)J2EE(Java 2 Platform,Enterprice Edition),即Java 2企业级平台。,1.3 Java语言概述,9)JavaBean JavaBean是一种专门为Java软件开发者设计的全新的组件技术。10)EJB(Enterprise Java Bean),即企业级Java组件。11)RMI(Remote Method Invocation),即远程方法调用。12)JINI JINI技术规范提供了构成电子设备、服务和应用
10、程序网络所使用的机制。13)JDBC(Java Database Connectivity),即Java数据库连接。14)JNDI(Java Naming and Directory Interface),即 Java 命名和目录接口。15)JMS(Java Message Service),即Java通信服务。,1.4基于Windows系统的Java程序,1.Java程序的开发环境 (1)Java开发环境 JDK(从下载) JDK中有Java编译器和bytecode解释器Appletviewer是小应用程序的bytecode解释器 JDK的安装 直接执行JDK.exe,见例,1.4基于Win
11、dows系统的Java程序,产生如下目录结构javabin的目录下包含义以下主要文件:javac: Java编译器, 用来将java程序编译成bytecodejava: Java编译器,解释执行已经转换成Bytecode 的java应用程序.jdb: Java调试器, 用来调试java程序javap: 反编译,将类文件还原回方法和变量.javadoc:文档生成器,创建HTML文件appletviwer : Java解释器, 用来解释已经转换成Bytecode的java小应用程序. javalib子目录 库函数,其中tools.jar不要解开. 设置环境变量在autoexec.bat中加入以下两
12、条命令: 1. PATH c:javabin 2. SET CLASSPATH=. ; c:.libtools.jar;,1.4基于Windows系统的Java程序,(2)集成开发环境(JDE) Visual J+,JBuilde,JCreator Pro 本书采用JCreator集成开发环境 JCreator的安装和使用:见例,1.4基于Windows系统的Java程序,2.第一个Java程序,Exp1.1: public class HelloWorldApp public static void main(String args) System.out.println(“Welcome
13、to JAVA!”); ,通过命令行方式执行:编译:javac HelloWorldApp.java执行:java HeloWorldApp 见例1.1,1.4基于Windows系统的Java程序,Java小应用程序不能直接执行和使用,必须要在浏览器中执行,Exp1.2: import java.awt.*; import java.applet.*;public class Applet1 extends Appletpublic void paint(Graphics g)g.drawString (“Welcome to Java“, 50, 25); ,1.4基于Windows系统的J
14、ava程序,编辑存盘: 主类名(extends Applet)和文件名一致 编译代码 : javac Applet1.java 编写HTML文件 : Applet1.html 运行applet程序: 1. appletviwer Applet1.html2. 在浏览器中运行运行结果 见例1.2,1.4基于Windows系统的Java程序,理解程序: (1) java Application: 所有的Java程序都是由类或者是类的定义组成的。 import是一个关键字,是用来引入系统定义的类 Java中用class来标记一个类的定义的开始,class后面跟着这个类的类名,类名后面的大括号括起的是
15、语句组,Java源程序中的每个语句都必须用分号结束。大括号定义了类的各种组成成分 类中定义了一个main方法。,1.4基于Windows系统的Java程序,注意:关键字的大小不能写错一个程序中可以有一个或多个类,但是其中只能有一个主类。不同类型的Java程序,其主类标志是不同的。源程序编好后,应该以文件的形式保存在硬盘上,称为源文件。需要注意的是,这个源程序的文件名必须与程序的主类名一致,并且以java为扩展名,1.4基于Windows系统的Java程序,(2)Java Applet 每一个Java小应用程序都是java.applet.Applet的子类,所以要用extends继承。在Java
16、小应用程序中没有main方法,这一点是与Java 独立应用程序的根本区别。 当Java小应用程序被浏览器运行时,程序中的paint语句自动执行。在Java小应用程序中与屏幕输出有关的操作是通过Graphics对象来实现的。同Java程序一样,一个Java小应用程序的源文件内最多只能有一个public 类,称为主类,且必须和文件名同名。,1.4基于Windows系统的Java程序,Java程序集成开发环境的运行JCreator例 见附录,本章小节,对象,类,消息 抽象,封装,继承,多态 Java开发环境 Java程序:Java Application和Java Applet Java程序的运行,