版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 Java语言概述,1,1.1 Java的历史,(前身)OAK(James Gosling 1990) 90年,Sun公司开始Green工程 93年,WWW席卷全球 94年,开始定位于Internet 95年,Java命名 Hotjava, 第一个支持Java的浏览器 Netscape2.0 1995.5.23 Java诞生(Java1.0.2 API) 1997.2.18 JDK1.1 (java1.1 API) VJ+6.0、cafe、JBuilder . 支持 1998.12 JDK1.2 (Java 2 SDK v1.2 Standard Edition) 2009. JDK 1
2、.6 2011. JDK 1.7,2, ,Java资源网址,3,Simple : 易学;自动内存管理;简化重载;去掉指针及C+中一些不是绝对必要的功能 object-oriented: 纯面向对象语言,程序代码以类的形式组织,由类来定义对象的各种状态和行为 Distributed : 丰富的网络编程功能-轻松处理TCP/IP ;通过URL访问远地资源;字节码可来自网络,1.2 Java语言特点,4,Interpreted: Java是解释型的,但Java通过预先将源代码编译为接近于机器指令的字节码,有效地克服了传统解释型语言的性能瓶颈,同时又保持了解释型语言的可移植性;Java解释器能直接在任
3、何机器上执行Java字节码 Robust: 静、动态检查,排除出现错误的条件;异常处理机制,正确处理运行时的错误;取消指针,保护内存数据与程序;数据类型的匹配,数组下标越界检查;自动内存管理,碎片收集,5,Secure: 用于网络/分布式运算环境,确保建立无病毒且不会被侵入的系统;内存分配及布局由Java运行系统决定;字节码加密传输,客户端校验 architecture-neutral: Java应用程序能够在网络上任何地方执行;字节代码 - 平台无关性;完全统一的语言版本 - 实现无关性;访问底层操作系统功能的扩展类库 不依赖于具体系统 Portable: 源于平台无关性,且Java本身环境
4、的可移植性,6,high-performance: 字节码- 目标代码;JIT(Just-In-Time)即时时编译器 multi-threaded: 在语言级嵌入了对并发控制的功能 - 多线程控制,大大简化了多线程应用程序的开发 Dynamic: 面向对象设计的延伸。JAVA的基本组成单元是类,而Java的类又是运行时动态装载的。可以在分布环境中动态地维护应用程序和类库的一致性。更能适应时刻变化的环境。Java不会因程序库的更新,而必须重新编译程序,7,1.3 Java开发环境与工具,Java技术包括两部分: Java程序设计语言 Java平台。 Java 语言是一种广泛使用的高水平的程序设
5、计语言,是一个有力的软件平台。这个语言平台为软件开发提供了一整套必备的工具和功能实现,具体如下列的功能: 开发工具:提供编译、运行、监视、调试和应用程序文档生成等开发工具。对于初学者,主要使用的工具有:编译工具javac,运行工具java, 文档生成工具javadoc。,8,应用程序接口API:API提供Java程序设计语言的核心功能。比如队列,网络,安全,XML,数据库访问。核心API包含的内容非常大,具体可查阅SDK文档。 部署技术:JDK提供了标准机制部署你的应用程序给最终用户,例如 Java Web Start 和 Java技术。 用户界面工具箱:Swing 和 Java 2D too
6、lkits 用于创建传统的图形用户界面(GUIs)。 其他功能综合库:包含如IDL, JDBC, JNDI, RMI, RMI-IIOP 等。,9,Java程序开发和运行环境的组成:,10,Java程序设计语言是一种高级语言,它用我们熟悉的字词、句等表述需要计算机为我们做的事情。大多数程序设计语言,都要经过编译或解释以便能在计算机上运行。 在Java程序设计语言中,所有源代码写在一个扩展名是.java的纯文本文件里。这些源文件通过Java编译器(javac.exe)编译成.class文件。.class文件不包含本地处理器的代码,而包含Java虚拟机机器语言代码,它是一种在Java平台上被解释器
7、解释的平台无关代码,称之为“字节码”。,1.Java程序设计语言,11,Java执行工具(java)用来运行.class文件,它是一个解释程序,又称“Java虚拟机”,它负责解释分解并执行每个Java字节码指令。下图反映这个过程:,12,Java虚拟计算机,可以认为Java字节码像机器指令码一样。任何Java解释器,不论是开发工具的,还是运行applet的web浏览器,都可认为是运行的Java虚拟计算机。Java虚拟机在许多不同的操作系统都是有效的,所以同样的.class文件有能力运行在Windows、Solaris、 Linux、MacOS等多种操作系统下,如图:,13,2.Java平台,平
8、台是程序运行的硬件和软件环境。我们已经了解的一些流行平台像Windows、Linux、Solaris和MacOS等。多数平台被描述成操作系统与硬件的复合体。Java平台不同于其它平台,它是一个纯软件平台,在其它硬件基础平台上运行,如下图:。,14,Java平台有两个部分: Java虚拟机(Java VM) Java应用程序接口(Java API) Java虚拟机是Java平台的基础,是在各种不同的硬件基础平台上的接入口。Java字节码程序就是由它解释并执行,同时提供程序的运行环境。 Java API是一个巨大的,提供许多有用功能的,软件组成的集合体。Java API被组合在库中,由相关的类和接
9、口构成,这些库称做“包”。下图表示运行在Java平台上的程序。图中显示,Java API和虚拟机把程序与硬件隔离开,Java程序通过API在VM上运行。,15,16,J2 SDK,JRE,JVM,JVM plus all APIs, compilers ,tools, and documentation (what you need in order to write java technology programs).,JVM plus basic APIs (what you need to distribute to people who will run your Java progr
10、ams),17,3 Java术语,JVM java虚拟机 JVM将 java 字节码程序翻译成机器语言。然后由计算机执行。 JRE java 运行环境 JRE 是由JVM 和 java platform 核心类以及相关支撑文件组成。 API Application programming interface. API 是rules(syntax) :在java技术中如何编程。 API包括数百个类公司预先编好的代码,你可以在编程中充分利用它们的功能。,18,JDK java developers kit (java开发工具包) JDK 包含JVM和其他工具,以及所有的API和相关的文件。 JDK
11、 是java 技术的旧名(1999年11月以前采用), JDK1.1 是最后版本。 Java 2 Java 2 Platform, J2 SDK java技术的新名称。 SDK Software Development Kit,19,4.Java虚拟机,JVM提供以下定义: 指令集(Bytecodes 是JVM的机器指令)。 寄存器组 类文件格式 栈 垃圾回收“堆”(实现内存的动态分配和自动回收) 内存区域,Java程序执行时,首先虚拟机对要执行的class文件装载,然后对字节码进行验证,最后用解释器对字节码解释执行,下图是jvm的逻辑构造。,20,类装配器,字节码验证器,解释器,本地计算机系
12、统,代码生成器 JIT code generator,Xxx.class,21,加载代码 类装配器 加载程序运行所需要的所有的类。类装配器将本地文件系统的类的名字空间与从网络资源来的类的名字空间分开。这样就限制了特洛伊木马程序,因为本地类总是首先加载。 一旦所有的类被加载,可执行程序的内存布局就被确定了。内存地址被分配给符号引用表,查找表被建立。由于内存的布局出现在运行时刻,防止了对于代码域的未授权的访问。,22,验证代码 字节码验证器 java代码在你的机器上执行前要经过几个测试。字节码验证器测试代码段的格式,检查代码段是否有非法代码(伪造指针,对象上的非法存取,试图改变对象类型等)。 所有
13、网络来的类文件都要经过字节码验证。 执行代码 解释器,23,5.Java开发工具,Java开发工具是用于编写编写和生成Java程序。对于现有的计算机平台,必须安装Java开发工具箱,即Java Development Kit,简称“JDK”,才能够运行和开发Java程序 。JDK由Sun公司提供,其安装包可以从Sun公司的Java网站下载获得,网站地址: 。 注意,Sun公司针对不同的平台提供了各自不同的安装包,下载时根据需要选择下载。 JDK仅为程序开发者提供了一个基本的Java程序编写环境,对于那些大型的复杂的Java程序,需要一种综合集成的大型开发工具。,24,1.4 建立Java平台和
14、开发环境,1.建立Java平台,Java平台的建立只需安装JDK或JRE就可以完成。JRE是Java运行环境(Java Runtime Environment)缩写,如果仅仅用来运行Java程序,仅安装JRE就可以了。如果需要开发和运行Java程序,就必须安装JDK。 第一步:下载JDK。 通常到sun的Java网站去下载JDK的安装包程序,当然也可以从别的地方获得。JDK安装程序的文件名不同的版本可能有差异,这里以JDK1.6.0_16为例,它的安装包程序文件名是 jdk-6u16-windows-i586.exe。,25,JDK安装程序,将文件下载到你的计算机某个文件夹,比如“C:temp
15、”,见下图。,26,第二步:运行JDK安装程序。 与执行其他程序一样,用鼠标双击刚才下载的JDK安装程序,开始安装JDK。在安装过程中通常不用人为干预,安装程序会自动安装,当出现提示时只要用鼠标点击“下一步”或“Next”按钮即可。当安装成功结束后,在计算机操作系统所在的磁盘上看到存放Java系统的文件夹,默认安装目录是: C:Program FilesJavajdk1.6.0_16 下图显示执行jdk-6u16-windows-i586.exe后JDK的安装目录 。,27,JDK安装目录,28,在JDK安装目录中包含有: 开发工具:(bin)指工具和实用程序,可帮助您开发、执行、调试和保存以
16、 Java编程语言编写的程序。Java用于运行Java程序,Javac用来把Java源程序(.java)编译成能由Java解释执行字节码程序(.class)。 运行时环境:(jre)由 JDK 使用的 Java Runtime Environment (JRETM) 的实现。JRE 包括 JavaTM 虚拟机 (JVMTM)、类库以及其他支持执行以 JavaTM 编程语言编写的程序的文件。 附加库:(lib开发工具所需的其他类库和支持文件。,29,演示applet和应用程序:(demo)JavaTM 平台的编程示例(带源代码)。包括使用 Swing 和其他 Java 基类以及 Java平台调试
17、器体系结构的示例。 样例代码:(sample)某些 Java API 的编程样例(带源代码)。 C头文件:(include)支持使用Java本机界面、JVMTM 工具界面以及 Java平台的其他功能进行本机代码编程的头文件。 源代码:(src.zip)组成 Java 核心 API 的所有类的 JavaTM 编程语言源文件(即,java.*、javax.* 和某些 org.* 包的源文件,但不包括 com.sun.* 包的源文件)。,30,第三步:设置JDK环境变量。 通常JDK安装完成后需要设置Java环境变量PATH和CLASSPATH。,(1).PATH变量 是操作系统用于查找可执行文件的
18、目录集,格式如下: PATH=;bin JDK安装完成以后需要将开发工具的存放目录加入到PATH变量中,使得在编译或执行Java程序时操作系统能够找到编译程序javac或解释程序java。,31,(2).CLASSPATH变量 是Java编译器编译用于查找相关类或接口的目录集,也是Java解释器用于查找相关类或接口的目录集,格式如下: CLASSPATH=或;. 这里由每个jar文件及存放它的目录名组成,例如 D:Program FilesJavajdk1.6.0_16libdt.jar 多个路径名之间用“;”分隔。,32,在Windows系统下设置环境变量可以从控制面板的系统设置添加。这里以
19、JDK1.6为例介绍环境变量的设置过程,假设JDK安装的安装路径是 C:Program FilesJavajdk1.6.0_16,在控制面板中打开“系统”,选择“高级”标签见图.,然后“环境变量”按钮打开环境设置窗口,见图 .,33,在“系统变量”中选择“Path”,然后安下“编辑”按钮弹出“编辑系统变量”窗口。,34,在“变量值”中添加 ;C:Program FilesJavajdk1.6.0_16bin; 最后按下“确定”。,35,在“系统变量”中后按下“新建”按钮。 在“变量名”中输入CLASSPATH。在“变量值”中依次输入下列内容 C:Program FilesJavajdk1.6.
20、0_16jrelibrt.jar; C:Program FilesJavajdk1.6.0_16libdt.jar; C:Program FilesJavajdk1.6.0_16libtools.jar; (省略) 按下“确定”。,36,Java平台建立(即安装JDK)完成后就可以运行或开发Java程序了。JDK提供了基本的Java开发工具,这些工具放在JDK安装目录下的bin目录。但是,对于复杂大型的Java程序是不能满足要求,需要专门的集成开发工具。下面分别介绍JDK提供主要工具软件,并对目前常用的集成开发工具做简单介绍。,(1)JDK开发工具,JDK开发工具包括工具和实用程序,可帮助开发
21、、执行、调试和保存以 Java 编程语言编写的程序。在这些程序中主要工具程序有:编译工具Javac,解释工具Java,文档生成工具,Java平台调试工具等。,2.建立Java开发环境,37,Javac Java编译器,将Java源程序编译成字节码,生成class文件。在bin目录下,文件名称是javac.exe。命令格式:,javac 选项 源文件 类 argfiles 其中, 选 项 编译参数。 源文件 一个或多个需要编译的java源程序文件。 类 一个或多类。 argfiles 参数文件。,38,使用示例:编译Java源程序HelloWorldApp.java。,39,Java Java解
22、释器,直接从类文件执行Java应用程序,即application。命令格式:,java 选项 类 参数. java 选项 -jar jar文件 参数. javaw 选项 类 参数. javaw 选项 -jar jar文件 参数. ,其中, 选项 运行参数。 类 被调用的类的名称。 -jar jar文件 被调用的jar文件名称。 参数 传送给main方法的参数串。,40,使用示例:执行Java类HelloWorldApp.class。,41,(2)Java集成开发工具,集成开发环境(简称IDE及Integrated Development Environment的缩写)是用于提供程序开发环境的应
23、用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。就是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫做集成开发环境,可以独立运行,也可以和其它程序并用。JAVA的集成开发环境很多,比如 JCreator,NeBeans,Java Studio,JBuilder,Java Workshop,JDeveloper,Visual Age for java,Eclipse等等,这里简单介绍JCreator、netbeans和eclipse。,42,JCeator 分为JCeator Le和JCeator Pro两个版
24、本,JCreat Le为免费版,而JCeator Pro要注册。JCreat Le功能不及JCeator Pro。 JCreator Pro是一款适合于各个 Java 语言编程开发人员的IDE工具。它为使用者提供了大量强劲的功能,例如: 项目管理、工程模板、代码完成、调试接口、高亮语法编辑、使用向导以及完全可自定义的用户界面。缺点是只能进行简单的开发,不能进行企业J2EE开发应用。,43,NetBeans IDE NetBeans是一个全功能的开放源码Java IDE,可以帮助开发人员编写、编译、调试和部署Java应用,并将版本控制和XML编辑融入其众多功能之中。NetBeans 可支持Jav
25、a 2平台标准版(J2SE)应用的创建、采用JSP和Servlet的2层Web应用的创建,以及用于2层Web应用的API及软件的核心组的创建。此外,NetBeans 最新牒还预装了两个Web服务器,即Tomcat和GlassFish,从而免除了繁琐的配置和安装过程。所有这些都为Java开发人员创造了一个可扩展的开放源多平台的Java IDE,以支持他们在各自所选择的环境中从事开发工作,如Solaris、Linux、Windows或Macintosh。,44,2010年6月16日,Oracle正式发布NetBeans 6.9正式版,将扩大对JavaFX 1.3和OSGi的支持。目前Netbean
26、s的最新版本是Netbeans 6.9.1 可以从官方网上下载安装文件netbeans-6.9-ml-windows.exe,下载网址: / 。Netbeans的安装分为两步: 安装JDK(如果已经安装了JDK可以跳过)。 安装netbeans 6.9.1。运行安装文件即可。如果没有特别的使用要求,安装过程中出现提示时直接点击【Next】或【ok】按钮,直到安装结束。,45,Eclipse,Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为C+、Python、PHP等其他语言的开发工具。Ec
27、lipse的本身只是一个框架平台,众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。 Eclipse的运行需要有Java的虚拟机存在,在编译java的时候不需要额外的编译器。自身就能对java源代码进行编译。由于Eclipse是使用java编写的,所以在跨平台上做的很好,常用的平台Eclipse都能运行。,46,Eclipse最大的特点使用插件满足使用者根据自己的需要对其进行扩展,且Eclipse源代码进行开放,使插件的数量不断增长,其中不乏一些非常优秀的插件。也使得Eclipse的功能大大增强,使用Ecli
28、pse作为基础来开发的软件也很多。,47,Eclipse的安装分为两步: 安装JDK(如果已经安装了JDK可以跳过)。 到下载eclipse,可以选择: Download now: Eclipse SDK 3.2 , Windows (120 MB) 下载完成后,只需要将下载的压缩文件eclipse-SDK-3.2-in32.zip解压到指定位置,例如d:Eclipse即可完成安装. 安装完成后,eclipse文件夹中的目录结构如图:,48,启动eclipse,双击安装目录下的eclipse.exe文件,在启动画面消失后,屏幕将显示一个对话框,提示选择工作空间的目
29、录位置,这个目录用于存放用户创建的项目文档(你自己选一个地方),最后进入Eclipse的工作环境.如图:,49,1.5 Java(源)程序结构,1.Java程序的构成,Java 程序是由一个或多个编译单元构成,每个编译单元都一个以.java为扩展名的文本文件,又称Java源程序文件。在java编译单元(源程序)中包含几种不同的元素,即:,package 语句 import 语句 类(class)声明或接口(interface)声明语句,50,一个程序可包括若干个类。 各类之间存在并列、继承和包含关系。 这些类通常是在一起协同工作的。 编程只能在方法中。 类和方法中的语句包含在“”和“”之间。
30、每条语句以分号“;”结尾。 语句由表达式、变量、字面值和关键字构成。 编译后每个类产生一个 .class 文件。,51,package 包名称; import 包名.类; class 类名1 域定义 方法名1() 方法名2() . ,52,Java示例程序:LotsHellosApplication . java,53,2.Java程序的几种类型,Application(Java应用程序) “Java应用程序”是可以独立运行的Java程序。由Java解释器控制执行。 Applet(Java小程序) “Java小程序”不能独立运行,而是被嵌入到Web页中。由Java兼容浏览器控制执行。,54,S
31、erverlets Java技术对CGI 编程的解决方案。 运行于Web server上的、作为来自于Web browser 或其他HTTP client端的请求 和 在 server上的数据库及其他应用程序之间的中间层程序。 Serverlets的工作是: 读入用户发来的数据。 找出隐含在HTTP请求中的其他请求信息。 产生结果。 格式化结果(网页)。 设置HTTP response参数。 将文档返回给客户端。,55,3.程序类型与用户界面,56,4. Application程序基本结构,public class HelloApplication public static void mai
32、n(String args) System.out.println(Hello, Java world! ); ,由一个或多个“类”组成。 其中必须有一个“类”定义了main() 方法,该方法是自动执行的类方法,是Java应用运行的起始点。而这个类也就称之为“主类”。 Java程序源文件名要与主类名同名(包括大小写一个类产生一个.class文件。例如HelloApplication.java。,57,Application程序上机过程,编辑源程序 Edit HelloApplication.java (dos命令) 使用notepad编辑器编辑java源程序更为方便。 编译 javac jav
33、ac HelloApplication.java 产生HelloApplication.class 文件 解释执行 java java HelloApplication (隐含.class文件),58,5.applet 小程序,import java.awt.Graphics; import java.applet.Applet; class HelloApplet extends java.applet.Applet public void paint(Graphics g) g.drawString(“Hello, Java World!”, 10,20); ,源程序文件名:HelloAp
34、plet.java,59,编译java小程序 javac HelloApplet.java 使用文本编辑建立test.html文件,嵌入HelloApplet.class 浏览html文件 使用appletviewer appletviewer test.html 使用常规的浏览器,applet 小程序,60,Application:,D: edit HelloApplication.java D: javac HelloApplication.java D: java HelloApplication Hello, Java World!,1.6 运行你的第一个java程序,1.利用JDK实
35、用工具编写、运行程序,1.进入到“命令提示符”。 2.按下图所示顺序操作。,61,Applet:,D: edit HelloApplet.java D: javac HelloApplet.java D: edit test.html D: appletviewer test.html,62,2.利用集成环境编写、运行程序,(略),63,64,第二章、Java语言基础,基础语言 ( Java程序的构成 ),65,2.1、Java程序的构成,java 程序是由一个或多个编译单元构成,每个编译单元都一个以.java为扩展名的文本文件,又称Java源程序文件。,1.Java程序的组成,主程序(类)
36、源程序(类)1 源程序(类)2 源程序(类)3 源程序(类)n,Java 程序,例如 名为CodePointIM的Java程序由三个源文件组成: CodePointIM.java CodePointInputMethod.java CodePointInputMethodDescriptor.java 因为主类的名称是CodePointIM,所以可以此名做为程序的名称。,CodePointIM,CodePointIM.java CodePointInputMethod.java CodePointInputMethodDescriptor.java,66,2.Java源程序的组成,packag
37、e 包名称; import 包名称.类名称; 类或接口声明语句,在java编译单元(源程序)中包含几种不同的元素,即:,package 语句是可选的。如果有该语句编译器在生成类 文件时会将编译生成的“.class”文件存放到由“包名称”指定的包中。每个源程序中只能有一条package语句,而且必须在第一条语句。 import 语句引入由“类名称”指定的其他类。一个源程序中可以有多条import语句。,67,一个程序可包括若干个类,但由 public 修饰的类只能有一个。 各类之间存在并列、继承和包含关系。 这些类通常是在一起协同工作的。 编程只能在方法中。 类和方法中的语句包含在“”和“”之间
38、。 每条语句以分号“;”结尾。 语句由表达式、变量、字面值和关键字构成。 编译后每个类产生一个 .class 文件。,类或接口声明语句是Java原程序的主体,编写程序的过程实际上就是声明类或接口的过程。,68,package 包名称; import 包名.类; public class 类名1 类的成员变量(或域); 方法名(参数) 局部变量和语句; ,下图就是Java源程序的一般形式。,69,例 程序Line.java,package chapt02.shape; import java.awt.Graphics; public class Line protected int x1,y1;
39、 protected int x2,y2; public Line(double x1,double y1,double x2,double y2) this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2; public void draw(Graphics g) g.drawLine(x1,y1,x2,y2); ,包名称,引入的类名称,类名称,Line方法,draw方法,方法参数,70,3.Java源程序文件的命名,按Java语言规定,源程序的文件名必须与由 public 修饰的类的类名称相同。例如下面的程序:,public class
40、TestFx extends Applet private Fx fx; public void init() fx = new Fx(this.getSize().height); public void paint(Graphics g) for(int x=0;xgetSize().width;x+) g.drawLine(x,(int)fx.getFx(x),x+1,(int)fx.getFx(x+1); ,源程序的文件名称是:TestFx.java。,71,4.Java应用程序(Application)的组成,Java应用程序是Java程序中的一种。这类程序具有下面的一些特征: 程序
41、可以独立运行,直接从操作系统启动。 多数应用程序都具有图形用户界面,即GUI界面。 每个程序都具有完整的功能和用途,可以独立完成具体的事务,有明确的应用领域。 程序可能很简单,也可能非常复杂和庞大。,72,由一个或多个“类”组成。 其中必须有一个“类”定义了main() 方法,该方法是自动执行的类方法,是Java应用运行的起始点。而这个类也就称之为“主类”。 Java程序源文件名要与主类名同名(包括大小写一个类产生一个.class文件。例如HelloApplication.java。,Java应用程序在程序构成上具有下列这些特征:,例如下面的程序就是一个Java应用程序。这个程序完成一个数学函
42、数的计算。,73,例 Fx程序计算数学函数。源程序文件名:Fx.java。,public class Fx public int fx(int x) if(x213) return 1; else return 0; public static void main(String args) Fx y = new Fx(); System.out.println( f(x)=+y.fx(267); ,74,关于main()方法,main()方法是由解释器或Java虚拟机自动执行的方法,是Java应用运行的起始点。 含有main()方法的类称之为“主类”。当有多个类在同一个源程序时main()方法
43、应放在由public修饰的类。 main()方法的方法声明(格式)必须是: 修饰符public和static没有固定的顺序,但习惯上是 public在前static在后。 参数的类型必须是String ,参数名称可以用任何名字,但习惯上使用args或argv。,public static void main(String args),75,5.Java小程序(Applet)的组成,Java小程序是不能独立运行,是被嵌入到Web页中,由Java兼容浏览器控制执行。在程序结构上它没有像应用程序那样的main()方法,因此它的程序具有如下特征:,由一个或多个“类”组成。 由Java兼容浏览器控制执行
44、的类必须是Applet类的子类,它是Java小程序运行的起始点,也就小程序的“主类”。Java程序源文件名要与主类名同名。 在类中根据需要覆盖init()、start()、stop()、destroy()和paint()等方法。 小程序执行由html文件中的实现。,76,Applet程序的基本结构,import java.awt.*; import java.applet.*; public class 类名 extends Applet public void init() public void stop() public void start() public void destroy(
45、) public void paint(Graphics g) ,77,Applet程序的执行Html标记, ,78,Applet程序示例程序,import java.awt.*; import java.applet.*; public class HelloApplet extends Applet public void paint(Graphics g) g.drawString(JavaApplet 欢迎你!, 50, 60 ); ,这个程序只需简单地显示一个字符串,没有复杂要求,更没有需要初始化的变量或操作,因此只覆盖了paint方法。,79,80,第二章、Java语言基础,基础语
46、言 ( 数据类型、字面量、变量 ),81,2.2、数据类型、字面量、变量,1.数据类型,Java数据类型有: 原始数据类型(Primitive Data Types ) 引用类型(reference type ) Java原始数据类型又称基本数据类型,它说明了在程序中所能表示的基础数据的种类,通常有8种。 引用类型包括类、接口等,具体内容将在后面章节介绍。,82,boolean 布尔型,只有真(true)与假(false) byte 8位符号整数,取值范围-128+127 short 16位符号整数,取值范围-32768+32767 char 16位字符,Unicode字符集,字符码数值范围
47、0(u0000 )65535(uffff)。 int 32位符号整数,取值范围: -2147483648+2147483647 long 64位符号整数,取值范围: -9223372036854775808+9223372036854775807 float 32位单精度浮点数,使用IEEE754标准。 double 64位双精度浮点数,使用IEEE754标准。,Java原始(基本)数据类型,Java原始数据类型变量的默认值,83,Java原始数据类型占用的位数,84,85,符号是构成程序的基本单位,一个程序实际上是用特定符号描述的计算机命令集合,这些命令确定存储器分配,完成各种计算和控制。j
48、ava采用Unicode字符集,使他可以更好的提供多语言支持。java符号可分为如下5种:,标识符(Identifiers) 指构成java程序代码中变量、类、方法的名字的符号串。 关键字(Keyword) java语言使用的专用符号。 字面值(Literals) 表示一些具有固定值的常数。 运算符(Operands) 表示算术、逻辑运算的符号。 分隔符(Separator) 空格、值表符、回车换行符等。,2.Java符号,86,(1)注释 java语言可使用三种格式的注释。,/注释内容 从/到行末的内容被忽略 /*注释内容*/ 在/* 和 */之间的内容 /*注释内容*/ 同上,/* (#)
49、Sample3_3.java 1.0 01/10/22程序计算一个梯形 */ public class Sample3_3 int L1,L2; /上下底边 int H; /高 ,注释,注释,87,(2)标识符 标识符构成java程序代码中变量、类、方法和接口的名字,这些名字是唯一的。java语言所有标识符是由字符组成的字符串,构造标识符遵循下面的规则:,标识符必须以字母、下画线或$符号为第一个字符。 后续字符可以是数字0-9,其他非保留字字符。 java语言中大小写是有区别的。,例如, int ox,oy; String $name,_year; 都是正确的标识符,在此表示变量名称。,88,
50、(3)关键字 所谓关键字是指java语言使用的标识符,又称保留字。例如下面列出的几个关键字。,89,字面值是源代码固定值的表示。java中的字面值区分为不同的数据类型,通常有: 整型 实型 字符 布尔 字符串 空对象,3.字面值(常量),89,90,(1)整型字面值,有三种表示形式:,八进制 :以0开头只能出现数字07,例如 0126,0453等。,十六进制:以0 x开头的整型数,可以包括数字09,字母af或AF,例如 0 x12AD,0 x9FFDBD等。,十进制 :由第一个字符不为0的数字串组成,例如 234、122、657489等。,90,91,(2)浮点型 字面值,用十进制表示,主要由
51、三部分组成:整数、小数点、小数部分、指数和类型后缀。,小数表示: 整数.小数 指数表示: 整数.小数E指数 整数.小数e指数,例如:4.0987 3.12E34 3.678E-12,用在小数后加后缀d或D,表示double型浮点数;在小数后加后缀f或F,表示float型浮点数。 例如,2.0D、2.0d 是double型浮点数; 2.0f、2.0F 是float型浮点数。,91,92,(3)布尔型字面值,有两个值:true(真)、false(假)。 (4)字符型字面值,由单引号括起的字符。 例如 Q,P,天等。 Java采用Unicode字符集,因而每个字符占用16位,可表示065535之间的
52、字符码。 转义字符:,b 退格 单引号 t 水平制表符 反斜线 n 换行 f 表格符 r 回车 ” 双引号,92,(5)空对象字面值,表示形式:null。 它常用来作为对象是否可用的 标记。,(6)class字面值,表示形式:类型名称 .class。例如: String.class Integer.class 等。,93,94,对象存储它的状态在域(Field)中,变量也是存储程序中数据的,它们都是通过一个名字引用值。在Java语言中域(field)和变量(variable)都使用,因此会引起一些混乱,原因是它们通常具有相同的含义和用途。,4.变量(域),(1)变量命名: 是一个合法的标识符,
53、它是字母、数字、下划线或美元符“”的序列,Java对变量名区分大小写,变量名不能以数字开头 ,而且不能为保留字 。 合法的变量名如:myName、 value-1、 dollar等 。非法的变量名如: 2mail、room#、 class (保留字)等,变量名应具有一定的含义,以增加程序的可读性 。,94,95,(2) 变量类型: 可以为上面所说的数据类型中任意一种数据类型 。 (3) 变量的作用域: 声明一个变量的同时也就指明了变量的作用域。java规定允许变量在任何代码块中声明,一个代码块由大括号括起的代码。按作用域来分,变量可以有下面几种: 实例变量(Instance Variables
54、)即非静态域(Non-Static Fields )。 类变量(Class Variables)即静态域(Static Fields )。 局部变量(Local Variables )。 参数(Parameters)。,95,96,实例变量(Instance Variables): 非静态域(Non-Static Fields),声明时不用static修饰的域。对象存储它的个体状态在非静态域中,非静态域也被称做“实例变量”,它们的值对于一个类的每个实例是唯一的。,实例变量,public class Circle static final MIN_RADIUS=1; protected int
55、m_radius; protected int m_ox,m_oy; public Color m_color; ,96,类变量(Class Variables): 类变量是声明时用static修饰的域,不管类被实例化多少次(也就是创建多少个对象),类变量仅有一个,即类的多个实例(对象)共享类变量。,public class Circle static final MIN_RADIUS=1; protected int m_radius; protected int m_ox,m_oy; public Color m_color; ,实例变量,类变量,97,public class Cuboi
56、d public String toString() String msg=nCuboid 对象成员n length :+length; msg+=n width :+width+n high :+high; return msg; public static void main(String argc) Cuboid c1=new Cuboid(); System.out.println(c1.toString(); ,局部变量(Local Variables ) : 在方法中保存临时状态值的变量即局部变量。Java语言没有专门的关键字指明一个局部变量,它声明在方法开始符号“”和结束符号“”
57、之间。局部变量仅在声明它的方法中有效,类中的其他方法是不能使用的。,局部变量,局部变量,98,参数(Parameters) : 是在方法中传递给方法数据的变量,它在方法参数表中声明,它的作用域就是这个方法。 下面的程序中main方法有一个参数argc。,方法参数,public class MemberVariable public static void main(String argc) MemberVariable mv=new MemberVariable(); mv.printValue(); ,99,100,成员变量范围,方法参数范围,局部变量范围,例外处理参数范围,变量在类中位置,
58、100,在程序中使用变量时,必须明确提供变量的名称和类型。变量名称是一个合法的标识符以字母开始的长度无限的Unicode字符序列。变量是Java程序中数据的基本存储单元,变量通过一个名字引用值,即包含在变量中的数据。变量类型决定了它保存的值以及可以实现的操作。使用变量前必须声明变量,它的声明语法格式:,(4) 变量声明:,变量类型 变量名称=初始值 , ;,“变量类型” 即变量的数据类型,变量的数据类型可以是基本类型,也可以是类、接口等复杂的引用型。,101,“变量名称”声明的变量的名称,如果声明多个变量,每个变量间用“,”隔开。 “=初始值” 如果在定义变量时需要给变量确定数值,可以用“=”为变量赋值。,例如 boolean startFlag = false; boolean opened , runnable; byte c1 , c2 = A , c3 = n; short size; int width , length; long scroe; float year , size = 0.45f; double height , sum ,;,102,public class MaxVariables public static void main(String args
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 稀土催化材料工岗位适应能力知识考核试卷含答案
- 电子陶瓷料制配工安全技能测试考核试卷含答案
- 废钢加工工成果水平考核试卷含答案
- 初三【数学(北京版)】直线和圆的位置关系 学习任务单
- 7.1 珍视自由 课件(共18张)+内嵌视频
- 企业员工安全生产培训课件
- 2027届河南省洛阳洛宁县联考数学七年级第一学期期末学业水平测试模拟试题含解析
- 2026年产品用户研究设计师资格考试试题及答案
- 2026年石油天然气工程师资格认证考试试题及答案
- 建筑工地钢结构施工安全管理培训试题及答案
- 第9章 因式分解(单元练习)-2025-2026学年苏科版数学八年级下册
- 老年人法律知识防骗讲座
- TCUWA70052-2023城镇污水资源与能源回收利用技术规程
- 中国竞彩从业资格考试及答案解析
- 2025年小学教育事业统计数据核查自查报告
- 地下车库卫生间维修改造施工方案
- 燃气场站消防安全知识培训课件
- MATLAB8.X程序设计及典型应用第七章
- 【《某水利枢纽工程混凝土拱坝设计计算案例》7700字】
- 慢性粒细胞性白血病护理查房
- 政法委遴选笔试真题及答案详解
评论
0/150
提交评论