文章目录[隐藏]
APCSA FRQ 编写类题目不可丢的 4 分!
熟悉阅卷规则可以帮助你更好的拿到分数。
编写类的题目,往往是按点得分的,有 4 分时属于有手就能拿到,千万不要错过。
class header 1 分
首先你可以通过new
关键字后面的构造方法来确定来类的名字,有时候甚至会直接告诉你类的名字。比如StepTracker
,你只要能够正确的声明类就是 1 分。
而,这个题目明确的告诉你要写一个叫做StepTracker
的类了。
给的代码示例中,声明的类型,也是要你写的类的类型。
classStepTracker{}
按照评分规则,这就是 1 分了。这一份,基本上就是有手就会的程度了,绝对的送分了。注意:
()
constructor 1 分
定义方法的时候,需要确定形式参数 from parameter ;调用方法的时候,需要传递实际参数 actual argument。
这里明显看出,调用StepTracker
构造方法需要传递一个整数类型的参数。
所以只要能够正确的声明构造方法,就能得一分,而且不在乎变量名是什么。
classStepTracker{publicStepTracker(intsomeVar){}}
-
构造方法是与类的名字相同的方法 -
constructor do not have return type
instance variable 1 分
类型是数据和在数据上的操作。只要能够推断出,这个类需要哪些实例变量,也是可以得 1 分的。
-
构造方法往往接受参数并且初始化某个实例变量 -
那么,接受一个可以被算作是有效天数的最低限度的步数
-
-
getter
方法返回的是某个实例变量的值-
也可能是利用实例变量计算得到的值,那么就可以反推需要的实例变量
-
-
setter
方法修改了哪些值 -
比如需要计算机平均步数,就有知道总的步数和天数,而这些又没有作为形式参数传递给方法,所以推测步数和天数是实例变量 -
要返回有效天数,这明显是个 getter
method,那么,也应该有这样的实例变量
classStepTracker{privateintlimit;privateintdays;privateinttotalSteps;privateintactiveDays;publicStepTracker(intmin){limit=min;}}
instance method 1 分
method header:
public return type
void non-void mehtod name form parameter list
正确的书写所有方法的方法头,得 1 分。
-
可以看到 activeDays()
返回得是整数,因为没有小数点,不需要实际参数 -
averageSteps()
返回的是小数,不需要实际参数 -
addDailySteps()
方法没有返回值,也就是void
,接受一个int
的实际参数
classStepTracker{privateintlimit;privateintdays;privateinttotalSteps;privateintactiveDays;publicStepTracker(intmin){limit=min;}publicvoidaddDailySteps(intstep){}publicdoubleaverageSteps(){}publicintactiveDays(){}}
😄,又得 1 分,是不是很轻松。
其他得分点
-
访问 ArrayList
的元素必须用get
方法,否则会扣分 -
访问 array
和ArrayList
元素的方法混淆必然扣分 -
比较字符串的内容相等必须用 equals()
方法 -
题干中给的方法,必须调用正确,哪怕用法不对也可以得分
比如,题干中往往会给这样类的信息,实际上就是告诉你方法的方法头,你只要以正确的方法调用了这些方法,就会得 1 分。
-
涉及到列表和数组,只要正确正确的访问了数组中的每个元素,没有 bounds error
,就得 1 分。-
也就是说,只要涉及到,查找,统计,或者参数实例变量中有数组、 ArrayList
,二维数组,你只要用循环正确的访问了每个元素,没有索引越界,必然得 1 分。
-
正确的遍历数组、字符串、二维数组和ArrayList
正确的遍历总是会得分的