Recitation 020207 Defining Classes and Methods Chapter 4

  • Slides: 39
Download presentation
Recitation 02/02/07 Defining Classes and Methods Chapter 4 1

Recitation 02/02/07 Defining Classes and Methods Chapter 4 1

Miscellany • Project 2 due last night • Exam 1 (Ch 1 -4) –

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 •

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: “

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

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

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

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.

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 9

== with Variables of a Class Type, cont. • When used with variables of

== 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 11

== with Variables of a Class Type • class Species. Equals. Demo 12

== with Variables of a Class Type • class Species. Equals. Demo 12

Method equals • The definition of method equals depends on the circumstances. – In

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

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

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

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,

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

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

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

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

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 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

23

The Graphics Class, cont. • A Graphics object has instance variables that specify an

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

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

26

27

27

Programming Example 28

Programming Example 28

The init Method • An init method can be defined when an applet is

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

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

Adding Labels to an Applet, cont. • class Label. Demo 31

The Content Pane • Think of the content pane as inside of the applet.

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

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.

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,

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 –

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

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

Exam 1 Information • Topics, cont – Arithmetic expressions – Boolean variables – String methods – == vs. equals methods – Basic graphics methods 38

Questions 39

Questions 39