计算机软件及应用JAVA程序设计基础

上传人:仙*** 文档编号:142682849 上传时间:2022-08-25 格式:DOC 页数:162 大小:1.66MB
收藏 版权申诉 举报 下载
计算机软件及应用JAVA程序设计基础_第1页
第1页 / 共162页
计算机软件及应用JAVA程序设计基础_第2页
第2页 / 共162页
计算机软件及应用JAVA程序设计基础_第3页
第3页 / 共162页
资源描述:

《计算机软件及应用JAVA程序设计基础》由会员分享,可在线阅读,更多相关《计算机软件及应用JAVA程序设计基础(162页珍藏版)》请在装配图网上搜索。

1、目录第1章 引言51.1 程序设计语言的分类61.2 Java的发展过程(网络咖啡)71.3 Java程序的类型71.4 编译和执行Java程序8第2章 JAVA2介绍921 什么是JAVA922选择JAVA的原因923 Java 程序的运行环境1024与平台(CPU、OS类型)无关性1025“一次编译,到处运行”的原理1126通过在不同的平台上安装对应的Java 虚拟机,可以实现平台无关。1127 Java虚拟机介绍1128 Java2类库的版本和主要应用领域122.8.1 Java2类库的版本类型122.8.2 Java2主要应用领域1229 实时编译器12210 Java 运行时环境12

2、211 选择Java开发工具13212 Java Application程序基本结构13213第一个JAVA例程13214 Java API 文档13第3章Java语言基础1431 Java的基本语法1432 Java中的常量1533 变量的概念与作用1634 Java中的数据类型163.4.1数据类型种类163.4.2 Java中数据类型的转换规则:163.4.3 数据类型转换必须满足如下规则1735 Java中的运算符与表达式173.5.1 主要的类型173.5.2 特点173.5.3 几个常用的操作符在应用时所应该注意点183.5.4 引用型变量只支持有限的逻辑判断183.5.5 运算符

3、的优先次序183.5.6 格式化输出1836 Java中的语句及控制流193.6.1 主要的语句193.6.2 特点1938数组273.8.1 数组初始化和匿名数组273.8.2 拷贝数组273.8.3 命令行参数283.8.4 对数组排序283.8.5多维数组293.8.6 不规则数组3039 Java中的注释方式31310 JAVA的健壮的体现31311 JAVA与C+在语言上的差别31第4章 类的基本架构3241认识类32411类的基本概念32412类的声明33413 创建新的对象34414 使用类来设计完整的程序36415 同时创建多个对象3642 有关方法的使用36421 定义与使用

4、方法36422 数据成员的访问方式37423 在类定义的内部调用方法3743 参数的传递38431 调用方法并传递参数38432 传递多个参数3844 方法的返回值38441 没有返回值的方法38442 有返回值的方法3945 公有成员与私有成员39451 创建私有成员39452 创建公有成员39453 数据的封装39454 省略public与private40第5章 类的其它功能4051 函数成员(方法)的重载41511 重载41512 使用重载常犯的错误4352 构造函数43521 构造函数的基本认识43522 构造函数的调用时机43523 构造函数的重载44524 从某一构造函数调用另一

5、构造函数44525 构造函数的公有与私有44526 构造函数的省略445.2.7 初始化块4553 类变量与类方法46531 实例变量与实例方法46532 类变量46533 类方法47534 “类方法”使用的限制4754 类类型的变量47541 赋值给类类型的变量47542 以类类型的变量传递参数48543 由方法返回类类型的变量48544 对象析构和finalize方法4855 利用数组来保存对象49551 创建对象数组的范例49552 传递数组到方法里5056 内部类50561 内部类的编写51562 匿名内部类52第6章 继承5460类之间的关系5461 继承的基本概念54611 简单的

6、继承范例55612 调用父类中特定的构造函数566.1.3 使用构造函数常见的错误5762 由子类访问父类的成员5863 覆盖58631 覆盖父类的方法58632 以父类的变量访问子类的成员5864 再谈super()与this()5865 终止继承5966 类之源Object类59第7章 抽象类 接口 包6071 抽象类60711 定义抽象类60712 抽象类的实现61713 用抽象类类型的变量来创建对象61714 使用抽象类的注意事项6172 接口的使用6173 接口的扩展6374 包647.4.1 文件的分割647.4.2 定义包647.4.3 理解类路径(classpath)657.4

