Recitation 020207 Defining Classes and Methods Chapter 4







































- Slides: 39
Recitation 02/02/07 Defining Classes and Methods Chapter 4 1
Miscellany • Project 2 due last night • Exam 1 (Ch 1 -4) – Thursday, Feb. 8, 8: 30 -9: 30 pm PHYS 112 • Sample Exam posted • Project 3 – due Feb. 15 10: 00 pm – check newsgroup! 2
Methods • Two kinds of methods: – Methods that return a single value • next. Int() – Methods that perform some action other than returning a single value • void methods • println(“m@”) 3
void Method Definitions • example public void write. Ouput() { 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 five. Factorial(); { 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 get. Name. • 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 set. Name. • Only provide when needed 7
Allocating Memory for a Reference and an Object • A declaration such as Species. Fourth. Try s; creates a variable s that can hold a memory address (compile time) • A statement such as s = new Species. Fourth. Try(); allocates memory for an object of type Species. Fourth. Try. (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 Species. Equals. Demo 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 are. Equal = s 1. equals(s 2); • 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 (s 1. equals(s 2)) … public boolean equals (Species other. Object) causes other. Object to become an alias of s 2, referring to the same memory location, which is equivalent to other. Object = s 2; 19
Class Parameters, cont. • Any changes made to the object named other. Object will be done to the object named s 2, and vice versa, because they are the same object. – If other. Object is a formal parameter of a method, the other. Object 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 Label. Demo 31
The Content Pane • Think of the content pane as inside of the applet. Container content. Pane = get. Content. Pane(); • 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 content. Pane. set. Background(Color. WHITE); or specifying how the components are arranged content. Pane. set. Layout (new Flow. Layout()); 33
The Content Pane, cont. or adding labels JLabel label 1 = new JLabel(“Hello”); content. Pane. add(label 1); 34
Exam 1 Information • Time/Location – Thursday, Feb 8, 8: 30 -9: 30 pm, 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