Recitation 02/02/07 Defining Classes and Methods 1
Miscellany Project 2 due last night Exam 1 (Ch 1-4) Thursday, Feb. 8, 8:30-9:30pm PHYS 112 Sample Exam posted Project 3 due Feb. 15 10:00pm check newsgroup! 2
Methods 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@ ) 3
void Method Definitions example public void writeouput() { System.out.println( Name: + name); System.out.println( Age: + age); } Such methods are called void methods. 4
Methods That Return a Value example public int fivefactorial(); { int factorial = 5*4*3*2*1; return factorial; } As before, the method definition consists of the method heading and the method body. The return type replaces void. 5
Accessor 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 6
Accessor 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 7
Allocating 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) 8
== with Variables of a Class Type 9
== 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. 10
== with Variables of a Class Type class Species 11
== with Variables of a Class Type class SpeciesEqualsDemo 12
Method 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. 13
Boolean-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. 14
Boolean-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. 15
Class 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. 16
Class Parameters, cont. When a parameter in a method invocation is a primitive type, the corresponding formal parameter is a copy of the primitive type. 17
Class 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). 18
Class 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; 19
Class 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. 20
Comparing 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. 21
The 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. 22
23
The 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. 24
The Graphics Class, cont. When an applet is run, a suitable Graphics object is created automatically and is used as an argument to the applet s 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 25
26
27
Programming Example 28
The 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. 29
Adding Labels to an Applet A label is another way to add text to an applet. 30
Adding Labels to an Applet, cont. class LabelDemo 31
The 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. 32
The 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()); 33
The Content Pane, cont. or adding labels JLabel label1 = new JLabel( Hello ); contentpane.add(label1); 34
Exam 1 Information Time/Location Thursday, Feb 8, 8:30-9:30pm, Physics 112 Material Covered Chapters 1-4 Format Multiple Choice Programming Old exam on course website 35
Exam 1 Information Topics Encapsulation, Polymorphism, information hiding Accessor/Mutator methods Objects, Classes public/private modifiers Java naming conventions Primitive types vs. class types 36
Exam 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 37
Exam 1 Information Topics, cont Arithmetic expressions Boolean variables String methods == vs. equals methods Basic graphics methods 38
Questions 39