知识点整理Day_06:
1 易错题整理
① 下面关于if的说法错误的是:
A.if是一种分支结构
B.if常常用于实现2条路结构
C.在if结构中,若条件为true则执行语句块
D.在if结构中,若条件为false则不会执行语句块
【正确答案】B
【答案解析】在java中,if是一种分支结构,用于实现1条路结构,实现满足条件时则做操作,不满足条件时不做操作。题目中说if常常用于实现2条路结构是错误的。
② 判断年龄age在18到50之间的正确代码是(包含18和50):
A.age>=18 && age<=50
B.age>=18 || age<=50
C.age>18 || age<50
D.age>18 && age<50
【正确答案】A
【答案解析】在java中,连接多个条件运算必须使用逻辑运算符&&或||,若想表示在18到50之间(包含18到50)的话,需要age>=18并且age<=50。表达并且使用&&,所以本题正确 的代码是age>=18 && age<=50。
③ 下列选项中()是java的关键字:
A.break
B.Class
C.Continue
D.PUBLIC
【正确答案】A
【答案解析】在java中,是严格区分大小写的,大写字母也小写字母是完全不同的东西,如果选项中只有break是关键字。
④ 如下代码会发生编译错误的是:
A.short s1 = 5; short s2 = 6; int s3 = s1+s2;
B.byte b1 = 5; byte b2 = 6;
C.short s = 5;
D.short s1 = 5; short s2 = 6; short s3 = s1+s2;
【正确答案】D
【答案解析】在java中规定,整数直接量可以直接赋值给byte,short,char,但一定要在范围内,而byte,short,char型数据参与运算时会一律先转换为int再运算,而int是不能赋值给short的, 所以案例中的s1+s2的值为int,是不能直接赋值给short型变量s3的。
⑤ 关于switch说法错误的是:
A.当所有case都未匹配时,才会执行default后的语句
B.switch中必须有default
C.switch是一种分支结构
D.case后的数据不能重复
【正确答案】B
【答案解析】在java中,switch是一种特殊的分支结构 ,可以根据一个整数的值来贯穿执行switch,规定case后的数据是不能重复的,可以包含default,也可以不包含default, 但是无论default写在什么位置,也是会先匹配case,当所有case都未匹配时才执行。所以选项中说switch中必须有default是错误的。
2 引用类型与引用类型数组赋值区别
① 引用类型:通过栈中局部变量b的地址指向Bomb对象的成员变量
//初始化语句
Bomb b=new Bomb(100,200);//局部变量b1指向Bomb对象
② 引用类型数组:通过栈中局部变量stus的地址指向Student引用数组类型对象的成员变量stus[0]、stus[1],通过存储的地址指向Student对象的成员变量
Student[] stus=new Student[2];
stus[0]=new Student("李四",20,"JMS");
stus[1]=new Student("张三",25,"LF");
3 空指针异常
4 超类和派生类中的变量如果同名,默认就近原则
案例分析:因为派生类Boo中声明了x,根据就近原则,优先指向Boo的x,而Boo中没有声明y,则派生类Boo接收到y后指向了超类Aoo的y
Class Aoo{
int x;
int y;
Aoo(int x,int y){
this.x=x;
this.y=y;
}
}
Class Boo extends Aoo{
int x;
Boo(int x,int y){
super(x,y);
}
}
5 区分构造方法与普通方法
//语法:
Class Aoo{
Aoo{//构造方法
}
void Aoo{//普通方法
}
}
//调用:普通方法打点,构造方法new对象时自动调用
6 重载与重写案例
//重载
Class Aoo{
void show(){}
}
Class Boo extends Aoo{
void show(int a){}
}
//此时在派生类Boo中发生了重载,因为Boo继承了Aoo也就拥有了Aoo中无参的show方法,与自己有参的show方法形成重载
//重写
Class 餐馆{
void 做餐(){
做中餐;
}
}
Class Aoo{
Aoo(){
super.做餐();
做西餐;
}
}//我想在中餐基础上加入做西餐------需要重写(先super中餐,再加入西餐)
7 switch与default案例
注意:
① switch中可以没有default
② default可以在任意位置,注意break的位置
③ switch为顺序结构,且以case为入口,想要结束:要么遇到break,要么运行到语句末端