教材学习内容总结
第五章
子类与父类:
继承
关键字 extends
public class SwordsMan extends Role{
//SwordsMan会继承Role的行为,并对Role的行为进行扩充,仅在SwardsMan中使用新定义的行为
public void fight(){
System.out.println("挥剑攻击");
}
}
上述代码表示,类SwordsMan继承了类Role,类SwordsMan扩充了类Role的行为,也就是类Role中有定义的程序代码,类SwordsMan因为继承而都拥有了。
子类只能有一个父类。
父类与子类的关系:
父类引用指向子类对象时:
若子类覆盖了某方法,则父类引用调用子类重新定义的新方法
若子类未覆盖某方法,则父类引用调用父类本身的旧方法
若子类覆盖了某属性,但父类引用仍调用父类本身的旧属性
若子类未覆盖某属性,则父类引用调用父类本身的旧属性
父类引用不能访问子类新定义的方法
子类引用指向自身对象时:
若子类覆盖了某方法,则子类引用调用子类重新定义的新方法
若子类未覆盖某方法,则子类引用调用父类本身的旧方法
若子类覆盖了某属性,则子类引用调用子类重新定义的新属性
若子类未覆盖某属性,则子类引用调用父类本身的旧属性
子类引用可以访问子类新定义的方法
成员变量的隐藏:
class People {//父类
public double x;
public void setX(double x){
this.x=x;
}
public double getDoubleX(){
reutrn x;
}
}
class Studnet extends People{ //子类
int x;//重新声明X
pulic int getX(){
// x=20.56;double类型的x是被int的变量隐藏了
x=23;
return x;
}
}
方法重写(super):
public class Student{
int number;
String name;
Student(){
}
Student(int numbet,String name){//构造函数
this.number=number;
this.name=name;
}
public int getNumber(){
return number;
}
public String getName(){
return isMarriage;
}
}
public class UniverStudent extends Student{
boolean isMarriage;
UniverStudent(int number,String name,boolean b){//构造函数
super(number,name);//调用父类的构造函数
}
public boolean getIsMarriage(){
return isMarriage;
}
}
final 关键字
abstract类和方法
- abstract类中可以有abstract方法
- abstract类不能用new运算符创建对象
第六章
接口:使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下:
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
}
修饰符:可选参数,用于指定类的访问权限,可选值为public、abstract和final。
类名:必选参数,用于指定类的名称,类名必须是合法的Java标识符。一般情况下,要求首字母大写。
extends 父类名:可选参数,用于指定要定义的类继承于哪个父类。当使用extends关键字时,父类名为必选参数。
教材学习中的问题和解决过程
问题1:java中的继承和C语言中的调用函数类似,实际上与C语言的调用函数有什么区别呢?
解决方案:
——百度知道
代码托管
感悟
本周进行了一次小测,发现仅仅是敲代码是不够的,还要理解透彻。老师将求阶乘的和的代码拆分为求和代码和阶乘代码让我们组合运行就出现了问题。不知道怎么组合,不知道该怎么改变输出等等问题。还是希望老师课上可以多和我们做些例子,课下学习毕竟能力有限,加上班课反馈不如当堂课及时,感觉效果不是特别好。
学习进度条
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 1/4 | 10/10 | |
第二周 | 300/500 | 1/5 | 10/20 | |
第三周 | 800/1300 | 1/6 | 20/40 | |
第四周 | 700/2000 | 2/8 | 20/60 |
计划学习时间:20小时
实际学习时间:20小时
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)