学号 20175206 《Java程序设计》第四周学习总结
教材学习内容总结
第五章主要讲的是主类与继承
本章主要介绍了:封装、继承、多态的关系;抽象类与接口的区别;各种关键字的类与方法;主要探究了子类的各种性质以及使用方法,还有各种模式的使用
还有各种覆盖方法垃圾回收机制等。
其中前三章介绍子类与父类的定义,格式方式
class 子类名 extends 父类名 { }
子类的性质:(继承性)
子类和父类同一包中的性质
不在同一包的性质
继承关系等
子类与对象的特点及运算符等。
接下来是成员变量的隐藏和方法重写,final关键字和super关键字等
抽象方法和抽象类
多态性
Instanceof:判断一个对象是否是一个类的实例,
对象名 instanceof 类名等
代码调试中的问题和解决过程
-
问题1:子类的继承性与父类有什么关系?
-
问题1解决方案:
在一包,子类自然继承变量
因为继承变量,所以在同一包下,可以直接输出代码中的元素。
若未被继承,则会出现一定的错误。
-
问题2:子类隐藏的继承变量的特点如何声明
-
问题2解决方案:
子类继承的方法只能操作子类继承和隐藏的成员变量。
-
问题3:继承与多态性如何体现?
-
问题3解决方案:
如书上的例子所示:
代码运行结果为:
父类的某个方法被其子类重写时,可以各自产生自己的功能行为
代码托管
上周考试错题总结
- 错题1:
下列关于abstract关键字的说法,正确的是(BCDF)
A .可以使用static修饰abstract方法。
B .非abstract类中不可以有abstract方法。
C .不能使用new创建abstract类的对象。
D .不允许使用final和abstract同时修饰一个方法.
E .可以使用public abstract void eat(){};来声明抽象方法eat()。
F .抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类,由子类重写此抽象方法。
原因:
F选项
抽象方法不能具体执行,只能交给继承抽象类的子类,因说法过于绝对,所以并没有选择。
- 错题2
对于下列代码,下列哪个叙述是正确的?(A)
class A {
public int i=0;
A(int m) {
i = 1;
}
}
public class B extends A {
B(int m) {
i = 2;
}
public static void main(String args[]){
B b = new B(100);
System.out.println(b.i); //【代码】
}
}
A .程序提示编译错误(原因是A类没有不带参数的构造方法)
B .编译无错误,【代码】输出结果是0。
C .编译无错误,【代码】输出结果是1。
D .编译无错误,【代码】输出结果是2。
原因:选项A;对知识的掌握不够精深。
- 错题3
下列注释的哪些代码(A、B、C、D)无法通过编译?(CD)
class Father {
private int money =12;
float height;
int seeMoney(){
return money ; //A
}
}
class Son extends Father {
int height;
int lookMoney() {
int m = seeMoney(); //B
return m;
}
}
class E {
public static void main(String args[]) {
Son erzi = new Son();
erzi.money = 300; //C
erzi.height = 1.78F; //D
}
}
A .A
B .B
C .C
D .D
原因:在终端中编译出现错误,不知道正确的选项
学习进度条
C声明 | Intel数据类型 | 汇编代码后缀 | 大小(字节) |
---|---|---|---|
char | 字节 | b | 1 |
short | 字 | w | 2 |
int | 双字 | l | 4 |
long | 四字 | q | 8 |
char* | 四字 | q | 8 |
float | 单精度 | s | 4 |
double | 双精度 | l | 8 |