(点击播放按钮观看代码演示)
1. “is-a” and “has-a” relationships
在Java中,“is-a” 代表的是类之间的继承关系,比如我们之前建立的Circle和Geometry两个类,我们就可以说“a Circle is-a Geometry”,也就是说:Circle是Geometry的子类,或者,Geometry是Circle的父类。
“has-a”关系,代表的是一种从属关系。比如,我们建立一个类叫Student,并在Student里定义一个Integer型的实例变量studentID;我们就可以说“a Student has an Integer studentID,” 即“每个学生都有一个学号”。这里的Student和Integer之间就是has-a的关系。
2. null
我们都知道,引用类型变量存储的值是对象的地址。如果我们声明了一个引用类型变量,而没有给其赋值,那么,这个引用类型变量的值就是null,或者说:“the reference variable has anullreference.”
有时候,我们想要清除一个引用类型变量的值,也可以将null赋值给这个变量。一般来说,如果一个变量的值是null,那么就不可以使用这个变量去调用方法。
值得注意的是:null和empty是两个不同的概念。比如我们可以创建两个String型变量:
String str1 = null;
String str2 = "";
str1的引用就是null,即str1不指向任何一个字符串;而str2的引用就不是null,str2指向了一个字符串,只不过这个字符串是空的(empty),里面什么字符都没有。
3. this
关键词this可以用来引用当前对象,或者说: “the keywordthisis a reference to the object whose method or constructor is being called.”我们还可以称之为隐式参数(the implicit parameter)。比如下面这个例子:
public static void main(String[] args)
{
TheClass myObject = new TheClass();
myObject.doSomething();
}
public class TheClass
{
public void doSomething()
{
doSomethingElse(this);
}
public void doSomethingElse(TheClass object)
{
}
}
显示结果就是:
This is an example.
4. super.method(args)
之前我们提到过,子类中可以调用父类的方法。如果我们已经在子类中重写了一个父类中的方法,但是仍然想要在子类中使用父类的这个方法的时候,我们就可以使用super.method(args)来调用这个在父类中的方法,比如:
public class Circle extends Geometry
{
private double radius;
public String getColor()
{
return "Color has been changed from " +super.getColor() + " to Black.";
}
}
public class Geometry
{
private String color = "White";
public String getColor()
{
return color;
}
}
下面,给大家留一道小题:
public class Father
{
public void doSomething(Father object)
{
}
}
public class SonextendsFather
{
public void doSomethingElse()
{
super.doSomething(this);
}
public void doSomething(Father object)
{
}
}
如上,我们建立了一个父类和一个子类,请问下面代码运行之后的输出结果是什么?
Son object = new Son();
object.doSomethingElse();
附:AP CS A Free Response Questions下载地址:
https://apcentral.collegeboard.org/courses/ap-computer-science-a/exam
如果有任何问题,欢迎来找小起子聊天。
-----------------
上课时间:2018年4月21日(周六)、22日(周日)、28日(周六)、29日(周日)09:00-11:00
上课方式:网络直播课,可回看
课时:每次2小时,总计8小时
费用:2400元(参加过AP CS A 课程的老学员8折优惠)
适合学员:有AP CS A课程基础,准备2018年5月份参加AP考试的同学。
讲题范围:2013年至2017年一共5年的Free Response Questions,共计18道大题。
增值服务:给所有报名学员提供两套小帮手原创AP CS A模考选择题,并提供答疑服务。
报名咨询:
付款链接:
领取专属 10元无门槛券
私享最新 技术干货