7、.4 一个简单的例子657.4.5 访问保护667.4.6 一个访问的例子677.4.7 引入包69第8章 常用类库、集合类7081有关字符串的类库7182 StringBuffer类库728 wrapper class728 使用math类738日期类748随机数类 Random7587 向量类Vector7588 Class类与Runtime类7689常用集合类778.9.1集合(Set)788.9.2列表(List)798.9.3Map808.10 Java规则表达式81第9章 异常处理8291 异常839.1.1 异常的基本概念839.1.2 引起异常的原因:839.1.3 实例849

8、.1.4 异常的分类849.1.5 Java编程语言提供几种预定义的异常,最常见的异常描述:849.1.6 为何需要异常处理8592异常的处理859.2.1 简单的异常范例859.2.2 常规的异常处理范例859.2.3 异常处理机制的回顾919.2.4 一个非常实用的异常处理程序9193异常类的继承架构9294声明异常9395 抛出异常9596 自己编写异常类(用户自定义定义异常)9797 IOException异常类的使用10198调用机制102第10章 IO输入/输出102101 流10210.1.1 什么是数据流10210.1.2 数据流的分类10310.1.3 管道流10410.1.

9、4 对象流10610.2 文件10910.2.1 文件I/O10910.2.2 文件的输入/输出11210.2.3 随机存取文件11910.2.4 串行化12010.3 补充12210.3.1 关于IO的根类12210.3.2 从键盘读11910.3.3 持久性和序列化的概念123第11章 线程12111.1 简介12111.1.1 什么是进程与线程12411.1.2 线程与进程的区别12411.1.3 线程的优势12411.1.4 线程的模型12511.2 线程的实现12611.2.1 创建线程的方式12611.2.2 线程状态12911.2.3 线程的基本控制13111.2.4 线程的调度

10、14011.2.5 同步和死锁14011.2.6 Thread类的重要方法14811.2.12 优先级15611.2.8 线程同步15711.2.9线程间通信158第12章 常用修饰词161121 instanceof16312.2 transient修饰符16312.3 strictfp关键字16312.4 native修饰符16412.5 Volatile修饰符164附录1:Java文档注释16413.1如何插入注释16413.3 方法注释16513.4字段注释16513.5通用注释16513.6包和概述注释16613.7如何提取注释166第1章 引言本章内容:l 程序设计语言的分类l J

11、ava的发展过程l Java程序的类型l 编译和执行Java程序1.1 程序设计语言的分类 程序设计语言是学习计算机技术的基础,它经历了较长的发展过程,有许多不同的分类方法。 1.按发展过程分类: a.机器语言:是以二进制代码的形式组成的机器指令集合,不同的机器有不同的机器语言。这种语言编制的程序运行效率极高,但程序很不直观,编写很简单的功能就需要大量代码,重用性差,而且编写起来效率比较低,很容易出现错误。 b.汇编语言:比机器语言直观,它将机器指令进行了符号化,并增加了一些功能,如宏,符号地址等,存储空间的安排由机器完成,编程工作相对进行了极大的简化,使用起来方便了很多,错误也相对减少。但不

12、同的指令集的机器仍有不同的汇编语言,程序重用性也很低。 c.高级语言:高级语言是与机器不相关的一类程序设计语言,读写起来更接近人类的自然语言,因此,用高级语言开发的程序可读性较好,便于维护。同时,由于高级语言并不直接和硬件相关,其编制出来的程序可移植性也要好得多。常见的高级语言Pascal,c,c+,Basic.Java就是高级语言的一种。 d.第四代语言(4GL) 具有一定的智能,更接近于日常语言,它对语言的概括更为抽象,从而使语言也更为简洁,如SQL,VB,PB等。2.按执行方式分类a.编译执行的语言通过工具软件将源代码经过目标代码转换成机器代码,即可执行程序,然后直接交操作系统执行。这类

