java复习Word格式文档下载.docx

上传人:b****5 文档编号:21008312 上传时间:2023-01-26 格式:DOCX 页数:44 大小:149.26KB
下载 相关 举报
java复习Word格式文档下载.docx_第1页
第1页 / 共44页
java复习Word格式文档下载.docx_第2页
第2页 / 共44页
java复习Word格式文档下载.docx_第3页
第3页 / 共44页
java复习Word格式文档下载.docx_第4页
第4页 / 共44页
java复习Word格式文档下载.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

java复习Word格式文档下载.docx

《java复习Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《java复习Word格式文档下载.docx(44页珍藏版)》请在冰豆网上搜索。

java复习Word格式文档下载.docx

finalintMIN_HEIGHT=69;

2.3基本数据类型

Java中有8种基本数据类型:

•4种整数类型:

byte(8位),short(16位),int(32位),long(64位)

•2种浮点类型:

float(32位),double(64位)

•1种字符类型:

char

•1种布尔类型:

boolean

1、整数类型

•所有Java编程语言中的整数类型都是带符号的数字,不存在无符号整数。

整数类型可使用十进制、八进制和十六进制表示。

首位为“0”表示八进制的数值;

首位为“0x”表示16进制的数值。

整数类型缺省为int类型,如在其后有一个字母“L”表示一个long值(也可以用小写“l”)。

2、浮点类型double,float

如果一个数包括小数点或指数部分,或者在数字后带有字母F或f(float)、D或d(double),则该数为浮点数。

如果不明确指明浮点数的类型,浮点数缺省为double。

3、字符型数据char

•使用char类型可表示单个字符。

•单个字符使用单引号括起来的一个字符:

'

a'

'

X'

7'

$'

'

\n'

字符集

•字符集是字符的有序列表,字符集中的每个字符对应于一个唯一的数字。

•在Java中,使用Unicode字符集,非ASCII

4、boolean类型

•boolean类型通常表示条件的真或假,有效取值只能是保留字:

true或者false(注意大小写)

2.4表达式

除法与求余

