Java期末复习.docx
- 文档编号:8808967
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:39
- 大小:29.82KB
Java期末复习.docx
《Java期末复习.docx》由会员分享,可在线阅读,更多相关《Java期末复习.docx(39页珍藏版)》请在冰点文库上搜索。
Java期末复习
java期末总复习资料
第一讲
Java的特点:
平台独立性和可移植性
面向对象(OO)
OOP和POP编程思路的差别
所有计算机程序都由两类元素组成:
代码和数据程序两种写法:
以代码为核心或以数据为核心进行组织编写。
1. 围绕“正在发生什么”编写—面向过程的编程
2. 围绕“谁将被影响”编写—面向对象的编程
纯粹面向过程的编程
(1)程序具有线性执行的特点。
(2)面向过程的程序可以认为是代码作用于数据。
面向对象的编程。
(1)围绕它的数据(对象)和为这个数据严格定义的接口来组织程序。
(2)面向对象的程序实际上是用数据控制对代码的访问。
OOP的特点
纯粹的面向对象程序设计有以下特点:
1.所有的东西都是对象。
例如max对象。
2.程序是一大堆对象的组合。
通过消息(参数)传递,各对象知道自己应该做些什么。
3.每个对象都有自己的存储空间
4.每个对象都属于某个类。
每个对象都是某个”类”的一个”实例”。
复习
ü 面向对象(OOP)和面向过程(POP)在程序设计上有哪些区别?
ü Java的哪2个特点决定了Java的存在和发展?
ü Javaapplication和Javaapplet有那些区别?
讨论第一个javaapplication
publicclassHelloWorld
{
publicstaticvoidmain(Stringargs[])
{
System.out.println(“HelloWorld!
!
”);
}
}
说明:
1.关键字class声明了一个新类,HelloWorld是类名称标识符,整个类定义在一对{}之间,花括号的使用同C或C++相同。
但是在java中,所有程序活动都发生在类内,这就是为什么java程序是面向对象的。
2. public:
访问说明符,允许程序员控制成员的可见性。
main()必须定义为public类型,因为当程序开始执行的时候它需要被它外部的代码调用
3.关键字static允许调用main()而不必先实现该类的一个实例
4.关键字void通知编译器:
main()不返回任何值
5.在main()中接收了一个参数,是一个叫做args的参数,是String类的一个实例数组。
args用于存储程序运行时的任何命令行参数
6. System是一个预定义可以访问系统的类,out是连接到控制台的输出流,由内置方法println()来实现输出,输出结果后带一个回车。
每一个程序语句以;结束。
第二讲
标识符
ü 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符。
ü Java语言中,标识符是以字母,下划线(_),美元符($)和数字组成。
第一个字符不能是数字。
合法的标识符
identifier userName User_Name
_sys_value $change
非法的标识符
2mail room# class
保留字
ü 具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为关键字或保留字。
Java一共有50个保留字
在Java中,true、false和null都是小写的。
不必死记这些保留字,当理解每个保留字的含义后,自然就记住了所有的保留字。
数据和返回值类型:
int,void,return……
包/类/成员/接口:
package,class,interface
访问控制:
public,private,protected
循环及循环控制:
if,switch,break
例外处理:
throw,try,finally
保留词(无含义但不能使用):
goto,const
常量与变量
∙Java中的常量值区分为不同的类型,如整型常量123,小数型常量1.23,字符常量‘a’,布尔常量true、false以及字符串常量“Thisisaconstantstring.”。
∙常量用保留字final来实现
finaltypeSpecifiervarName=value[,varName[=value]…];
如:
finalintNUM=100
∙程序中的基本存储单元,其定义包括变量名、变量类型和作用域几个部分,定义格式为:
TypevarName[=value][{,varName[=value]}];
intn=3,n1=4;
∙Java中变量的缺省初值都是确定的:
布尔变量的初值为:
false
整数变量的初值为:
0
浮点数变量的初值为:
0.0
引用(复合)变量的初值为:
null
Java语言基本数据类型
∙java语言的数据类型可分为简单类型和复合类型。
∙简单数据类型包括:
逻辑类型(Logical):
boolean
字符类型(Textual):
char
整数类型(Integer):
byte,short,int,long
浮点类型(Floating):
float,double
∙复合数据类型包括:
class、interface和数组
简单数据类型(逻辑型)
ü 布尔型数据只有两个值true和false,且它们不对应于任何整数值。
ü 布尔型变量的定义如:
booleanb=true;
简单数据类型(字符型)
ü 字符型数据代表16位的Unicode字符。
字符型常量共有65536个。
ü 字符常量是用单引号括起来的一个字符‘a’‘B’‘\n’‘\u0030’。
特殊字符的常量表示法:
– 反斜线(Backslash) ‘\\’
– 退格(Backspace) ‘\b’
– 回车(Carriagereturn) ‘\r’
– 进纸符(Formfeedsymbol) ‘\f’
– 制表符(Tablesymbol) ‘\t’
– 换行(Newline) ‘\n’
– 单引号(Singlequote) ‘\’’
– 八进制数(‘\0’~‘\377’) ‘\233’
– Unicode字符 ‘\uHHHH’
ü 简单数据类型(整数型)整数型变量为byte、short、int或long。
其中byte在机器中占8位,short占16位,int占32位,long占64位。
ü 整数型变量的定义如:
intx=123;
byteb=8;
shorts=10;
longy=123L;
longz=123l;
没有以l或L结尾的数字,根据其实际值所属范围,可以被用作byte,short,或int型整数。
以l或L结尾的数字,无论其实际值所属范围怎样,都被用作long型整数。
简单数据类型(浮点型)
ü 浮点型变量为float或double,其中float在机器中占32位,double占64位。
ü 浮点型型变量的定义如:
– doubled1=127.0; //赋初值为127
– doubled2=127; //赋初值为127
– floatf1=127.0f; //必须在数字后加f或F
– floatf2=4.0e38f; //错误!
32位浮点数不能超过3.4028234663852886e38
– floatf3=(float)d1; //必须强制类型转换
浮点型常量:
1.十进制数形式
由数字和小数点组成,且必须有小数点,如0.123,.123,123.,123.0
2.科学计数法形式
如:
123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。
32位浮点数形式:
0.23f, 1.23E-4f, .18F
简单数据类型
数据类型 所占位数 数的范围
char 16 0~65536
byte 8 -128~127
short 16 -32768~32767
int 32 -2147483648~2147483647
long 64 -9223372036854775808~…
float 32 3.4e-038~3.4e+038
double 64 1.7e-308~1.7e+308
Java数据类型转换
∙自动类型转换(拓宽转换)
如果下列两个条件都能满足,那么将一种类型的数据赋给另外一种类型的变量时,将执行自动类型转换:
1.这两种类型是兼容的
2.目的类型数的范围比来源类型大
低—————————————————–>高
byte—>short—>int—>long—>float—>double
⑴自动转换
具体地讲,当一个较“小”数据与一个较“大”的数据一起运算时,系统将自动将“小”数据转换成“大”数据,再进行运算。
而在方法调用时,实际参数较“小”,而被调用的方法的形式参数数据又较“大”时(若有匹配的,当然会直接调用匹配的方法),系统也将自动将“小”数据转换成“大”数据,再进行方法的调用,自然,对于多个同名的重载方法,会转换成最“接近”的“大”数据并进行调用。
这些类型由“小”到“大”分别为(byte,short,char)–int–long–float—double。
这里我们所说的“大”与“小”,并不是指占用字节的多少,而是指表示值的范围的大小。
请看下面的示例:
①下面的语句可以在Java中直接通过:
byteb;
inti=b;
longl=b;
floatf=b;
doubled=b;
②如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如
charc=’c';
inti=c;
System.out.println(“output:
”+i);
输出:
output:
99;
③对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
shorti=99;
charc=(char)i;
System.out.println(“output:
”+c);
输出:
output:
c;
∙数字类型(numeric)都是彼此兼容的
∙数字类型(numeric)和字符类型(char)或布尔类型(boolean)是不兼容的
∙字符类型(char)和布尔类型(boolean)也是互相不兼容的
∙强制类型转换(缩小转换)
将源数据类型的值变小以适合目标类型数据。
例如:
inta=257;
byteb;
b=(byte)a;
∙强制类型转换(截断转换)
将浮点数赋给整型的时候,截断转换就发生了。
例如:
floata=6.334F;
intb;
b=(int)a; //b的结果是6,而0.334被丢弃。
∙表达式中类型的自动提升
byte类型和short类型的表达式操作的结果会被自动提升为int
例如:
bytea=50;
a=a*a; //该句出错!
注:
如果表达式中有一个操作数为Long型,则整个表达式被提升到Long型。
classPromote
{
publicstaticvoidmain(Stringargs[])
{
byteb=42;
charc=’a';
shorts=1024;
inti=50000;
floatf=5.67f;
doubled=.1234;
_____ result=(f*b)_(i/c)-(d*s);
}
}
第三讲
运算符
ü 算术运算符:
+,―,*,/,%,++,――
ü 关系运算符:
>,<,>=,<=,==,!
=
ü 布尔逻辑运算符:
!
,&,|,^
ü 条件运算符:
?
:
ü 赋值运算符:
=,及其扩展赋值运算符如 +=,―=,*=,/=等。
/与%:
publicclassnum
{
publicstaticvoidmain(Stringargs[])
{
inti=5;
doubled=5;
System.out.println(d%3);
}
}
(int)5/3=1 (double)5/3=1.66667
(int)5%3=2(float)5%3=2.0(float)5.2%3=2.2
inti,k;
i=10;
k=i<0?
-i:
I;
a=true;
b=false;
a|b=
a&b=
a^b=
运算符的优先次序
1).,[],() 9)&
2)++,—,!
~ 10)^
3)new(type) 11)|
4)*,/,% 12)&&
5)+,- 13)||
6)>>,>>>,<< 14)?
:
7)>,<,>=,<= 15)=,+=,-=,*=,/=,%=,^=
8)==,!
= 16)&=,|=,<<=,>>=,>>>=
表达式
∙表达式是由操作数和运算符按一定的语法形式组成的符号序列。
∙一个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值;
∙表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。
语句
Java中的语句可以分为五类:
ü 方法调用语句
ü 表达式语句
ü 复合语句
ü 控制语句
ü package语句和import语句
控制语句
Java的控制语句有3种类型:
条件语句
循环语句
转移语句:
break;continue;return
多分支语句switch
switch(expression)
{
casevalue1:
{
statements1;
break;
}
……
casevalueN:
{
statementsN;
break;
}
[default :
{
defaultStatements;
}]
}
备注:
表达式expression的返回值类型必须是这几种类型之一:
int、byte、char、short。
case子句中的值valueI必须是常量,而且所有case子句中的值应是不同的。
default子句是任选的。
break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。
(如果某个case分支后没有break语句,程序将不再做比较而执行下一个分支。
)
switch语句的功能可以用if-else语句来实现,但某些情况下,使用switch语句更简炼。
for语句执行时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。
完成一次循环后,重新判断终止条件。
初始化、终止以及迭代部分都可以为空语句(但分号不能省),三者均为空的时候,相当于一个无限循环。
在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。
逗号语句是用逗号分隔的语句序列。
for(inti=0,intj=10;i { …… } 在switch语中,break语句用来终止switch语句的执行,使程序从整个switch语句后的第一条语句开始执行。 在循环语句中,break用于终止并跳出循环,从紧跟着循环体代码段后的语句执行。 continue语句用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。 对于for语句,在进行终止条件的判断前,还要先执行迭代语句。 它的格式为: continue; 也可以用continue跳转到括号指明的外层循环中,这时的格式为 continueouterLable; 单独一条return语句放在方法中间时,会产生编译错误,因为其后的语句将不会执行到。 若真需要退出方法,可以通过将return语句嵌入某些语句(如if-else)来使程序在未执行完方法中所有语句时退出。 第4讲 1、类的基础——类与对象的概念 类就是对象的模板,它定义一类对象所能共同拥有的属性和共同的行为。 对象就是类的实例。 2、如何创建一个类? ü 使用关键字class来创建类。 ü 类中的属性可以是任何一种Java数据类型。 ü 类中的方法可分为三大类: 构造方法,存取方法和功能方法。 ∙构构造方法在对象创建时被调用; ∙构造方法与类同名; ∙构造方法没有任何返回值。 备注: 当你定义一个类时,你要准确地声明它属性和方法。 可能非常简单的类只有属性,但绝大多数类包含两者。 使用关键字class来创建类。 实际上,类被完全限制在它的格式中。 在绝大多数情况下,类中的属性操作和存取被定义在类的方法中。 3、方法定义的语法规范 [方法修饰字]返回类型 方法名称(参数1,参数2,…) { …(statements;) //方法体: 方法的内容 } 修饰字: [public|protected|private][static][final|abstract][native][synchronized] ü返回类型可以是任意的Java数据类型,当一个方法不需要返回值时,返回类型为void。 ü 4、如何创建并使用对象? n 一个简单的类 classBox { doublewidth; doubleheight; doubledepth; } ü 创建一个Box类的对象: Boxmybox=newBox(); ü 访问mybox对象的属性: mybox.width 备注: Box类有三个属性,但不包含任何方法。 当你创建类的一个对象的时候,该对象包含由这个类所定义的每个属性变量的copy。 因此,每个box对象都包含自己的属性变量,即width,height,depth。 访问类的变量,要使用“.”运算符,将对象名和属性名(或方法名)连接起来。 例如: mybox.width=100; 练习: 水仙花数 classShuiXianHua { intnum; int[]result; double[]ws; ShuiXianHua(intn) { num=n; result=newint[10]; ws=newdouble[n]; } intgetNumber() { returnnum; } voidsetNumber(intn) { num=n; result=newint[n]; } int[]getShuiXianHua() { intstart=(int)Math.pow(10,num-1); intend=(int)Math.pow(10,num); intcount=0; for(inti=start;i { for(intj=0;j { ws[j]=getWS(i,j); } if(judgeSXH(i,ws)) { result[count]=i; count++ ; } } returnresult; } intgetWS(intshuzi,intdjw) { return (int)(shuzi/(Math.pow(10,djw)))%10; } booleanjudgeSXH(doubletemp_shuzi,double[]temp_ws) { booleantag=false; doublecompu_result=0; for(intk=0;k { compu_result+=Math.pow(temp_ws[k],num); } if(compu_result==temp_shuzi) { tag=true; } returntag; } } publicclassTest { publicstaticvoidmain(Stringargs[]) { intnumb=Integer.parseInt(args[0]); ShuiXianHuaSXH=newShuiXianHua(numb); int[]print_result=SXH.getShuiXianHua(); for(inti=0;i { if(print_result[i]! =0) { System.out.println(print_result[i]); } } } } 5、Java中的类、方法和变量——垃圾回收: finalize()方法 u 使用new运算符为一个对象动态地分配内存; u 使用finalize方法为一个对象执行撤消操作。 ü 在类中定义finalize()方法,为类增加收尾操作 ü protectedvoidfinalize(){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 期末 复习