13、程序语言的优点是执行速度比较快,缺点是编译器与机器之间存在一定的依赖性,不同操作系统需要的编译器可能不同,另外,在一个系统上编译的程序到另一系统上不一定正确运行。如C+,Pascal. b.解释执行的语言 解释执行是程序读入一句执行一句,而不需要整体编译链接,这样的语言与操作系统的相关性相对较小,但运行效率低,而且需要一定的软件环境来做源代码的解释器。当然,有些解释执行的程序并不是使用源代码来执行的,而是需要预先编译成一种解释器能够识别的格式,再解释执行。如Java。 3.按思维模式分类用计算机处理问题是个复杂的过程。需要许多设想,小心规划,逻辑的精度和细节的考虑。另一方面,他又具有挑战性,令

14、人振奋,为个人的创造力和表达能力提供了令人满意的空间。 程序设计语言总是需要以某种思维方式进行设计和实现,因此不同的语言可能有不同的思维方式。目前存在两种思维方式。 a.面向过程的程序设计语言 过程化的解决问题的方法是把它分裂成几个小部分,然后再求解每个较小的问题。最后,汇总这些方案来求解整个问题。这种方法的缺点是模块间互相依赖,难以升级,而且互用性差,解决的方法是使用面向对象的程序设计模型。 b.面向对象的程序设计语言 OOP(面向对象程序设计)的设计思想: 现实世界由对象组成,这些对象被分成类,对象是类的一个特例。OOP根据现实世界的对象来描述软件系统。考察一个公司的职员,他是一个对象,它

15、包含了某些属性:姓名,年龄,家庭住址, 号码.他也包含了某些行为:允许用户输入或者显示职员的这些属性。OOP的好处是逼真地建模,并且对变动有弹性。Java是一种纯面向对象的编程语言。1.2 Java的发展过程(网络咖啡)Java的诞生需追溯到1991年。当时,在Sun公司内,有一个称为Green的项目,这个项目的工程师受命设计一种小型的计算机语言,用于机顶盒、家电控制芯片等消费类设备。由于这些设备功能有限、内存较小,所以这种语言必须尽可能地小,而且应能生成非常紧凑的代码,最重要的一点是,这些设备所采用的处理芯片多种多样,要使这个语言有强大的生命力,就绝不能够受限于任何一种体系结构。 为了实现这

16、一目标,项目组准备尝试一种古老的模型:设计出一种“可移植”的语言。在执行前,生成一个“中间码”,在任何一种机器上安装了特定的解释器,就可以运行这个“中间码”。 这样“中间码”一定会非常小,而解释器也不大,就可以达到这个目标。 这个小组大部分员工都熟悉C+语言,使得这个新语言走向了“面向对象”的道路。这个语言原来的名字是“Oak“(项目组领导办公室窗外的橡树名),但后来由于“Oak”这一名字己被占用,所以选用“Java”一种咖啡的名字作为新语言的名字,所以现在说到Java语言,大家都会想到那杯热气腾腾的咖啡!也许,Sun公司希望Java语言能够象咖啡一样被人们接受、喜爱吧! 然而Java语言并未

17、被Sun公司和消费类家电公司所接受。接着该小组又开始了许多其它方面的尝试,均惨遭失败,不得不在1994年解散。 而此时,Internet上的www服务越来越普遍,人们需要一个好用的浏览器,以便更好地阅读Web页面。这时Green项目组的旧部意识到可用Java语言写一个浏览器。这个最终发展成目前的HotJava浏览器。 HotJava这个试验品在1995年5月召开的SunWorld大会上首次亮相,从而引起了遍及全球、至今未衰的Java热。 1995年秋NetScape决定让其浏览器支持Java,并在1996年初发布了支持Java的版本。这意味着Java语言开始大流行,后来,IBM等许多著名IT公

18、司都注册了Java使用许可证,而且视Sun公司为敌的微软公司也在IE中提供了对Java的支持,并在Window中提供了Java虚拟机。 Java语言的初露锋芒,让Sun公司意识到它的价值,于是在1996年初发布了Java的第一个版本。几个月后,又发布了Java1.02版,但该版本的Java语言并不是十分完备,不适合用于正规的应用程序的开发。但仅过了一小段时间,Sun公司就发布了令人满意的Java1.1版,它实现了绝大部分目标。在1998年召开的JavaOne大会上,Sun公司发布了Java1.2版,这就是Java 2. 注:JavaScript是网景公司发明的,原名LiveScript1.3

