java期末复习1Word文档格式.docx
《java期末复习1Word文档格式.docx》由会员分享,可在线阅读,更多相关《java期末复习1Word文档格式.docx(25页珍藏版)》请在冰点文库上搜索。
"
+i+"
and"
+j);
Thesumis:
+sum);
第三章
1、整型/整型=整型例如;
7/3=2
2、switch开关语句
switch语句是多分支的开关语句,它的一般格式定义如下:
switch(表达式)
{
case常量值1:
若干个语句
break;
case常量值2:
………
case常量值n:
[default:
若干语句]
switch后面括号中表达式的值不能用浮点类型或long类型
例:
publicclassSwitchOp1
publicstaticvoidmain(Stringargs[])
{
floata=9;
floatb=3;
floatresult=0;
charop='
+'
;
switch(op)
case'
:
result=a+b;
-'
result=a-b;
*'
result=a*b;
/'
result=a/b;
default:
result=0;
result="
+result);
运行结果如下:
publicclassSwitchOp2
floatresult;
break;
运行结果如下:
3、例如,x的初值是1,那么语句:
((y=1)==0)&
&
((x=6)==6);
中的x值仍是1。
中的x值是6。
4、右移位运算的符号为:
>
。
并用0或1填充左边的高位,a是正数用0填充,负数时用1填充
运算符>
同样是执行一个右移位,只是它执行的是不带符号的右移。
在不带符号的右移中,右移后左边留下的空位中添入的一律是0。
左移位运算的符号为:
<
并用0填充右边的低位。
5.下列System.out.printf语句的输出结果是什么?
Inta[]={3,4,1,2,-6};
For(inti=0;
i<
a.length;
i++){
For(intj=i+1;
j<
j++){
If(a[j]<
a[i]){
Intn=a[j];
a[j]=a[i];
a[i]=n;
System.out.printf(“%d,%d,%d,%d,%d”,a[0],a[1],a[2],a[3],a[4]);
结果如下-6,1,2,3,4
第四章
1、方法使用:
(1)构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,并且不返回任何数据类型(无void,没有类型,无return)。
构造方法可重载
(2)静态变量或类变量在内存空间里只有一份
(3)静态成员使用时除了可以用对象名表示外还可用类直接使用
如:
classChinese
Chinese.country
Chinesech1=newChinese();
ch1.country
2、静态代码块
classStaticCode{
staticStringcountry;
aaa"
static
country="
China"
System.out.println("
StaticCodeisloading"
StaticCode(){
Constructoriscalling."
classTestStaticCode{
TestStaticCodeisloading"
publicstaticvoidmain(String[]args){
newStaticCode();
3、单态设计模式
classChinese{
privatestaticChineseobjRef=newChinese();
privatestaticintcount=0;
Stringname;
intage;
privateChinese(){
System.out.println(++count);
publicstaticChinesegetInstance(){
returnobjRef;
classTestChinese{
publicstaticvoidmain(String[]args){
Chineseobj1=Chinese.getInstance();
Chineseobj2=Chinese.getInstance();
System.out.println(obj1==obj2);
4、
方法名
适用范围
参数
返回类型
访问权限
方法重载
相同
所有类中
不同
无所谓
方法重写
继承关系中
不能降低
现有重载方法:
publicvoidinfo(Stringname,doublecount)
publicvoidinfo(Stringname,intcount)
5、this作用
(1)publicclassPerson
Person(Stringname)
this.name=name;
Person(Stringname,intage)
this(name);
this.age=age;
}
将屏蔽的成员变量用this表示
(2)在一个构造方法里调用其他重载的构造方法
6、包
-d指定生成的字节码文件所在的目录
如果源文件没有包名,使用参数-d可以将字节码文件存放到你指定的有效目录中,例如:
javac–dF:
\tsinghua\1000MyFile.java
将源文件MyFile.java生成的全部字节码文件存放到F:
\tsinghua\1000。
使用import语句可以引入包中的类
java.lang可不用import语句引入包中的类
7、装箱、拆箱
publicclassWrapperDemo03{
publicstaticvoidmain(String[]args){
Integeri=30;
//自动装箱成Integer
Floatf=30.3f;
//自动装箱成Float
intx=i;
//自动拆箱为int
floaty=f;
//自动拆箱为float
8、构造块优先于构造方法被执行
第五章
1、java不支持多重继承,只支持单继承
2、super的作用:
(1)子类使用super调用父类的构造方法
注:
必须是子类构造方法中的头一条语句
(2)子类使用super调用被子类隐藏的成员变量和方法
(3)调用父类中被重写的方法
3、子类的构造过程
Student(){
构造子类的父类部分
再构造子类的新增部分
4、final类适用场合:
(1)用于修饰类,不能被继承
(2)修饰方法,方法不能重写
(3)修饰变量,变为常量
5、上转型对象
privateintn=40;
voidcrySpeak(Strings){
System.out.println(s);
publicclassMonkeyextendsMammal{
voidcompute(intaa,intbb){
intcc=aa*bb;
System.out.println(cc);
voidcrySpeak(Strings){
**"
+s+"
Mammalmammal=newMonkey();
//mammal是Monkey类对象的上转型对象
mammal.crySpeak("
Ilovethisgame"
Monkeymonkey=(Monkey)mammal;
//把上转型对象强制转化为子类的对象
pute(10,10);
例:
classA{
doublen;
intm;
voidf(){
System.out.printf("
子类继承方法f(),n=%f,m=%d\n"
n,m);
voidg(){
你好,n=%f,m=%d\n"
classBextendsA{
intn=12;
子类重写方法g(),n=%d,m=%d\n"
voidcry(){
子类新增的方法,n=%d,m=%d\n"
publicclassExample5_8{
publicstaticvoidmain(Stringargs[]){
Aa;
a=newB();
a.n=0.618;
a.m=200;
a.f();
a.g();
Bb=(B)a;
b.n=555;
b.cry();
6.构造方法不被继承
7.抽象类和抽象方法
Java语言中,用abstract关键字来修饰一个类时,这个类叫做抽象类。
一个abstract类只关心它的子类是否具有某种功能,并不关心该功能的具体实现,功能的具体行为由子类负责实现的。
publicabstractclassDrawing{
publicabstractvoiddrawDot(intx,inty);
publicvoiddrawLine(intx1,inty1,intx2,inty2){
…………
用abstract来修饰一个方法时,该方法叫做抽象方法。
与final类和方法相反,abstract类必须被继承,abstract方法必须被重写。
抽象类中可以包含抽象方法,为所有子类定义一个统一的接口,对抽象方法只需声明,而不需实现,因此它没有方法体。
其格式如下:
abstract返回类型抽象方法名([参数列表]);
abstractclassA
{
abstractintaa(intx,inty);
//用分号来代替方法体的定义
Ø
一个抽象类可以有一个或多个抽象方法。
含有抽象方法的类必须被声明为抽象类,抽象类的子类必须重写所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。
注意:
含有抽象方法的类一定是抽象类,抽象类中的某个方法不一定是抽象的。
声明一个既是abstract又是final的类是不合法的,因为抽象类本身是不完整的,它依靠它的子类提供完整的实现。
final与abstract不能同时修饰一个类
8.接口两大类成员:
常量和抽象方法
9.接口回调在线程中自动完成
10.内部类
(1)可以有自己的成员
(2)外部类不能直接调用内部类的成员,但内部类能使用外部类的任何成员
(3)内部类可以声明为抽象类
11.匿名类
匿名类不可能用匿名类声明对象,但却可以直接用匿名类创建一个对象。
假设Hello是类(已存在),那么下列代码就是用Hello的一个子类(匿名类)创建对象:
newHello()
匿名类的类体
12.捕获异常try-catch-finally
13.
publicclassTry{
publicstaticvoidmain(Stringargs[]){
inti=0;
inta[]={5,6,7,8};
for(i=0;
5;
i++){
try{
System.out.print("
a["
]/"
="
+(a[i]/i));
catch(ArrayIndexOutOfBoundsExceptione){
CatchArrayIndexOutOfBoundsException"
catch(ArithmeticExceptione){
CatchArithmeticException"
catch(Exceptione){
捕获"
+e.getMessage()+"
异常!
finally{
i="
+i);
continue"
14.System.exit(0):
非函数调用,程序彻底结束。
15.声明异常关键字:
throws
16.泛型类
设置上限关键字:
extends
设置下限关键字:
super
第六章
1.Strings类
创建字符串对象
(1)使用String类的构造方法创建字符串对象:
Strings;
s=newString("
wearestudents"
);
声明和创建可用一步完成:
Strings=newString("
(2)也可以用一个已创建的字符串创建另一个字符串,如:
Stringtom=String(s);
String类还有两个较常用构造方法:
(1)String(chara[]):
用一个字符数组a创建一个字符串对象,如:
chara[]={‘b’,’o’,’y’};
Strings=newString(a);
(2)String(chara[],intstartIndex,intcount):
提取字符数组a中的一部分字符创建一个字符串对象,参数startIndex和count分别指定在a中提取字符的起始位置和从该位置开始截取的字符个数,例如:
chara[]={‘s’,’t’,’b’,’u’,’s’,’n’};
Strings=newString(a,2,3);
Strings=newstring(“20”);
S=“Hello”这是错误的命名方式
2.“==”与“equals”的区别
classCompare{
publicstaticvoidmain(String[]args){
Stringstr1=newString("
abc"
Stringstr2=newString("
Stringstr3=str1;
if(str1==str2)
str1==str2"
else
str1!
=str2"
if(str1==str3)
str1==str3"
=str3"
if(str1.equals(str2))
str1equalstr2"
str1notequalstr2"
if(str1.equals(str3))
str1equalstr3"
str1notequalstr3"
3.publicStringsubstring(intstart,intend)方法获得一个当前字符串的子串,该子串是从当前字符串的start处截取到end处所得到的字符串,但不包括end处所对应的字符。
StringTom=“IloveTom”;
Strings=Tom.substring(2,5);
则s为“lov”
4.Student类重写toString()方法,TV类没有重写toString()方法。
importjava.util.Date;
publicclassExample6_3{
Datedate=newDate();
Studentstu=newStudent("
张三"
89);
TVtv=newTV("
电视机"
8776);
System.out.println(date.toString());
System.out.println(stu.toString());
System.out.println(tv.toString());
classStudent{
doublescore;
Student(Stringname,doublescore){
this.name=name;
this.score=score;
publicStringtoString(){
return"
姓名:
+name+"
分散:
+score;
classTV{
doubleprice;
TV(Stringname,doubleprice){
this.price=price;
第八章
1.两种创建线程的方法:
(1)继承法
publicclassThreadDemo1{
newTestThread().start();
while(true){
main:
+Thread.currentThread().getName());
classTestThreadextendsThread{
publicvoidrun(){
run:
(2)接口法
publicclassThreadDemo{
TestThreadtt=newTestThread();
//创建TestThread类的一个实例
Threadt=newThread(tt);
//创建一个Thread类的实例
t.start(