20165330 2017-2018-2 《Java程序设计》第4周学习总结
课本知识总结
第五章 子类与继承
- 子类:在类的声明中,通过使用关键字extends来定义一个类的子类。
class 子类名 extends 父类名 {
...
}
- 继承:子类继承父类的成员变量作为自己的一个成员变量。
- 当子类和父类不在同一包中时,子类只继承父类中的protected和public访问权限的成员变量作为子类的成员变量
- instanceof运算符:是双目运算符,其左面的操作元是对象,右面是类;运算结果是true或false。
- 方法重写:
- 语法规则:在子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同。
- 重写目的:子类通过方法的重写可以隐藏继承的方法,子类通过方法的重写可以把弗雷德状态和行为改变自身的状态和行为。
- super关键字:子类想使用被隐藏的方法或成员变量时使用
- final关键字:可以修饰类、成员变量、方法中的局部变量
- final类(不能有子类)
final class A {
...
}
- final方法:不允许子类隐藏可以继承final方法
- 常量:若成员变量或局部变量被修饰为final,那它就是常量。
- 上转型对象:
- abstract类和abstract方法
- abstract类:
abstract class A {
...
}
- abstract方法:
abstract int min(int x,int y);
- abstract类中可以有abstract方法
- abstract类不能用new运算符创建对象
- 多态:父类的某个方法被其子类重写时,可以各自产生自己的功能行为。
第六章 接口与实现
- 接口:使用关键字interface定义,分为接口声明和接口体,如:
interface Printable {
final int MAX=100;
void add();
float sum(float x,float y);
}
- 接口声明:
interface 接口的名字
- 接口体:只有抽象方法,且所有的常量的访问权限一定都是public,而且是static常量,所有的抽象方法的访问权限一定都是public。
- 实现接口:在一个类中,需在类声明中使用关键字implements声明该类实现一个或多个接口。
- 接口回调:可以把实现某一接口的类创建的对象的引用赋值给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口方法。
- 接口参数:方法的参数的数值可以是byte、int、long、float、double型。若该方法的参数是接口类型,可以将任何实现该接口的类的实例的引用传递给该接口参数,那么接口参数就可以回调类实现的接口方法。
- 注意:
- 接口体中只可以有常量和abstract方法。
- 接口变量中只能存放实现该接口的的类的实例(对象)的引用。
代码托管
上周考试错题总结
- 、
解析:0xaa 用二进制表示为 10101010 ,0x55 用二进制表示为 01010101 ,按位或之后为 11111111 ,十进制数为255,十六进制数为 0xFF 。
解析:15 等于1111 ,240等于 11110000,15前面用0补齐为00001111 ,按位与之后为 00000000 ,即结果为0。
解析:无符号右移 (“>>>”) ,即无论正负数,右移之后符号位均补 0 。-2 的二进制无符号右移一位之后为 0111 1111 1111 1111 1111 1111 1111 1111,即 2^31 - 1。注意:>>、<<、>>>运算符只针对int型和long型,byte ,short ,char型需要转换成int型再进行操作。
解析:short将byte类型的x强制转化为short类型,但y的精度更高,所以返回类型为double。
解析:x--为在使用x后再-1,这里1/2=0,下一步i--=-1,所以选C。
解析:C项:Float是float提供的封装类,不是基本数据类型。D项:以0开头是八进制表示法,十六进制以0x开头。