19、Java程序的类型Java程序有二类:应用程序和小应用程序(applications和applets)。应用程序是可在任何操作系统提示下执行的程序。单独的应用程序可以是基于窗口的应用程序或是控制台应用程序。基于窗口的应用程序有图形用户界面,而控制台应用程序是基于字符的应用程序,没有图形用户界面。单机的应用程序使用单机的资源。网络应用程序可使用网上资源。分布式应用可访问网上跨许多计算机执行的对象。允许应用在本地计算机上读入和写出文件。单独应用程序驻留在本地机器的硬盘上。当需要执行此应用程序时,把它从硬盘装入到内存,并执行之。小应用程序是在Web页面内执行的Java程序。因此,不象应用程序,小应用

20、程序需要Java使能的浏览器,如:Microsoft Internet Explorer4.0或以上版本、Netscape Navigator4.0或以上版本、或HotJava。小应用程序在用户通过Web浏览器装入Web页面时被装入和执行。当包含小应用程序的Web页面被显示时,用户与此小应用程序交互。Applet使用简单,因为用户启动applet必须做的所有事是访问Web页面。另一方面,应用程序必须在执行它之前下载到本地计算机。Applets有图形用户界面。Applets的安全特权比应用程序差。Applet只可访问宿主机上资源,他不可访问被下载计算机上的文件。与应用程序相反,小应用程序可以驻留

21、在远程计算机上。当本地机器需要执行applet时,applet从远程系统被装入到本地机计算机的内存。一旦本地机计算机可用时,由浏览器解释此applet,并与本地提供的库资源链接起来,然后执行之。1.4 编译和执行Java程序有两种方法可以编译和执行Java程序:使用命令行或其他程序,如集成开发环境或者文本编辑器。(1)使用命令行(a)用记事本写一源文件并保存为.java文件,例hello.java (b)设置环境变量path和classpath(可设置系统变量,以便以任何用户身份登录都能使用 我的电脑|属性|高级|环境变量) 例 path: d:jdk1.3.1_07bin; classpat

22、h: .; d: jdk1.3.1_07lib;(c)javac hello.java /javac程序是Java的编译器。它把hello.java文件编译成hello.class文件(d)java welcome/java程序是Java解释器,它负责解释执行编译器生成到class文件中的字节码。(2)使用集成开发环境 如果有一个Java集成开发环境,就不需要做上面这些繁琐的事情了。集成开发环境不仅可以提供一个能够识别Java语法的编辑器,使读者简单地编译和执行Java程序,还可以建立应用程序或者小程序的框架。并调试程序,将做好的程序打包成可执行文件等等。即集成开发环境集成了编辑、编译、跟踪调

23、试、执行及打包Java应用程序的一切工具,如Microsoft公司出品的Visual J+及Borland公司出品的JBuilder,它们对系统资源的侵占非常大,通常建议用户有256MB内存,目前流行的IDE开发工具为eclipse。 初学阶段,不需要编写很复杂的Java程序,对调试方面的需求也并不迫切,使用文本编辑器和JDK就足够了。(3)从文本编辑器中编译和运行程序JCreator,FreeJava是Java开发环境的一个图形用户界面。第2章 JAVA2介绍本章内容: 了解Java及其发展过程 了解 Java 的特点和优点 了解 Java 的运行机制 了解 Java 程序的基本结构 掌握如

24、何编译和运行 Java 程序21 什么是JAVA Java 完全面向对象的编程语言。 Java 可用来生成两类程序:应用程序、小应用程序( Applet ) 。 Java 既是一种解释执行的语言,也是一种编译执行的语言。211 JAVA语言的版本Java 1.0小型版本Java 1.11997年,改进了用户界面Java 1.2 1998年,改进图形用户界面,数据库连接Java 1.3 2000年,增加新的核心功能Java 1.4 2002年,安全性的改进,对COBRA的支持等22选择JAVA的原因 面向对象 在 Java 中任何东西都是对象,因此,重点集中在数据以及应用程序中的数据操作方法。