•除法(/)运算符两边操作数均为整数,则结果为整数(舍去小数部分

•求余运算(%)返回第一个操作数除以第二个操作数后的余数。

结果的符号与被除数相同。

自增、自减运算符

•自增运算符(++)让操作数增加1

•自减运算符(--)让操作数减1

复合赋值运算符

2.5数据转换

数据类型转换

•扩大转换试图将一个小的数据类型转换成一个大的数据类型,因此扩大转换是安全的(例如:

将short型转换为int型)

•反之,缩小转换试图将一个大的数据类型转换成一个小的数据类型,因此可能丢失信息(例如:

将int型转换为short型)

•Java中,数据类型转换通常有三种方式:

•赋值转换:

intdollars;

doublemoney;

moner=dollars.赋值转换时只能执行扩大类型转换,否则将产生错误

•自动类型转换:

例如,如果sum是一个浮点值并且count是一个整型值,那么执行下列运算前,变量dollars将被自动转换为浮点值:

result=sum/count;

•强制类型转换:

扩大转换与缩小转换都可以通过强制类型转换实现,例如,如果变量total与变量count是整型,但是他们相除后,希望结果是浮点类型,可以对变量total进行强制类型转换:

result=(float)total/count;

2.6交互式程序设计

读取键盘输入

•下面的语句创建了一个从键盘读取输入的Scannerobject,:

Scannerscan=newScanner(System.in);

intmiles=scan.nextInt();

•Scanner类是java.util类包的一部分,必需使用import语句引入

•nextLine方法读取一行键盘输入的值,作为字符串类型返回。

•next读取一个输入,并作为字符串类型返回。

•nextInt读取输入的整型数据

第4章编写类

类与对象的概念(理解)

publicclassStudent//类名

{

Stringname;

//类的属性

doubleEnglish_score;

doubleMath_score;

publicStudent(Stringstr)//类的构造方法

{

name=str;

}

doublegetAveScore(){//类的方法

return(English_score+Math_score)/2;

}

Java允许将多个类保存在同一个文件中,如果一个文件保存了多个类,则只有一个类可以用保留字public来声明,文件名必须要和这个类的名字相同。

一般情况下,可以一个类保存为一个文件。

4.3方法剖析

方法头

•方法的声明以方法头开始

方法体

•方法体位于方法头之后

参数

•当方法被调用,实参拷贝给方法头中的形参

return语句

•方法的返回值类型表明了该方法返回给调用处的值

•不需要返回值的方法具有void返回类型

•return语句指定了将要被返回的值returnexpression;

方法调用的方法及流程

•当一个方法调用时,流程控制跳转到此方法,并且执行此方法的代码。

•当执行结束,流程返回此方法被调用处,继续执行其后的语句。

•调用可以有返回值,也可以没有,依赖于方法的定义

方法调用时流程控制

•如果被调用方法和调用语句在一个类中,调用方法时,只需要此方法的名称

•被调用的方法是另一个类一部分的情况下

构造方法

•构造方法是一个特殊的方法,用于创建对象(创建一个新的对象时会自动调用)

1,构造方法名与类名相同

2,构造方法的可见性修饰符必定为public,因为当实例化一个对象时必定会调用构造方法,否则无法创建类的实例

3,构造方法不能有返回值,其方法声明头中没有返回类型(是没有,不是void)

4,写代码时,可以不写构造方法,系统会提供一个没有参数的空白的构造方法(相当于什么也不做)

5,构造方法可以有多个(当然,形式参数不同,这是重载的概念,见第7章)

toString方法

•所有的类都有一个toString方法(由Object类定义),一般情况下需要覆盖

•toString方法返回以某种方式表示此对象的一个字符串:

•publicStringtoString()

•{

•}

•当一个对象与一个字符串连接或者把对象作为参数传递给println方法,toString方法被自动调用

数据的作用域

•作用域:

程序中数据能被引用(使用)的位置:

▪在类级声明的数据(没有在任何方法内部),能被此类的所有方法使用,也称作实例数据

▪方法内部声明的数据,只能在此方法中使用

•方法中声明的数据称作局部数据(局部变量)

实例数据

•一个类的所有对象共享方法的定义,但是每个对象都有各自的数据空间

只有通过这种方式,两个对象才能有不同的状态

Studenta=newStudent(“zhangsan”);

Studentb=newStudent(“lisi”);

a和b都有相同的方法getAveScore,但他们具有不同的属性,即name,English_score;

Math_score;

这些是独有的,互不影响。

4.2封装

封装

•客户程序可以使用其他对象提供的服务(方法),但是客户对象不必了解那些服务的具体实现。

•任何针对对象状态(对象变量)的改变应该由对象自己的方法来完成。

•一个封装的对象可以被看作一个黑匣子(blackbox)它的内部机制对客户程序隐藏。

•客户只需要调用对象的接口方法,这些接口方法管理对象的实例数据

可见性修饰符

•Java有三种可见性修饰符:

public,protected,以及private

•public:

能在任何地方引用。

•private:

只能在此类的内部引用

•protected:

子类及其相同包类的类引用

•没有使用任何可见性修饰符的成员具有默认可见性,只能能被相同包内的类引用。

•public:

违反封装,因此,实例变量不应该使用public可见性修饰符

•为对象提供服务的方法,应该声明为public可见性,这样才能被客户调用

访问器和修改器

•访问器方法返回实例变量的当前值

•修改器方法改变实例变量的值

•访问器方法、修改器方法的方法名应该具有如下形式:

getX、setX,其中X是实例数据(变量)的名字

•因此有时也称为“get方法”和“set方法”

第3章使用类和对象

3.1创建对象

创建对象

•理解对象引用变量的概念。

•通常,使用new运算符创建对象

•一个对象是某个类的一个实例(instance)

方法调用

•一旦对象创建了,我们可以通过.操作符调用它的方法:

例如:

count=title.length();

垃圾回收

•当一个对象再没有任何有效的引用变量指向它,这个对象在程序中将不能被访问

•这样不能再被访问的对象称作垃圾,Java平台自动执行垃圾回收,把垃圾对象占用的内存空间返回给系统,以便将来使用。

别名

•多个对象引用变量指向同一个对象,这些对象引用变量互称别名

•别名的存在引发一个有趣的现象:

▪一个对象能被多个对象引用变量访问(存、取)

▪如果通过对象引用变量改变对象,那么其他别名的引用也会被改变,因为他们指向同一个对象。

3.2String类

String类的创建,可用new也可直接用字符串常量

String类的常用Methods

•当String类的对象创建后,此对象的长度和值都不能修改

•77页,列出了String类的常用方法:

要求全部掌握

Random类使用

•Random类在java.util包中;

•82页的方法,全部掌握

Math类

•Math类是java.lang包的一部分

•Math类中的方法都是静态方法(也称作类方法)

•静态方法:

通过类名可以直接调用(即,不需要创建类的实例--对象)

例如:

value=Math.cos(90)+Math.sqrt(delta);

•要求掌握:

abs,pow,sqrt,floor,ceil

3.6包装类

•java.lang包中包含了与每种基本类型对应的包装类:

•下面的声明创建一个Integer对象来表示40为一个对象

Integerage=newInteger(40);

•包装类提供了静态的方法帮助管理相关的数据类型

•例如,Integer类包含一个方法把一个存储在String中的integer转换成一个int值:

Stringstr=“18”;

num=Integer.parseInt(str);

•包装类也包含一些有用的常数:

Integer类包含MIN_VALUE以及MAX_VALUE分别存储int型可以表示的最大值和最小值。

3.3包

•Java类库中的类采用包的方式组织管理。

import语句

标准类库中,除Java.lang包中的类系统自动引入外,当我们使用类库中其他包的类时需要import

3.5枚举类型

枚举类型

•Java允许定义枚举类型,然后使用枚举类型声明变量

•下面的语句创建了一个名为Season的枚举类型

enumSeason{winter,spring,summer,fall};

•一旦一个类型被定义,就可以声明这种类型的变量Seasontime;

并且可以赋值:

time=Season.fall;

第五、六章条件和循环

5.1if语句

条件语句

•Java的条件语句有如下几种:

▪if语句

▪if-else语句

▪switch语句

if语句

•if语句语法如下:

布尔表达式

•条件通常使用一个Java的关系运算符或者等价运算符,这些返回布尔值:

==等于

!

=不等于

<

小于

>

大于

=小于等于

=大于等于

•注意区分等于运算符(==)与赋值运算符(=)之间的区别

逻辑运算符

•布尔表达式也能使用下面的逻辑运算符:

!

逻辑非

&

&

逻辑与

||逻辑或

•他们接受布尔运算数并且产生布尔结果

•逻辑非是一个一元运算符(只有一个操作数)

•逻辑与和逻辑或是二元运算符(有两个操作数)

条件运算符

•Java中有一个条件运算符,使用布尔条件决定执行两个表达式中的哪一个被执行

•条件运算符的语法:

condition?

expression1:

expression2

•如果condition为真,执行expression1;

如果为假,执行expression2

•整个条件运算的值就是被选择执行的表达式的值

switch语句

•Switch是另外一种条件语句,该语句可以使程序从多条执行路径中选择一条来执行。

•Switch语句首先计算表达式,然后选择与该值匹配的一条或者多条case子句

•每个case子句包括一个值和一系列语句

•控制流将转到与其匹配的第一个case子句

•switch格式:

•有时候会在每个case子句后面使用break语句

•break语句使得流程跳出switch语句,如果没有使用break语句,流程将继续执行后面的case子句

•Switch可以带有default子句

•default子句不带匹配的值,只是使用保留字default

•如果有default子句,并且没有与switch匹配的case子句,控制流将转到default子句

•如果不带default子句,并且没有其他与之匹配的case子句,控制流将转出Switch语句,执行其续语句

•Switch语句的表达式的结果必须是整型值,也就是说整数(byte,short,int,long)或者char型

5.3数据比较

浮点数的比较

•当比较浮点数(floatordouble)的时候很少使用相等运算符(==)

•对于两个浮点数来说:

使用==的意思是:

只有当底层所有的二进制位都相等时才相等

•大多数情况下,我们认为两个浮点数只要”足够接近”就可以认为他们相等。

•为了比较两个浮点数,我们常常使用如下格式:

•如果两个浮点数之间的差别小于给定的偏差度,那么认为这两个浮点数相等

•偏差值可以根据具体的情况进行设置,例如0.000001

字符的比较

•Java中的字符数据是基于Unicode字符集的

•Unicode中每个字符都有一个唯一的数字对应,并且Unicode中的字符顺序都是固定的。

•由于这些字符存在前后顺序,所以可以使用关系运算符进行比较。

•例如,字符‘+’比‘J’小,因为’+’在Unicode字符集的位置在‘J’之前

•Unicode中,数字(0-9)从小到大连续存放

•同样,大写字母(A-Z)以及小写字母(a-z)也是如此,

•注意顺序:

0-9,26个大写字母位置在前,小写字母在后

字符串比较

•String类的equals方法用于比较两个字符串中所包含的字符是否相同,并且这些字符顺序也相同。

•equals方法返回一个布尔值

•不能使用关系运算符比较字符串

•String提供了compareTo方法,此方法判断两个字符串的大小。

•程序中调用:

pareTo(name2)

▪此方法返回值为0:

name1和name2相等(包含相同的字符串,且顺序一致)

▪返回负数:

name1比name2小,

▪返回正数:

name1比name2大

•由于字符串和字符的比较是基于字符集的,因此也称为字典顺序

对象的比较

•==运算符可以应用与对象-如果两个引用互为别名则返回true

•所有的对象都定义了equals方法,但是如果我们不重新定义,那么它的语义和==运算符是一样的

•在String类中重新定义了equals方法,用来比较两个字符串中的字符

•当我们编写类的时候,我们可以重新定义equals方法,这样在条件适当的时候,让它返回true

5.4while语句

循环语句

•Java语言中有三种类型的循环语句:

▪while循环

▪do循环

▪for循环

•while语句语法如下:

while语句

•while语句举例:

•如果while循环的条件初始值为假,那么循环体永远也不会被执行

•因此,while循环体可以被执行0次或者多次

死循环

•while循环的循环体最终必须将循环条件置为false

•否则就会形成死循环,即循环体将一直执行直到用户强行终止

5.6其它循环语句

do循环语句

•do循环语句的语法:

•首先执行statement,然后计算condition

•重复执行statement,直到condition为false

Do循环语句

•do循环举例:

•do循环体至少执行一次

for循环语句

•for循环举例:

•初始化部分也能用于声明变量

for循环体执行次数是0次或者多次

•增量部分可以执行任何计算

•for循环头部的每个表达式都是可选的

•如果省略初始化表达式,则不会执行初始化

•如果条件表达式被省略,那么会当作条件永远为true,因此形成死循环

•如果省略增量表达式部分,不会执行增量操作

5.5迭代器

•迭代器是一个允许每次执行一个集合元素的对象

•使用迭代器可以按照顺序遍历元素并且处理所需的元素,迭代器对象有一个hasNext方法,当至少还有一个待处理元素时,此方法返回true。

next方法返回下一个元素

•Java标准类库中有一些类就是迭代器

•Scanner就是迭代器

▪如果还有待扫描的数据,hasNext方法就返回true

▪next方法将下一个扫描的数据项作为一个字符串返回

•Scanner类的hasNext方法对于特定的数据类型具有多种形式

迭代器和for循环

•For循环只是简单的重复处理这些元素

•例如,如果BookList是迭代器,负责管理Book对象,那么下面的选还将会打印每本书:

•因此for循环的迭代器版本有时也称作foreach循环

实验8求阶乘

Factorials

n的阶乘(n!

)表示整数从1到n的乘积。

比如,4!

=1*2*3*4=24。

另外,0!

=1。

阶乘不适用于负数。

1.编写一段程序,请用户输入一个非负整数,然后打印该整数的阶乘。

请使用while循环语句编写程序。

请考虑用户输入0的情况。

2.修改程序,检查用户是否输入非负整数。

如果输入的负数,则提示用户输入非负整数,并请用户重新输入,直到用户输入非负整数为止。

见“复习代码”文件夹Fac.java

练习

T1:

利用while循环编写出一个打印如下结果的程序。

1

22

333

4444

55555

Xunhuan1.java

T2:

鸡兔同笼问题,一个笼子中有10个头,32只脚,问多少只兔子多少只鸡?

(用while循环)T2.java

T3:

编写程序:

输出如下图型(提示:

将一行分为3部分,分别是空格、数字递增部分、数字递减部分)

T4:

编写一个完整的应用程序,要求用户输入5个整数(使用循环结构),输出这五个整数的最大值和最小值。

T5:

求S=a+aa+aaa+…+aaaa…a之值,共n项,其中a是一个数字(1-9)。

2+22+222+2222+22222(此时a=2,n=5),a和n要求用户由键盘输入。

要求打印出等式和结果。

实验9计算连续向上的抛硬币次数

见“复习代码”文件夹Runs.java

部分同学理解为总共向上的次数

第六章面向对象设计

静态修饰符

•通过static修饰符声明静态的方法和静态变量

•静态方法也称为类方法、静态变量也称为类变量

•静态方法或者变量是类所有的,或者说所有潜在的对象所共享的,因此,不需要建立

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1