Title: Recitation 020207 Defining Classes and Methods
1Recitation 02/02/07Defining Classes and Methods
2Miscellany
- Project 2 due last night
- Exam 1 (Ch 1-4)
- Thursday, Feb. 8, 830-930pm PHYS 112
- Sample Exam posted
- Project 3
- due Feb. 15 1000pm
- check newsgroup!
3Methods
- Two kinds of methods
- Methods that return a single value
- nextInt()
- Methods that perform some action other than
returning a single value - void methods
- println(m_at_)
4void Method Definitions
- example
- public void writeOuput()
-
- System.out.println(Name name)
- System.out.println(Age age)
-
- Such methods are called void methods.
5Methods That Return a Value
- example
- public int fiveFactorial()
-
- int factorial 54321
- return factorial
-
- As before, the method definition consists of the
method heading and the method body. - The return type replaces void.
6Accessor and Mutator Methods
- Appropriate access to an instance variable
declared private is provided by an accessor
method which is declared public. - Typically, accessor methods begin with the word
get, as in getName. - Only provide when access is needed
7Accessor and Mutator Methods, cont.
- Appropriate changes to an instance variable
declared private are provided by an mutator
method which is declared public. - Typically, mutator methods begin with the word
set, as in setName. - Only provide when needed
8Allocating Memory for a Reference and an Object
- A declaration such as
- SpeciesFourthTry s
- creates a variable s that can hold a memory
address (compile time) - A statement such as
- s new SpeciesFourthTry()
- allocates memory for an object of type
SpeciesFourthTry. (runtime)
9 with Variables of a Class Type
10 with Variables of a Class Type, cont.
- When used with variables of a class type,
tests if the variables are aliases of each other,
not if they reference objects with identical
data. - To test for equality of objects in the intuitive
sense, define and use an appropriate equals
method.
11 with Variables of a Class Type
12 with Variables of a Class Type
13Method equals
- The definition of method equals depends on the
circumstances. - In some cases, two objects may be equal when
the values of only one particular instance
variable match. - In other cases, two objects may be equal only
when the values of all instance variables match. - Always name the method equals.
14Boolean-Valued Methods
- A method that returns a value of type boolean is
called a boolean-valued method. - Method equals produces and returns a value of
type boolean. - The invocation of a boolean-valued method can be
used as the condition of an if-else statement, a
while statement, etc.
15Boolean-Valued Methods, cont.
- The value returned by a boolean-valued method can
be stored in a variable - boolean areEqual s1.equals(s2)
- Any method that returns a boolean value can be
used in the same way.
16Class Parameters
- Recall
- When the assignment operator is used with objects
of a class type, a memory address is copied,
creating an alias. - When the assignment operator is used with a
primitive type, a copy of the primitive type is
created.
17Class Parameters, cont.
- When a parameter in a method invocation is a
primitive type, the corresponding formal
parameter is a copy of the primitive type.
18Class Parameters, cont.
- When a parameter in a method invocation is a
reference to a class type (i.e. a named object),
the corresponding formal parameter is a copy of
that reference (i.e. an identically valued
reference to the same memory location).
19Class Parameters, cont.
- Example
- if (s1.equals(s2))
-
- public boolean equals (Species otherObject)
- causes otherObject to become an alias of s2,
referring to the same memory location, which is
equivalent to - otherObject s2
20Class Parameters, cont.
- Any changes made to the object named otherObject
will be done to the object named s2, and vice
versa, because they are the same object. - If otherObject is a formal parameter of a method,
the otherObject name exists only as long as the
method is active.
21Comparing Class Parameters and Primitive-Type
Parameters
- A method cannot change the value of a variable of
a primitive type passed into the method. - A method can change the value(s) of the instance
variable(s) of a class type passed into the
method.
22The Graphics Class
- An object of the class Graphics represents an
area of the screen. - The class Graphics also has methods that allow it
do draw figures and text in the area of the
screen it represents.
23(No Transcript)
24The Graphics Class, cont.
- A Graphics object has instance variables that
specify an area of the screen - In examples seen previously, the Graphics object
represented the area corresponding to the inside
of an applet.
25The Graphics Class, cont.
- When an applet is run, a suitable Graphics object
is created automatically and is used as an
argument to the applets paint method when the
paint method is (automatically) invoked. - The applet library code does all this for us.
- To add this library code to an applet definition,
use - extends JApplet
26(No Transcript)
27(No Transcript)
28Programming Example
29The init Method
- An init method can be defined when an applet is
written. - The method init (like the method paint) is called
automatically when the applet is run. - The paint method is used only for things like
drawing. - All other actions in an applet (adding labels,
buttons, etc.) either occur or start in the init
method.
30Adding Labels to an Applet
- A label is another way to add text to an applet.
31Adding Labels to an Applet, cont.
32The Content Pane
- Think of the content pane as inside of the
applet. - Container contentPane getContentPane()
- When components are added to an applet, they are
added to its content pane. - Think adding picture to picture frame
- The content pane is an object of type Container.
33The Content Pane, cont.
- A named content pane can do things such as
setting color - contentPane.setBackground(Color.WHITE)
- or specifying how the components are arranged
- contentPane.setLayout
- (new FlowLayout())
34The Content Pane, cont.
- or adding labels
- JLabel label1 new JLabel(Hello)
- contentPane.add(label1)
35Exam 1 Information
- Time/Location
- Thursday, Feb 8, 830-930pm, Physics 112
- Material Covered
- Chapters 1 - 4
- Format
- Multiple Choice
- Programming
- Old exam on course website
36Exam 1 Information
- Topics
- Encapsulation, Polymorphism, information hiding
- Accessor/Mutator methods
- Objects, Classes
- public/private modifiers
- Java naming conventions
- Primitive types vs. class types
37Exam 1 Information
- Topics, cont
- Defining classes and methods (including the main
method) - Void methods vs. methods that return a value
- Looping structures (while, do-while, for)
- If-else, switch
- Primitive types vs. class types (and memory
representation) - Scanner class for input, System.out for output
38Exam 1 Information
- Topics, cont
- Arithmetic expressions
- Boolean variables
- String methods
- vs. equals methods
- Basic graphics methods
39Questions