25、易于学习 Java的风格类似于C+,因而对C+程序员而言非常容易掌握Java编程技术; Java摒弃了C+中容易引发程序错误的地方,如指针操作和内存管理; 平台无关性 Java 程序被编译成一种与体系结构无关的字节代码 只要安装了Java运行时系统Java程序可以在任意的处理器上运行 分布式Java提供了包容广泛的例程库,可处理像 和FTP这样的TCP/IP协议。Java应用程序可通过一个特定的URL来打开并访问对象,就像访问本地文件系统那样简单。 健壮性 Java在编译和运行程序时都要对可能出现的问题进行检查 它提供自动垃圾收集来进行内存管理 面向对象的异常处理机制 安全 Java语言提供的

26、安全(无指针,自动垃圾回收) 编译器提供的安全 字节码校验器 类加载器 可移植性 源代码级 目标代码级 解释执行 编译器 javac 将处理.java源文件生成类文件 类文件可通过名称为 java 的加载实用程序解释执行,将Java 字节码转换为机器可执行代码。 高性能通过JIT编译器首先将字节码编译成固有代码,将结果缓存下来,然后在需要时调用它们。 多线程 Java语言内置支持多线程的功能 Java 类库提供了Thread 类 动态Java自身的设计使它适合于一个不断发展的环境。在Java类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。23 Java 程序的运行环境Java是

27、解释执行的高级编程语言编译型源程序Java虚拟机源程序字节码程序Java源程序目标程序裸机操作系统解释器编译连接编译执行解释执行.java.class24与平台(CPU、OS类型)无关性q 一次编程到处执行,Write Once, Run AnyWhereq 而传统的计算机应用程序需要针对不同的应用平台进行开发25“一次编译,到处运行”的原理26通过在不同的平台上安装对应的Java 虚拟机,可以实现平台无关。所以 Write once , run anywhere!27 Java虚拟机介绍 Java虚拟机是一种利用软件方法实现的抽象化的计算机,基于下层的操作系统和硬件平台,可以在上面执行Jav

28、a的字节码程序。 Java虚拟机将在内部创建一个运行时系统,帮助以下列方式执行代码: 加载 .class 文件 管理内存 执行垃圾收集28 Java2类库的版本和主要应用领域2.8.1 Java2类库的版本类型q J2ME(Java2 Micro Edition),针对嵌入式设备的编程技术 。q J2SE(Java2 Standard Edition),针对桌面计算机开发q J2EE(Java2 Enterprise Edition),针对企业级的分布式应用,主要涉及JDBC、RMI、EJB、Servlet、JSP以及Web Service、XML等方面的技术2.8.2 Java2主要应用领域

29、q 嵌入式技术(如嵌入式设备、移动通讯设备、手持式设备、测试仪器等);q 基于Application/Applet、JavaBean的PC应用;q 基于动态网站的Servlet、JSP 应用,实现Web应用程序等q 基于EJB的J2EE企业级分布式应用等,主要是解决企业级异构环境(不同主机、不同的操作系统)下的编程。 29 实时编译器 使用“实时 (Just In Time)” 编译器,也称为JIT编译器。可以提高 Java 代码的执行速度。 SUN公司在Java 2 发行版中提供了JIT编译器,JIT编译器是Java虚拟机的一部分。 JIT 的主要用途是将字节码指令集转换为针对某一特定微处理

30、器的机器代码指令。210 Java 运行时环境编译时.java(源代码).class(字节码)运行时类加载器字节码校验器解释器JIT代码生成器硬件网络211 选择Java开发工具 JDK是有助于程序员开发Java 程序的 Java 开发工具包包括: 类库 编译器 调试器 Java 运行时环境( JRE ) JDK 提供的常用工具 javac:Java编译器,将Java源代码换成字节代码 java:Java解释器,直接从类文件执行Java应用程序代码 appletviewer(小程序浏览器):一种执行HTML文件上的Java小程序类的Java浏览器 javadoc:根据Java源代码及其说明语句

