版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目一Java语言概述
1.1Java的起源
1.2程序设计思想的发展
1.3Java的三大开发体系30七月2026130七月20261.1Java的起源
目前Java语言在全世界是使用最为广泛的计算机编程语言之一。它容易学习而且非常的好用,如果你学习过其它的编程语言,例如C++,你就会觉得C++和Java非常的相似,主要是因为Java和C++中许多基础的语法一样,但是我们知道Java和C++是两种不同的语言,Java只需理解一些最基本的概念,就能够编写出各种的应用程序。Java用一种更加容易理解的方式去实现,所以Java相对于C++是简单的。230七月20261.1.1Java的由来Java总是和C++联系在一起,而C++则是从C语言派生而来的,所以Java语言继承了这两种语言的大部分特性。Java的语法是从C继承的,Java许多面向对象的特性受到C++的影响。330七月20261.1.2Java的产生
Java是由JamesGosling,PatrickNaughton,ChrisWarth,EdFrank和MikeSheridan于1991年在SunMicrosystems公司设计出来的。开发第一个版本花了18个月。该语言开始名叫“Oak”,于1995年更名为“Java”。从1992的秋天Oak问世到1995的春天公开发布Java语言,许多人对Java的设计和改进做出了贡献。BillJoy,ArthurvanHoff,JonathanPayne,FrankYellin和TimLindholm是主要的贡献者,正是他们的贡献使最初原型得以成熟。430七月20261.1.3Java对Internet为什么重要Internet使Java成为网上最流行的编程语言,同时Java对Internet的影响也意义深远。在Java产生以前,当前赛百空间有一半的对象实体无法进入网络世界,是Java为它们打开了便利之门,而且在这个过程中定义了一种全新的程序形式:applet(小应用程序)。530七月2026(1)Java小应用程序和应用程序Java可用来生成两类程序:应用程序(applications)和Javaapplet(小应用程序。应用程序是可以在你的计算机的操作系统中运行的程序。小应用程序是可以在Internet中传输并在兼容Java的Web浏览器中运行的应用程序。630七月2026(2)安全性当使用一个兼容Java的Web浏览器时,你可以安全地下载Java小应用程序,不必担心病毒的感染或恶意的企图。Java实现这种保护功能的方式是,将Java程序限制在Java运行环境中,不允许它访问计算机的其他部分,后面将介绍这个过程是如何实现的。下载小应用程序并能确保它对客户机的安全性不会造成危害是Java的一个最重要的方面。730七月2026(3)可移植性正如前面所讨论的,许多类型的计算机和操作系统都连接到Internet上。要使连接到Internet上的各种各样的平台都能动态下载同一个程序,就需要有能够生成可移植性执行代码的方法。很快你将会看到,有助于保证安全性的机制同样也有助于建立可移植性。实际上,Java对这两个问题的解决方案是优美的也是高效的。830七月20261.1.4Java的魔力:字节码字节码是一套设计用来在Java运行时系统下执行的高度优化的指令集,该Java运行时系统称为Java虚拟机(JavaVirtualMachine,JVM)。在其标准形式下,JVM就是一个字节码解释器。然而,正是通过JVM运行Java程序才有助于解决在Internet上下载程序的主要问题。这就是Java输出字节码的原因。930七月2026将Java程序翻译成字节码,有助于它更容易地在一个大范围的环境下运行程序。原因非常直接:只要在各种平台上都实现Java虚拟机就可以了。在一个给定的系统中,只要系统运行包存在,任何Java程序就可以在该系统上运行。记住:尽管不同平台的Java虚拟机的细节有所不同,但它们都解释同样的Java字节码。1030七月20261.1.5Java常用语·简单(Simple)·安全(Secure)·可移植(Portable)·面向对象(Object-oriented)·健壮(Robust)11·多线程(Multithreaded)·体系结构中立(Architecture-neutral)·解释执行(Interpreted)·高性能(Highperformance)·分布式(Distributed)·动态(Dynamic)30七月20261230七月20261.2程序设计思想的发展1.2.1面向对象编程Java的核心是面向对象编程。事实上,所有的Java程序都是面向对象的,你别无选择。这一点与C++不同,因为在那里你可以选择是否面向对象编程。面向对象编程与Java密不可分,因此,在你编写哪怕是最简单的Java程序以前,也必须理解它的基本原则。因此,先从面向对象编程的概念讲起。1330七月2026(1)两种范型我们知道,所有的计算机程序都由两类元素组成:代码和数据。此外,从概念上讲,程序还可以以它的代码或是数据为核心进行组织编写。1430七月2026这两种范型决定程序的构建方法。第一种方法被称为面向过程的模型(process-orientedmodel),用它编写的程序都具有线性执行的特点。面向过程的模型可认为是代码作用于数据,像C这样的过程式语言采用这个模型是相当成功的。然而,当程序变得更大并且更复杂时,就会出现问题。1530七月2026第二种方式,也就是面向对象的编程(object-orientedprogramming)。面向对象的编程围绕它的数据(即对象)和为这个数据严格定义的接口来组织程序。面向对象的程序实际上是用数据控制对代码的访问。下面你将看到,将控制的实体变换为数据,可使程序在组织结构上从若干方面受益。1630七月2026(2)抽象面向对象编程的一个实质性的要素是抽象。人们通过抽象(abstraction)处理复杂性。例如,人们不会把一辆汽车想象成由几万个互相独立的部分所组成的一套装置,而是把汽车想成一个具有自己独特行为的对象。1730七月2026面向对象的概念是Java的核心,对程序员来讲,重要的是要理解这些概念怎么转化为程序。你将会发现,在任何主要的软件工程项目中,软件都不可避免地要经历概念提出、成长、衰老这样一个生命周期,而面向对象的程序设计,可以使软件在生命周期的每一个阶段都处变不惊,有足够的应变能力。1830七月2026(1)封装封装(Encapsulation)是将代码及其处理的数据绑定在一起的一种编程机制,该机制保证了程序和数据都不受外部干扰且不被误用。191.2.2面向对象编程的3个原则30七月2026理解封装性的一个方法就是把它想成一个黑匣子,它可以阻止在外部定义的代码随意访问内部代码和数据。对黑匣子内代码和数据的访问通过一个适当定义的接口严格控制。2030七月2026Java封装的基本单元是类。一个类(class)定义了将被一个对象集共享的结构和行为(数据和代码)。一个给定类的每个对象都包含这个类定义的行为和结构,好像它们是从同一个类的模子中铸造出来似的。所以,类是一种逻辑结构,而对象是真正存在的物理实体。2130七月2026既然类的目的是封装复杂性,在类的内部就应该有隐藏实现复杂性机制。类中的每个方法或变量都可以被标记为私有(private)或公共(public)。类的公共接口代表类的外部用户需要知道或可以知道的每件事情;私有方法和数据仅能被一个类的成员代码所访问,其他任何不是类的成员的代码都不能访问私有的方法或变量。2230七月2026(2)继承继承(Inheritance)是一个对象获得另一个对象的属性的过程。继承很重要,因为它支持了按层分类的概念。使用了继承,一个对象就只需定义使它在所属类中独一无二的属性即可,因为它可以从它的父类那儿继承所有的通用属性。所以,可以这样说,正是继承机制使一个对象成为一个更具通用类的一个特定实例成为可能。2330七月2026继承性与封装性相互作用。如果一个给定的类封装了一些属性,那么它的任何子类将具有同样的属性,而且还添加了子类自己特有的属性。这是面向对象的程序在复杂性上呈线性而非几何性增长的一个关键概念。新的子类继承它的所有祖先的所有属性。它不与系统中其余的多数代码产生无法预料的相互作用。2430七月2026(3)多态性多态性(Polymorphism,来自于希腊语,表示“多种形态”)是允许一个接口被多个同类动作使用的特性,具体使用哪个动作与应用场合有关。251.2.3多态性、封装性与继承性相互作用如果用得当,在由多态性、封装性和继承性共同组成的编程环境中可以写出比面向过程模型环境更健壮、扩展性更好的程序。30七月202626所有的Java程序都是面向对象的。或者,更精确地说,每个Java程序都具有封装性、继承性及多态性。Java提供的许多特性是它的内置类库的一部分,这个库使封装性、继承性及多态性得到更广泛应用。30七月2026271.3Java的三大开发体系Java发展到今天,已从编程语言发展成为全球第一大通用开发平台。Java技术已被计算机行业主要公司所采纳。1999年,Sun公司推出了以Java2平台为核心的J2SE、J2EE和J2ME三大平台。随着三大平台的迅速推进,全球形成了一股巨大的Java应用浪潮。30七月2026281.Java2Platform,StandardEdition(J2SE)2.Java2Platform,EnterpriseEdition(J2EE)3.Java2Platform,MicroEdition(J2ME)30七月202629J2SE用于小型程序,J2EE用于大型程序,J2ME用于手机等程序。J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专用类。J2SE是基础;压缩一点,再增加一些CLDC等方面的特性就是J2ME;扩充一点,再增加一些EJB等企业应用方面的特性就是J2EE。30七月202630谢谢!30七月202631项目二Java程序设计初识
2.1Java开发环境的搭建
2.2Eclipse集成开发工具
2.3简单Java程序的实现2.4拓展实训30七月2026332.1Java开发环境的搭建2.1.1安装JDK开发环境
JDK(Java开发工具包)是Sun公司提供的Java开发环境和运行环境,是所有Java应用程序的基础。JDK包括一组API和JRE,这些API是构建Java应用程序的基础,而JRE是运行Java应用程序的基础。JDK包括J2ME(微型版)、J2SE(标准版)和J2EE(企业版)3个版本,最基本的开发包是J2SE。30七月2026342.1Java开发环境的搭建安装过程参见教材P730七月2026352.1Java开发环境的搭建2.1.2系统环境变量的配置
Java源程序进行编译和执行时,需要知道JDK中编译器和解释器所在的磁盘物理位置,以及程序所用到的类库所在的位置。
开发人员可以通过配置系统环境变量的方式,为Java类库提供查找搜索路径(CLASSPATH),为编译器和解释器提供查找搜索路径(Path)等信息。30七月2026362.1Java开发环境的搭建配置过程参见教材P830七月2026372.2Eclipse集成开发工具2.2.1Java集成开发工具简介从Java诞生到如今,除了Sun公司自身提供的开发工具外,还有许多的第三方开发工具被广泛使用。下面介绍几款Java集成开发工具:JCreatorNetBeansEclipseJBuilder30七月2026382.2Eclipse集成开发工具2.2.2Eclipse的下载与安装
Eclipse是一个开放源代码的、基于Java的可扩展集成开发平台。Eclipse本身只是一个框架和一组服务,用于通过插件组件构建开发环境。只要有合适的组件,Eclipse不但能够支持开发Java应用程序,而且也能够支持其他的开发语言。由于Eclipse附带了一个包括Java开发工具(JDT)的标准插件集,因此,只要安装了Eclipse和JDK,就可以使用Eclipse开发Java应用程序。30七月2026392.2Eclipse集成开发工具1.安装、启动Eclipse安装过程参见教材P1130七月2026402.2Eclipse集成开发工具2.配置Eclipse环境配置过程参见教材P1130七月2026412.2Eclipse集成开发工具2.2.3Eclipse的基本使用创建Java应用程序项目创建过程参见教材P1230七月2026422.2Eclipse集成开发工具2.2.3Eclipse的基本使用2.创建Java公共类源程序创建过程参见教材P1330七月2026432.2Eclipse集成开发工具2.2.3Eclipse的基本使用3.运行Java应用程序项目运行过程参见教材P1330七月2026442.2Eclipse集成开发工具2.2.3Eclipse的基本使用4.关闭和删除Java应用程序项目过程参见教材P1430七月2026452.2Eclipse集成开发工具2.2.3Eclipse的基本使用5.打开已存在的Java应用程序项目打开过程参见教材P1430七月2026462.3简单Java程序的实现Java应用程序,根据运行界面是以图形化要素为主,还是以文本字符为主,可分为两种主要类型:GUI应用程序(GUIApplication)控制台应用程序(ConsoleApplication)2.3.1一个简单的Java程序认识事物的方法是从简单到复杂、从表象到实质。因此,先从一个简单的实例入手,来逐步认识这两种Java程序的基本结构和框架,为后面的开发建立良好的结构基础。30七月2026472.3简单Java程序的实现1.
Java应用程序的基本结构作为面向对象的编程语言,Java程序的核心要素是类。类是组成Java程序的最小结构单位。一个Java源程序文件中可以包括一个或多个类的定义。Java应用程序的入口是main方法。所谓入口方法是指Java系统在运行应用程序时最先执行的那个方法。一个Java应用程序必须有且只有一个main方法。包含main方法的类被称为应用程序的主类,主类必须被定义为公共类。30七月2026482.3简单Java程序的实现2.简单的Java应用程序Java应用程序的开发可归结为如下步骤:(1)用任意文本编辑器创建Java源程序,并以扩展名为.java的文件保存。(2)使用编译命令将源程序文件编译成扩展名为.class的类文件。(3)使用运行命令运行程序,查看结果。30七月2026492.3简单Java程序的实现2.简单的Java应用程序例题:编写Java应用程序,在计算机屏幕上输出一行文本信息:“欢迎访问Java世界”。完成过程及步骤参见教材P1730七月2026502.3简单Java程序的实现2.3.2基于控制台的输入/输出结构程序实现在实际的程序编写过程中,除了输出环节之外,还包括输入和处理环节。计算机系统通常都有默认的标准输入设备和标准输出设备。对于一般的系统,标准输入设备通常是指键盘,标准输出设备通常是指显示器。Java控制台程序从键盘输入数据,向显示器输出数据,是十分常见的数据通信操作。30七月2026512.3简单Java程序的实现例题:编写Java应用程序,完成从键盘输入两个运算数据,计算两数之和并输出结果的功能。完成过程及步骤参见教材P2130七月2026522.3简单Java程序的实现2.3.3基于GUI的输入/输出结构程序实现GUI是当今编程的主流,其主要特征包括:程序界面主要由图形化的要素构成;程序没有预定好的运行流程,而是由随机事件来驱动;人机交互由消息机制来支持;输入设备以鼠标、键盘为主。
30七月2026532.3简单Java程序的实现例题:编写Java应用程序,利用图形界面,完成从键盘输入两个运算数据,计算两数之和并输出结果的功能。完成过程及步骤参见教材P2330七月2026542.4拓展实训实训1:编写Java控制台应用程序,完成从键盘输入圆的半径,求圆的周长和面积并输出结果的功能。30七月2026552.4拓展实训实训2:编写JavaGUI应用程序,完成从键盘输入矩形的长和宽,求矩形的周长和面积并输出结果的功能。谢谢!项目三Java语法基础3.1用户标识符与保留字30七月20265730七月20263.1用户标识符与保留字3.1.1用户标识符用户标识符是程序员对程序中各个元素加以命名时使用的命名记号。58使用标识符时,需要遵守几条规则:
1.
标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含@、%、空格等其它特殊字符,不能以数字开头。
30七月2026592.
标识符不能是Java关键字和保留字(Java预留的关键字,以后的升级版本中有可能作为关键字),但可以包含关键字和保留字。如:不可以使用
void
作为标识符,但是
Myvoid
可以。
30七月2026603.标识符是严格区分大小写的。所以一定要分清楚
imooc
和
IMooc
是两个不同的标识符。
30七月2026614.标识符的命名最好能反映出其作用,做到见名知意。30七月202662例如:userName,Id_Name,_sys_str,Name,name,$price等为合法的标识符。而:7mail,room#,#home为非法的标识符。30七月20266330七月20263.1.2保留字保留字是特殊的标识符,具有专门的意义和用途,不能当作用户的标识符使用。64Java语言中的保留字均用小写字母表示。30七月202665保留字30七月202666abstractbreakbytebooleancatchcaseclasscharcontinuedefaultdoubledoelseextendsfalsefinalfloatForfinallyifimportimplementsintinterfaceinstanceoflonglengthnativenewnullpackageprivateprotectedpublicreturnswitchshortstaticsupertrytruethisthrowthrowsvoidthreadsafetransientwhilesynchronized
谢谢!30七月2026673.2数据类型3.3Java运算符和表达式30七月202668项目三Java语法基础30七月20263.2数据类型Java语言的数据类型可划分为基本数据类型和引用数据类型6930七月20263.2.1常量和变量1.常量所谓常量就是在程序运行过程中保持不变的量即不能被程序改变的量,也把它称为最终量。常量可以分为标识常量和直接常量(字面常量)。7030七月20262.变量变量是程序中的基本存储单元,在程序的运行过程中可以随时改变其存储单元的值。7130七月20263.2.2基本数据类型1.整型1)整型常量的表示方法整型常量能以十进制、八进制和十六进制表示。2)整型变量的定义例如:intx=215; //指定变量x为int型,且赋初值为2157230七月20262.字符型(char)字符型(char)数据占据两个字节16个二进制位。字符常量是用单引号括起来的一个字符,如‘a’,‘A’等。7330七月20263.布尔型(boolean)布尔型数据的值只有两个:true和false。因此布尔的常量值也只能取这两个值。7430七月20264.浮点型(实型)Java提供了两种浮点型数据,单精度和双精度,7530七月20263.2.3基本数据类型的封装在Java中,对每种基本的数据类型都提供了其对应的封装类(称为封装器类wrapperclass)。7630七月20263.3Java运算符和表达式3.3.1算术运算符和算术表达式算术运算符用于数值量的算术运算,它们是:+(加),-(减),*(乘),/(除),%(求余数),++(自加1),--(自减1)。7730七月20263.3.2关系运算符和关系表达式关系运算符用于两个量的比较运算,它们是:>(大于),<(小于),>=(大于等于),<=(小于等于),==(等于),!=(不等于)。7830七月20263.3.3布尔逻辑运算符和布尔表达式布尔逻辑运算符用于布尔量的运算,有3个布尔逻辑运算符:!(逻辑非)、&&(逻辑与)、||(逻辑或)7930七月20263.3.4位运算符及表达式位运算符主要用于整数的二进制位运算。可以把它们分为移位运算和按位运算。8030七月20263.3.5赋值运算符(=)和赋值表达式赋值运算符是最常用的运算符,用于把一个表达式的值赋给一个变量(或对象)。8130七月20263.3.6条件运算符(?:)及表达式条件运算符是三元运算符,有条件运算符组成的条件表达式的一般使用格式是:逻辑(关系)表达式
?表达式1:表达式28230七月20263.3.7对象运算符1、构造对象(new)new运算符主要用于构建类的对象。2、分量运算符(.).运算符主要用于获取类、对象的属性和方法。3、对象测试(instanceof)instanceof运算符主要用于对象的测试。将在后边应用时介绍它。8330七月20263.3.8其它运算符1、数组下标运算符([])2、强制类型转换运算符((类型))3.()运算符4.字符串连接符(+)8430七月20263.3.9表达式的运算规则最简单的表达式是一个常量或一个变量,当表达式中含有两个或两以上的运算符时,就称为复杂表达式。85谢谢!30七月2026863.4Java程序的注释方式3.5Java程序的输入输出30七月202687项目三Java语法基础3.4Java程序的注释方式30七月202688一般程序设计语言都提供了程序注释的方式,要想让别人读懂自己编写的程序,没有注释是比较困难的。Java提供了两种注释方式:程序注释和程序文档注释。(一)程序注释如前所述,程序注释主要是为了程序的易读性。阅读一个没有注释的程序是比较痛苦的事情,因为对同一个问题,不同的人可能有不同的处理方式,要从一行行的程序语句中来理解他人的处理思想是比较困难的,特别对初学者来说。因此对一个程序语句,一个程序段,一个程序它的作用是什么,必要时都应该用注释简要说明。
30七月202689程序中的注释不是程序的语句部分,它可以放在程序的任何地方,系统在编译时忽略它们。30七月202690注释可以在一行上,也可在多行上。有如下两种方式的注释:1.以双斜杠(//)开始以“//”开始后跟注释文字。这种注释方式可单独占一行,也可放在程序语句的后边。30七月202691例如,在下边的程序片段中使用注释://下面定义程序中所使用的变量 intage; //定义一整型变量age,表示年龄。Stringname;//定义一字符串变量name,表示名字。30七月2026922.以“/*”开始,以“*/”结束当需要多行注释时,一般使用“/*……*/”格式作注释,中间为注释内容。30七月202693(二)程序文档注释程序文档注释是Java特有的注释方式,它规定了一些专门的标记,其目的是用于自动生成独立的程序文档。程序文档注释通常用于注释类、接口、变量和方法。30七月202694/**该类包含了一些操作数据库常用的基本方法,诸如:在库中建立新的数据表、
*在数据表中插入新记录、删除无用的记录、修改已存在的记录中的数据、查询
*相关的数据信息等功能。
*@authorLilyXu*@version3.20,05/02/17*@sinceJDK1.8*/30七月2026953.5Java程序的输入输出30七月202696在开始编写Java应用程序之前,先介绍一下Java程序的输入输出。在任何程序中,输入数据和输出结果都是必不可少的。由于输入和输出的途径不同,输入输出的方法也就不一样。Java没有提供专用的输入输出命令或语句,它的输入输出是靠系统提供的输入输出类的方法实现的。30七月20263.5.1字符界面下的输入输出方法字符界面下的输入输出是由Java的基类System提供的,在前边的示例中,我们已经使用了System.out.println()方法在屏幕上输出信息。9730七月20261.输入方法格式:System.in.read();功能:该方法的功能是从键盘上接受一个字符,按照byte类型的数据处理。若将它转换为字符型,它就是字符本身;若转换为整型,它是扩展字符的ASCII码值(0~255)。982.输出方法格式1:System.out.print(表达式);格式2:System.out.println(表达式);功能:在屏幕上输出表达式的值。30七月2026993.5.2图形界面下的输入输出方法有关图形界面的程序设计将在后边的章节详细介绍,本节将以对话框的形式介绍图形界面下的输入输出。在javax.swing类库中的JoptionPane类提供了相应的输入输出方法。30七月20261001.输入方法格式1:JOptionPane.showInputDialog(输入提示信息);格式2:JOptionPane.showInputDialog(输入提示信息,初值);功能:系统显示一个对话框,可以在输入提示信息后边的文本框中输入值。格式2带有初值,在输入的文本框中显示该值,若要改变其值,直接输入新的值即可。30七月20261012.输出方法格式1:JOptionPane.showMessageDialog(框架,表达式);格式2:JOptionPane.showMessageDialog(框架,表达式,标题,信息类型);功能:在对话框中显示相关的信息。30七月2026102谢谢!30七月20261033.6分支控制语句3.7循环控制语句30七月2026104项目三Java语法基础3.6分支控制语句Java语句包含一系列的流程控制语句,这些控制语句表达了一定的逻辑关系,所以可选择性的或者是可重复性的执行某些代码行,每一个流程控制语句实际上是个代码块,块的开始和结束都是用大括号来进行表示的,其中“{”表示开始,“}”表示结束。30七月20261053.6.1if条件分支语句三种不同形式if条件分支语句格式1:if(布尔表达式)语句;功能:若布尔表达式(关系表达式或逻辑表达式)产生true(真)值,则执行语句,否则跳过该语句。30七月2026106格式2if(布尔表达式)语句1;else语句2;30七月2026107格式3if(布尔表达式1)语句1;elseif(布尔表达式2)语句2;……elseif(布尔表达式n-1)语句n-1;else语句n;30七月2026108例题
考试成绩划定五个级别,当成绩大于或等于90分时,划定为优;当成绩大于或等于80且小于90时,划定为良;当成绩大于或等于70且小于80时,划定为中;当成绩大于或等于60且小于70时,划定为及格;当成绩小于60时,划定为差。可以写出下边的程序代码:30七月2026109/*这是一个划定成绩级别的简单程序*程序的名字是ScoreExam3_7.java*它主要演示多者择一分支语句的应用。*/30七月2026110publicclassScoreExam3_7{publicstaticvoidmain(String[]args){intscore=82;if(score>=90)System.out.println("成绩为优="+score);elseif(score>=80)System.out.println("成绩为良="+score);elseif(score>=70)System.out.println("成绩为中="+score);elseif(score>=60)System.out.println("成绩为及格="+score);elseSystem.out.println("成绩为差="+score);}}30七月20261113.6.2switch条件语句switch语句的一般格式如下:switch(表达式){case常量1:语句组1;[break;]case常量2:语句组2;[break;]……………case常量n:语句组n;[break;]default:语句组n+1;}30七月2026112publicclassSwitchExam3_4{publicstaticvoidmain(String[]args){ intscore=75; intn=score/10;
30七月2026113switch(n){ case10: case9:System.out.println("成绩为优="+score);break; case8:System.out.println("成绩为良="+score); break; case7:System.out.println("成绩为中="+score); break; case6:System.out.println("成绩为及格="+score); break; default:System.out.println("成绩为差="+score); }}}30七月20261143.7循环控制语句30七月20261153.7.1for循环语句for循环语句的一般格式如下:for(表达式1;表达式2;表达式3){
语句组;//循环体}30七月20261163.7.2While和do-While循环语句一般情况下,for循环用于处理确定次数的循环;while和do-while循环用于处理不确定次数的循环。本章小结本章简要介绍了Java程序中的基本量:标识符、数据类型、运算符及表达式,它们是程序设计的基础,应该掌握它们并能熟练地应用。数据类型可分为基本数据类型和引用型数据类型两种,本章介绍了基本数据类型,引用型数据类型将在后边的章节中介绍。30七月2026117本章还讨论了程序的注释、简单的输入输出方法、条件分支结构的控制语句和循环结构的控制语句以及break、continue、return等控制语句,它们是程序设计的基础,应该认真理解熟练掌握并应用。30七月2026118本章的重点:标识符的命名规则、变量和常量的定义及使用、运算符及表达式、不同数据类型值之间的相互转换规则、运算式子中的运算规则(按运算符的优先顺序从高向低进行,同级的运算符则按从左到右的方向进行)。30七月2026119三种格式的if分支结构和switch多分支结构、for循环结构、while循环结构、do…while循环结构、break语句、continue语句和return语句的使用。要注意不同格式分支结构的功能,不同循环结构之间使用上的差别,只有这样,我们才能在实际应用中正确使用它们。30七月2026120谢谢!30七月2026121项目四数组4.1一维数组30七月202612230七月20264.1一维数组1.一维数组的声明一维数组声明的一般格式如下:数据类型数组名[];或:数据类型[]数组名;123例如:intintArray[];//声明一个整型数组StringstrArray[];//声明一个字符串数组30七月202612430七月20262.一维数组大小的定义及初始化一般情况下,使用new运算符定义数组大小,例如下边的程序语句:intintA[];//声明一个整型数组intA=newint[5];//定义数组可以存放5个整数元素125StringstrA[];//声明一个字符串数组StringstrA=newString[3];//定义数组可以存放三个字符串元素30七月2026126//为数组中每个元素赋值intA[0]=1;//数组下标从0开始intA[1]=2;intA[2]=3;intA[3]=4;intA[4]=5;strA[0]="How";strA[1]="are";strA[2]="you";30七月2026127通常我们也采用如下方式为数组元素赋初值并由初值的个数确定数组的大小:intintA[]={1,2,3,4,5};StringstringA[]={"How","are","you"};以达到和上边同样的目的。30七月202612830七月20263.一维数组元素的引用如前所述,以数组名和下标引用数组元素,数组元素的引用方式为:数组名[下标]129谢谢!30七月2026130项目四数组4.2二维及多维数组30七月20261314.2二维及多维数组1、二维数组的声明声明二维数组的一般格式如下:数据类型
数组名[][];或:数据类型[][]数组名;30七月202613230七月20262、二维数组大小的定义及初始化(1)先声明而后定义最后再赋值例如下边的程序语句:intmatrix[][];//声明二维整型数组matrixmatrix=newint[3][3];//定义matrix包含3×3九个元素133matrix[0][0]=1;//为第一个元素赋值matrix[0][1]=2;//为第二个元素赋值………………matrix[2][2]=9;//为第九个元素赋值30七月202613430七月2026(2)直接定义大小而后赋值例如下边的程序语句:intmatrix=newint[3][3];//定义二维整型数组matrix包含3×3九个元素matrix[0][0]=1;//为第一个元素赋值………………matrix[2][2]=9;//为第九个元素赋值13530七月2026(3)由初始化值的个数确定数组的大小在元素个数较少并且初值已确定时通常采用此种方式,例如:intmatrix[][]={{1,2,3},{4,5,6},{7,8,9}};//由元素个数确定3行3列13630七月20263.二维数组元素的应用1374.不同长度的二维数组要存储乘法表的值需要一个三角数组。在Java中,由于把二维数组看作是一维数组的数组,因此可以把二维数组的每一行作为一个一维数组分别定义,并不要求二维数组每一行的元素个数都相同。30七月2026138inta[][]=newint[2][];//说明a是二维数组,有2行a[0]=newint[3]; //a[0]定义第1行,有3列a[1]=newint[5]; //a[1]定义第2行,有5列30七月2026139谢谢!30七月2026140项目四数组
4.3数组(Arrays)类30七月202614130七月20264.3数组(Arrays)类数组类提供众多的类方法(静态方法)对各种类型的数组进行运算操作,下边列出一些常用的类方法供大家使用时参考,如果使用其他的方法可参阅JDK文档。142(1)staticvoidsort(数据类型[]数组名)
用于对数组进行排序(升序),数据类型是除boolean之外的任何数据类型。30七月2026143(2)staticvoidsort(数据类型[]a,intstart,intend)
对数组a中指定范围从start到end位置之间的数据元素进行排序。当start大于end时引发IllegalArgumentException异常。当超界时,引发ArrayIndexOutOfBoundsException异常。30七月2026144(3)staticvoidfill(数据类型[]a,数据类型value)
设置a数组各个元素的值为value。30七月2026145(4)staticvoidfill(数据类型[]a,intstart,intend,数据类型value)
设置a数组中从start到end位置的元素的值为value。30七月2026146(5)staticintbinarySeach(数据类型[]a,数据类型key)
利用二进制搜索数组(排过序)内元素值为key的所在位置。30七月2026147(6)staticbooleanequals(数据类型[]d1,数据类型[]d2)
判断d1和d2两数组是否相等。30七月2026148我们只要掌握类方法的引用即可对数组进行相关的运算操作。类方法的一般引用格式如下:类名.方法名(参数表);30七月2026149谢谢!30七月2026150项目四数组4.4字符串30七月202615130七月20264.4
字符串字符是一种基本的数据类型,而字符串是抽象的数据类型,只能使用对象表示字符串。前边我们已经对字符串进行了简单处理及其操作。下边我们将详细介绍用于字符串处理的类及其应用。15230七月20264.4.1String类String类是最常用的一个类,它用于生成字符串对象,对字符串进行相关的处理。1、构造字符串对象在前边我们使用字符串时,是直接把字符串常量赋给了字符串对象。其实String类提供了如下一些常用的构造函数用来构造字符串对象:15330七月20261)String()构造一个空的字符串对象。2)String(charchars[])以字符数组chars的内容构造一个字符串对象。3)String(charchars[],intstartIndex,intnumChars)以字符数组chars中从startIndex位置开始的numChars个字符构造一个字符串对象。15430七月20264)String(byte[]bytes)以字节数组bytes的内容构造一个字符串对象。5)String(byte[]
bytes,int
offset,int
length)以字节数组bytes中从offset位置开始的length个字节构造一个字符串对象。15530七月20262.String类对象的常用方法String类也提供了众多的方法用于操作字符串,以下列出一些常用的方法:1)publicintlength()此方法返回字符串的字符个数。15630七月20262)publiccharcharAt(intindex)此方法返回字符串中index位置上的字符,其中index值的范围是0~length-1。157例如:Stringstr1=newString(“Thisisastring.”);//定义字符串对象str1intn=str1.length();//获取字符串str1的长度n=17charch1=str1.charAt(n-2);//获取字符串str1倒数第二个字符,ch1=’g’30七月202615830七月20263)publicintindexOf(charch)返回字符ch在字符串中第一次出现的位置。4)publiclastIndexOf(charch)返回字符ch在字符串中最后一次出现的位置。1595)publicintindexOf(Stringstr)返回子串str在字符串中第一次出现的位置。6)publicintlastIndexOf(Stringstr)返回子串str在字符串中最后一次出现的位置。30七月202616030七月20267)publicintindexOf(charch,intfromIndex)返回字符ch在字符串中fromIndex位置以后第一次出现的位置。8)publiclastIndexOf(charch,intfromIndex)返回字符ch在字符串中fromIndex位置以后最后一次出现的位置16130七月20269)publicintindexOf(Stringstr,intfromIndex)返回子串str在字符串中fromIndex位置后第一次出现的位置。10)publicintlastIndexOf(Stringstr,intfromIndex)返回子串str在字符串中fromIndex位置后最后一次出现的位置。16230七月202616311)publicStringsubstring(int
beginIndex)返回字符串中从beginIndex位置开始的字符子串。12)publicStringsubstring(int
beginIndex,int
endIndex)返回字符串中从beginIndex位置开始到endIndex位置(不包括该位置)结束的字符子串。30七月202616413)publicStringcontact(Stringstr)用来将当前字符串与给定字符串str连接起来。14)publicStringreplace(charoldChar,charnewChar)用来把串中所有由oldChar指定的字符替换成由newChar指定的字符以生成新串。15)publicStringtoLowerCase()把串中所有的字符变成小写且返回新串。16)publicStringtoUpperCase()把串中所有的字符变成大写且返回新串。30七月202616530七月202617)publicStringtrim()去掉串中前导空格和拖尾空格且返回新串。18)publicString[]split(String
regex)以regex为分隔符来拆分此字符串。16630七月20264.4.2StringBuffer类在字符串处理中,String类生成的对象是不变的,即String中对字符串的运算操作不是在源字符串对象本身上进行的,而是使用源字符串对象的拷贝去生成一个新的字符串对象,其操作的结果不影响源串。1674.4.3StringTokenizer类字符串是Java程序中主要的处理对象,在Java.util类包中提供的StringTokenizer(字符串标记)类主要用于对字符串的分析、析取。如提取一篇文章中的每个单词等。30七月2026168谢谢!30七月2026169项目五面向对象的程序设计基础5.1面向对象的基本概述30七月202617030七月20265.1面向对象的基本概述人们期待着一种效率高、简单、易理解且更加符合人们思维习惯的程序设计语言,以加快软件的开发步伐、缩短软件开发生命周期,面向对象就是在这种情况下应运而生的。171我们可以把客观世界中的每一个实体都看作是一个对象,如一个人、一朵花、一台机床、一个输入框等等。因此对象可以简单定义为:“展示一些定义好的行为的、有形的实体”。30七月2026172当然在我们的程序开发中,对象的定义并不局限于看得见摸得着的实体,诸如一个咨询公司,它作为一个机构,并没有物理上的形状,但却具有概念上的形状,它有明确的经营目的和业务活动。30七月2026173根据面向对象的倡导者GradyBooch的理论,对象具有如下特性:(1)它具有一种状态;(2)它可以展示一种行为;(3)它具有唯一的标识。30七月2026174对象的状态通过一系列属性及其属性值来表示;对象的行为是指在一定的期间内属性的改变;标识是用来识别对象的,每一个对象都有唯一的标识,诸如每个人都有唯一的特征,在社会活动中,使用身份证号码来识别。30七月202617530七月2026我们生活在一个充满对象的世界中,放眼望去,不同形状、不同大小和颜色各异的对象;静止的和移动的对象。面对这些用途各异、五花八门的对象,我们该如何下手处理它们呢?176借鉴于动物学家将动物分成纲、属、科、种的方法。我们也可以把这些对象按照它们所拥有的共同属性进行分类。例如,鸽子、燕子、麻雀等都叫作鸟。它们具有一些共同的特性:有羽毛、有飞翔能力、下蛋孵化下一代等。因此我们把它们归属为鸟类。30七月2026177综上所述我们可以简单地把类定义为:“具有共同属性和行为的一系列对象”。30七月202617830七月20265.1.2面向对象的特点1.什么是面向对象面向对象的方法将系统看作是现实世界对象的集合,在现实世界中包含被归类的对象。179如前所述,面向对象系统是以类为基础的,我们把一系列具有共同属性和行为的对象划归为一类。属性代表类的特性,行为代表有类完成的操作。30七月2026180例如,汽车类定义了汽车必须有属性:车轮个数、颜色、型号、发动机的能量等。类的行为有:启动、行驶、加速、停止等。对象是类的一个实例,它展示了类的属性和行为。例如,张经理的那辆奔驰牌轿车就是汽车类的一个对象30七月202618130七月20262.面向对象的特性1)抽象所谓抽象就是不同的角色站在不同的角度观察世界。面向对象的程序设计可以根据问题来描述问题,不必受限于特定类型的问题。182比如,当你购买手机时,站在使用的角度,你所关注的是手机的品牌、外观及功能等等。然而,对于手机的维修人员来说,站在维修的角度,他们所关注的是手机的内部,各部分元器件的组成及工作原理等。30七月2026183其实,所有编程语言的最终目的都是提供一种“抽象”方法。在早期的程序设语言中,一般把所有问题都归纳为列表或算法,其中一部分是面向基于“强制”的编程,而另一部分是专为处理图形符号设计的。30七月2026184每种方法都有自己特殊的用途,只适合解决某一类的问题。面向对象的程序设计可以根据问题来描述问题,不必受限于特定类型的问题。30七月20261852)继承继承提供了一种有助于我们概括出不同类中共同属性和行为的机制,并可由此派生出各个子类。30七月2026186在Java中,不允许类的多重继承(即子类从多个父类继承属性和行为),也就是说子类只允许有一个父类。父类派生多个子类,子类又可以派生多个子子类……这样就构成了类的层次结构。30七月202618730七月20263)封装封装提供了一种有助于我们向用户隐藏他们所不需要的属性和行为的机制,而只将用户可直接使用的那些属性和行为展示出来。18830七月20264)多态多态指的是对象在不同情况下具有不同表现的一种能力。在Java中通过方法的重载和覆盖来实现多态性。18930七月20263.面向对象的好处今天我们选择面向对象的程序设计方法,其主要原因是:1)现实的模型从逻辑理念上讲,用面向对象的方法来描述现实世界的模型比传统的过程方法更符合人的思维习惯。19030七月20262)重用性在面向对象的程序设计过程中,我们创建了类,这些类可以被其他的应用程序所重用,这就节省程序的开发时间和开发费用,也有利于程序的维护。19130七月20263)可扩展性面向对象的程序设计方法有利于应用系统的更新换代。当对一个应用系统进行某项修改或增加某项功能时,不需要完全丢弃旧的系统,只需对要修改的部分进行调整或增加功能即可。可扩展性是面向对象程序设计的主要优点之一。192谢谢!30七月2026193项目五面向对象的程序设计基础
5.2类30七月202619430七月20265.2类5.2.1定义类如前所述,类是对现实世界中实体的抽象,类是一组具有共同特征和行为的对象的抽象描述。19530七月2026因此,一个类的定义包括如下两个方面:定义属于该类对象共有的属性(属性的类型和名称);定义属于该类对象共有的行为(所能执行的操作即方法)。19630七月2026类包含类的声明和类体两部分,其定义类的一般格式如下:[访问限定符][修饰符]class类名[extends父类名][implements接口名列表>]//类声明
197{//类体开始标志[类的成员变量说明]//属性说明[类的构造方法定义][类的成员方法定义]//行为定义}//类体结束标志30七月202619830七月20265.2.2成员变量成员变量用来表明类的特征(属性)。声明或定义成员变量的一般格式如下:[访问限定符][修饰符]数据类型成员变量名[=初始值];199static表明声明的成员变量为静态的。静态成员变量的值可以由该类所有的对象共享,它属于类,而不属于该类的某个对象。即使不创建对象,使用“类名.静态成员变量”也可访问静态成员变量。final表明声明的成员变量是一个最终变量,即常量。30七月2026200transient表明声明的成员变量是一个暂时性成员变量。一般来说成员变量是类对象的一部分,与对象一起被存档(保存),但暂时性成员变量不被保存。volatile表明声明的成员变量在多线程环境下的并发线程中将保持变量的一致性。30七月202620130七月20265.2.3成员方法方法用来描述对象的行为,在类的方法中可分为构造器方法和成员方法,先介绍成员方法。成员方法用来实现类的行为。方法也包含两部分,方法声明和方法体(操作代码)。20230七月2026方法定义的一般格式如下:[访问限定符][修饰符]返回值类型方法名([形式参数表])[throws异常表]203{[变量声明]//方法内用的变量,局部变量[程序代码]//方法的主体代码[return[表达式]]//返回语句}30七月202620430七月20265.2.4构造方法构造方法用来构造类的对象。如果在类中没有构造方法,在创建对象时,系统使用默认的构造方法。205定义构造方法的一般格式如下:[public]类名([形式参数列表]){[方法体]}30七月202620630七月2026我们可以把构造方法的格式和成员方法的格式作一个比较,可以看出构造方法是一个特殊的方法。应该严格按照构造方法的格式来编写构造方法,否则构造方法将不起作用。20730七月2026有关构造方法的格式强调如下:1)构造方法的名字就是类名。2)访问限定只能使用public或缺省。一般声明为public,如果缺省,则只能在同一个包中创建该类的对象。3)在方法体中不能使用return语句返回一个值。208谢谢!30七月2026209项目五面向对象的程序设计基础5.3对象30七月202621030七月20262115.3对象5.3.1对象的创建创建对象需要以下三个步骤:1.声明对象声明对象的一般格式如下:类名
对象名;例如:Citizenp1,p2;//声明了两个公民对象Floatf1,f2;//声明了两个浮点数对象30七月202621230七月20262132.创建对象对象只有在创建后才能使用,创建对象的一般格式如下:对象名=new类构造方法名([实参表]);其中:类构造方法名就是类名。new运算符用于为对象分配存储空间,它调用构造方法,获得对象的引用(对象在内存中的地址)。例如:p1=newCitizen(“张三”,”张山”,”女”,newDate(),”中国北京”,);f1=newFloat(26f);f2=newFloat(38f);30七月2026214注意:声明对象和创建对象也可以合并为一条语句,其一般格式是:类名
对象名=new类构造方法名([实参表]);30七月2026215例如:Citizenp1=newCitizen(“张三”,”张山”,”女”,newDate(),”中国北京”,);Floatf1=newFloat(26f);Floatf2=newFloat(38f);30七月202621630七月20263.引用对象在创建对象之后,就可以引用对象了。引用对象的成员变量或成员方法需要对象运算符“.”。引用成员变量的一般格式是:对象名.成员变量名21730七月2026引用成员方法的一般格式是:对象名.成员方法名([实参列表])在创建对象时,某些属性没有给于确定的值,随后可以修改这些属性值。2185.3.3对象的清除在Java中,程序员不需要考虑跟踪每个生成的对象,系统采用了自动垃圾收集的内存管理方式。运行时系统通过垃圾收集器周期性地清除无用对象并释放它们所占的内存空间。30七月2026219垃圾收集器作为系统的一个线程运行,当内存不够用时或当程序中调用了System.gc()方法要求垃圾收集时,垃圾收集器便于系统同步运行开始工作。在系统空闲时,垃圾收集器和系统异步工作。30七月2026220事实上,在类中都提供了一个撤销对象的方法finalize(),但并不提倡使用该方法。若在程序中确实希望清除某对象并释放它所占的存储空间时,只须将空引用(null)赋给它即可。30七月2026221谢谢!30七月2026222项目五面向对象的程序设计基础5.4方法的进一步讨论5.5变量的进一步讨论30七月20262235.4方法的进一步讨论主要讨论方法引用中的参数传递、方法的重载以及static(静态)方法等概念。30七月20262245.4.1方法引用及参数传递在Java中,方法引用有两种方式:系统自动引用和程序引用。系统自动引用一般用在一些特定的处理中。本节主要介绍程序引用方法及参数传递问题。30七月20262251.方法声明中的形式参数在方法声明中的“()”中说明的变量被称之为形式参数(形参),形参也相当于本方法中的局部变量,和一般局部变量所不同的是,它自动接受方法引用传递过来的值(相当于赋值)。然后在方法的执行中起作用。30七月2026226例如,在Citizen类中的方法:publicvoidsetName(Stringname){=name;}当对象引用该方法时,该方法的形参name接受对象引用传递过来的名字,然后它被赋给对象的属性name。30七月20262272.方法引用中的实际参数一般我们把方法引用中的参数称为实际参数(实参),实参可以是常量,变量、对象或表达式。30七月2026228例如:Citizenp2=newCitizen("李明","","男",null,"南京","50110119850624273x");p2.setName("李鸣");30七月20262293.参数传递方式参数传递的方式有两种:按值传递和按引用传递。30七月20262301)按值传递方式指的是在方法调用时,传递的参数是按值的拷贝传递。按值传递的重要特点是传递值的拷贝,也就是说传递后就互不相关了。30七月20262312)按引用传递方式指的是在方法调用时,传递的参数是按引用进行传递。其实传递引用的地址,也就是变量所对应的内存空间的地址。传递值的引用,也就是说传递前和传递后都指向同一个引用(也就是同一个内存空间)。30七月20262325.4.2方法的重载所谓重载(Overloading)就是指在一个类中定义了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抵制不良网络风气营造清朗网络空间小学主题班会课件
- 确保按时完成设计部项目报告的跟进通知(7篇)
- 2026年石材订单支付确认函(4篇)范文
- 北京华恒智信赋能设计院搭建高效沟通协作体系
- 领导学(专升本)地质大学期末开卷考试题库及答案
- 矿井维修电工中级工试题及答案
- 电子产品售后服务请求函(7篇范文)
- 服务合同条款解释说明
- 标准合同模板修改通知函5篇
- 2026年专业技术人员科技伦理公需科目题库及答案
- TCSAE《摩托车和轻便摩托车操纵稳定性试验方法》编制说明
- 呼吸道六联检分子检测诊断价值
- aed急救培训课件
- DZ/T 0275.5-2015岩矿鉴定技术规范第5部分:矿石光片鉴定
- 严重精神障碍家庭护理教育
- 宠物招聘面试题及答案
- 内悬浮内拉线铁塔组立施工方案
- 电缆更换工程方案(2025修订版)投标文件(技术方案)
- 南方全站仪NTS-332R说明书
- 137案例黑色三分钟生死一瞬间事故案例文字版
- DL-T+932-2019凝汽器与真空系统运行维护导则
评论
0/150
提交评论