






Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Information about customizing a class and testing in cs1110, including the purpose of constructors, evaluating new expressions, and using getter and setter methods. It also covers one-on-one sessions with instructors and the importance of testing using junit. Examples of field declarations, getter and setter methods, and constructor usage.
Typology: Quizzes
1 / 11
This page cannot be seen from the preview
Don't miss anything!







CS1110 29 Jan. Customizing a class & testing
Quote for the day:
There is no reason anyone would want a computer in their home.
--Ken Olson, founder of Digital Equipment Corp. (DEC), 1977.
The company was a huge player in computer hardware and software in CS
academia in the 1970’s. The PDP machines were well known. The VAX had
unix on it, and C, and Lisp. It was the main computer in most CS departments
of any stature. DEC was bought by COMPAQ in the late 1990’s.
Quiz 2 on Tuesday (3 February):
Purpose of a constructor (slide 6)
Evaluating a new expression (slide 7)
Secs 1.4.1 (p. 45) & 3.1 (pp. 105–110 only)
Next time:
Testing using JUnit.
Object: the superest
class of them all. pp
153–154.
Function toString.
Static components
Sec. 1.5 (p. 47).
One-on-One Sessions
Next two weeks, hold a 1/2-hour one-on-one session on a
computer with each student in CS1110.
Purpose : See how well you understand what we have done,
let you ask questions, give you help. Graded 0-1: you get 1 if
you took part in a session. Not counted in course grade.
Purpose: to help you.
Instructors : Gries, Lee, TAs, consultants.
How to sign up : Visit the course CMS (from column of links
on course home page). Click on assignment One-on-one. You
will see a list of times and instructors. Choose one.
First-come-first-served.
Not registered in the CMS? Email Maria Witlox immediately
and ask her to register you: [email protected]
Getter and setter methods
a
Chapter title (^) …
number (^) …
previous …
/** An instance describes a chapter
of a book */
public class Chapter {
// Title of the chapter
private String title;
/** = title of the chapter */
public String getTitle() {
return title;
/** Set chapter title to t */
public void setTitle(String t) {
title= t;
Getter methods (functions) get
or retrieve values from a folder.
Setter methods (procedures) set
or change fields of a folder
getTitle() setTitle(String t)
Initialize fields when a folder is first created
new Chapter()
create an object but doesn’t allow us
to say what values should be in it.
We would like to be able to use:
new Chapter(“I am born”, 1, null )
to set the title to “I am born”, the
chapter number to 1, and the previous
chapter to null.
For this, we use a new kind of
method, the constructor.
a
Chapter title (^) …
number (^) …
previous …
getTitle() setTitle(String t)
New description of evaluation of a new-expression
new Chapter(“I am born”, 1, null )
Chapter, with fields initialized to
default values (e.g. 0 for int ) –of
course, put the folder in the file
drawer.
Chapter(“I am born”, 1, null)
as the value of the new-
expression.
a
Chapter title (^) …
number (^) …
previous …
getTitle() setTitle(String t)
Chapter(String t,
int i, Chapter c)
Memorize this new definition! Today! Now!
Testing —using JUnit
Bug : Error in a program.
Testing : Process of analyzing, running program, looking for bugs.
Test case : A set of input values, together with the expected output.
Debugging : Process of finding a bug and removing it.
Get in the habit of writing test cases for a method from the
specification of the method even before you write the method.
A feature called Junit in DrJava helps us develop test cases
and use them. You have to use this feature in assignment A1.
/** A JUnit test case class.
Every method starting with "test" will be called when running
the test with JUnit. */
public class ChapterTester extends TestCase {
/** A test method.
(Replace "X" with a name describing the test. Write as
many "testSomething" methods in this class as you wish,
and each one will be called when testing.) */
public void testX() {
One method you can use in testX is
assertEquals(x,y)
which tests whether expected value x equals y
A testMethod to test constructor and getter methods
/** Test first constructor and getter methods getTitle,
getNumber, and getPrevious */
public void testConstructor() {
Chapter c1= new Chapter("one", 1, null);
assertEquals("one”, c1.getTitle(), );
assertEquals(1, c1.getNumber());
assertEquals(null, c1.getPrevious());
Chapter c2= new Chapter("two", 2, c1);
assertEquals("two”, c2.getTitle());
assertEquals(2, c2.getNumber());
assertEquals(c1, c2.getPrevious());
}
Every time you click button Test in
DrJava, this method (and all other
testX methods) will be called.
first
test
case
second
test
case
assertEquals(x,y):
test whether x equals y ;
print an error message
and stop the method if
they are not equal.
x: expected value,
y: actual value.
A few other methods that
can be used are listed on
page 488.