31、生成的HTML文档 jdb:Java调试器,可以逐行地执行程序、设置断点和检查变量 javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件 Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义212 Java Application程序基本结构import语句主类名称方法体213第一个JAVA例程步骤:a.编写 b.编译和运行214 Java API 文档 Java API 文档是一种非常有用的文档,描述许多 java 的内置功能,包含类、包、接口等的帮助。 加载 API 文档的步骤:1. 打开 Internet Explor

32、er。2. 键入下列 URL :/java.sun /j2se/1.4.1/docs/api/index.html3. 通过单击相关主题,可以浏览网页。总结 Java 是一种面向对象的编程语言,主要用于 Internet 应用程序。 Java 可用来生成两类程序:应用程序、 小应用程序( Applet ) 。 Java 既是一种解释执行的语言,也是一种编译执行的语言。 Java 的特点包括: 面向对象 易于学习 平台无关性 Java 虚拟机是 Java 编程语言的核心。 Java 运行时环境 (JRE) 包含一方面与硬件交互、另一方面又与程序交互的 JVM。 Java 开发工具包有助于开发 J

33、ava 程序。 JDK 提供多种工具,这些工具位于 JDK 的 bin 目录下,具体如下: javac java appletviewer第3章Java语言基础本章内容:l Java的基本语法l 数据类型l 运算符l 流程控制语句l 数组l 注释31 Java的基本语法代码主要是放入类中Java是严格区分大小写的w Java是一种自由格式的语言 程序代码分为结构定义语句和功能执行语句。 功能执行语句的最后必须用(;)结束。w Java中的标识符 java中的包、类、方法和变量的名字。可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是关键字。如:_u

34、serName、$username、username、user_name、class、100.1、Hello WorldJava中的关键字abcstracteoimplementprivstethisbooleandoubleimportprotertedthrowbreakelseinstanceofpublicthrowsbyteextendintreturntransientcasefalseinterfaceshorttruecatchfinallongstatictrycharfinallynativestrictfpvoidffloatnewsupervolatileffornul

35、lseitchwhiledefaultifpackagesynchronized32 Java中的常量w 整型常量十进制(18),十六进制(0x18),八进制(018)w 长整型常量13Lw 单精度浮点数5.1f,4f,2e3f,0fw 双精度浮点数5.1,4,2e-3,0dw 布尔常量true和falsew 字符常量a, 6, u0001(Unicode值)r表示接受键盘输入,相当于按下了回车键n是换行t是制表符,相当于table键b是退格键,相当于Back Space; 是单引号”是双引号反斜杠w 字符串常量“Hello World”, “7431”, “noise nXXX”w null

36、常量null常量只有一个值,用null表示,表示对象的引用为空33 变量的概念与作用w 变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。根据所存储的数据类型的不同,有各种不同类型的变量。变量名代表这块内存中的数据。w Int x=0,y;y=x+3;执行这两条语句的过程中,内存分配及变化情况。X在被取值前必须被初始化。34 Java中的数据类型 3.4.1数据类型种类q 基本数据类型(int、float、char、boolean、byte等),Java中没有unsigned类型q 引用数据类型(数组、类、接口等)。基本数据类型引用数据类型数据类型数值型字符型(char)布尔型(b

37、oolean)* if(x=0)类(class)接口(interface)数组整数类型(byte,short,int,long)浮点类型(float,double)3.4.2 Java中数据类型的转换规则:q 不同类型的数据混合运算时,系统自动将数据从低级转换到高级(域小的自动转化为域大的数据类型)q 高级的数据类型转换到低级时,必须强制进行数据类型转换。 Char Byte short int long Float double 数字类型间的合法转换3.4.3 数据类型转换必须满足如下规则q 不能对boolean类型进行类型转换。q 不能把对象类型转换成不相关类的对象。q 转换过程中可能导致

38、溢出或损失精度q int i = 8; byte b=(byte)i;q (byte)255 = -1(byte)0x5634 = 0x34q 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入(int)23.7 = 23(int)-45.89f = -4535 Java中的运算符与表达式3.5.1 主要的类型q 算术运算符: +,*,/,%,+,q 关系运算符: ,=,&,|,q 赋值运算符: =,及其扩展赋值运算符如+=,=,*=,/=等。q 条件运算符: ? :q 其它 分量运算符 , 下标运算符 , 实例运算符 instanceof, 内存分配运算符new, 强制类型转换运算符 (类

39、型), 方法调用运算符() 3.5.2 特点基本上与C/C+相同,但不同的是:q 新增 instanceof(关系运算符):识别某对象是否为某类的对象,即测试它左边的对象是否是它右边的类的实例,返回boolean类型void Cook(Person man)if(man instanceof Chinese)/如果识别是中国人则按照中国人的习惯来Cookelse if(man instanceof American)/如果识别是美国人则按照美国人的习惯来Cook q 改造“+”运算符:使其能够适应字符串运算:System.out.println(How Are+You !);3.5.3 几个常

40、用的操作符在应用时所应该注意点q “+”“ABCD”+”EFGH” “ABCDEFGH”“ABCD”+E+F “ABCDEF”A+B 两个字符的内码相加q 字符串赋值 String X=“ABCD”; String Y=X; X=“EFGH”;此时Y仍然为“ABCD”,因为每进行一次字符串赋值,系统将重新构造出一个新的字符串内存地址,然后将字符串内容拷贝可以采用StringBuffer来代替,以免产生大量的字符串空间的垃圾3.5.4 引用型变量只支持有限的逻辑判断(1)相等判断(是否同一个对象的引用)q 运算符= !=q 示例theObject = nullotherObject != the

41、Object(2)类型判断(是否是每个类的实例)q 运算符instanceofq 示例theObject instanceof Object“” instanceof String3.5.5 运算符的优先次序1). , , () 9)&2) + , - , ! , ,instanceof 10) 3)new (type) 11)|4)* , / , % 12)&5)+ , - 13)|6)14)?:7) , = , = 15)= , += , -= , *= , /= , %= , =8)= , != 16)&= , |= ,= , = 3.5.6 格式化输出可以使用语句System.out.

42、print(x) 向控制台打印数字x。这条命令将按照x类型所允许的最多非零数字位数打印x。如:x=10000.0/3.0;System.out.println(x);打印结果是:3333.3333333333335如果想显示的是美元、美分等内容,这么做有些问题,可以通过控制显示格式处理输出。Java.text包中的NumberFormat类有三个方法可以产生下列数据的标准格式化器:l 数字l 货币l 百分数值10000.0/3.0在这三种格式中打印如下:3,333.333 NumberFormat.getNumberInstance()$3,333.33 NumberFormat.getCur

43、rencyInstance()333,333% NumberFormat.getPercentInstance()/*double x=10000.0/3.0;/NumberFormat formatter=NumberFormat.getNumberInstance();NumberFormat formatter=NumberFormat.getCurrencyInstance(Locale.US);/formatter.setMaximumFractionDigits(4);/formatter.setMinimumIntegerDigits(6);String s=formatter.

44、format(x);System.out.println(s);*/36 Java中的语句及控制流 3.6.1 主要的语句q 分支语句:if-else, switchq 循环语句:while, do-while, forq 与程序转移有关的其它语句:break, continue, returnq 例外处理语句:try-catch-finally, throw3.6.2 特点基本上类同于C/C+语言,但不同的是 :(1)无goto 语句。(2)改造了continue语句,跳转到括号指明的外层循环中。(3)改造了break语句,跳转到该语句标号处,从此再执行该语句。注意:break与contin

45、ue的标准功能继续保留! 块作用域块或复合语句是用一对花括号括起的任意数量的简单Java语句。块定义了变量的作用范围。块可以嵌套在其他块中。下面是一个块嵌套在main方法中的例子:int n;.int k; int n; .If语句w 条件语句是程序设计语言中最基本的流程控制语句,几乎任何一门程序设计语言的条件语句都用到了if关键字,因而条件语句也被称为if语句。条件语句分简单语句和复合语句语法:if(Boolean)statement1 elsestatement2 public class ifElse public static void main(String args) int mo

46、nth;String season= ;for(month=1;month=13;month+) if(month=3|month=4|month=5)season=春季(Spring);else if(month=6|month=7|month=8)season=夏季(Summer);else if(month=9|month=10|month=11)season=秋季(Autumn);else if(month=12|month=1|month=2)season=冬季(Winter);else season=不合理月份(Bogus);System.out.println(month+月是+

47、season); public class ExampleIfpublic static void main(String args)boolean a=false;boolean b=false;if(a=b)System.out.println(a等于b);elseSystem.out.println(a不等于b); switchw switch是条件语句的一个变种 ,运用switch语句时,首先需要计算括号内表达式的值,然后把这个值与case后面的常量比较。执行第一个匹配的分支语句;若无匹配则执行最后一个default分支,如果同时缺省default项,则不执行任何语句。 switch(

48、expression)case 常 量1:statement 1;break;case 常 量2:statement 2;break;.default: statement 3;break; public class SwitchCaseDefaultpublic static void main(String args)int a=2;switch(a)case 1:System.out.println(a=+a);break;case 2:System.out.println(a=+a);break;default:System.out.println(I DONT KONW!); for

49、循环结构w for语句是最标准的循环语句,也是功能最强的一种循环结构。for语句的功能是循环执行一段语句,直到某个条件为假时才结束。 public class sample2 public static void main(String args)int i;for(i=0;i 0) System.out.println(tick + n);n-; do while循环结构 w 如果while循环一开始条件表达式就是假的,那么循环体就根本不被执行。然而,有时需要在开始时条件表达式即使是假的情况下,while循环至少也要执行一次。Java就提供了这样的循环:do-while循环。do-while

50、循环总是执行它的循环体至少一次,因为它的条件表达式在循环的结尾。 public static void main(String args) int n = 10; do System.out.println(tick + n);n-; while(n 0); break和continue w 在循环语句的主体内(statement),可以使用break语句和continue来控制循环流程。 w break:跳出循环,不再执行剩余部分。 w continue:停止当次循环,回到循环起始处。continue语句之后的语句将不在执行。 w 无穷循环:第一种形式:for(;)第二种形式:while(t

51、rue) 3.7 大数字编译运行下面这个程序:publicclassTestpublicstaticvoidmain(Stringargs)System.out.println(0.05+0.01);System.out.println(1.0-0.42);System.out.println(4.015*100);System.out.println(123.3/100);结果是:0.0600000000000000050.5800000000000001401.499999999999941.2329999999999999Java中的简单浮点数类型float和double不能够进行运算。

52、不光是Java,在其它很多编程语言中也有这样的问题。在大多数情况下,计算的结果是准确的,但是多试几次(可以做一个循环)就可以试出类似上面的错误。解决的方法是使用java.math包中的两个类,BigInteger和BigDecimal。这两个类可以操作任意长的数字。BigInteger类实现了任意精度的整数运算,而BigDecimal实现了任意精度的浮点运算。BigDecimal一共有4个构造方法,我们不关心用BigInteger来够造的那两个,那么还有两个,它们是:BigDecimal(doubleval)BigDecimal(Stringval)如果需要精确计算,非要用String来够造B

53、igDecimal不可!使用double构造BigDecimal将导致精度不准确,原因是double本身就不精确。如BigDecimal bd=new BigDecimal(.1);结果bd的值将会是0.1000000000000000055511151231257827021181583404541015625。必须用字符串来构造BigDecimal才能显示定义其精确度,BigDecimal bd2=new BigDecimal(.1);然而,不能使用熟悉的数学操作符,如+和*等来操作大数字。要实现这些功能,必须使用大数字类中add、subtract、multiply、divide、mod等

54、方法。l BigInteger add(BigInteger other)l BigInteger subtract(BigInteger other)l BigInteger multiply(BigInteger other)l BigInteger divide(BigInteger other)l BigInteger mod(BigInteger other) 示例源文件Arith.javaimportjava.math.BigDecimal;/*由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精*确的浮点数运算,包括加减乘除和四舍五入。*/publicclassArith/默认除法运算精度privatestaticfinalintDEF_DIV_SCALE=10;/这个类不能实例化privateArith()/*提供精确的加法运算。*paramv1被加数*paramv2加数*return两个参数的和*/publicstaticdoubleadd(doublev1,doublev2)BigDecimalb1=newBigDecimal(Double.toString(v1);BigDecimalb2=newBigDecimal(Double.toString(v2);returnb1.add(b2).doubleValue();/*提供精确的

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!