chapter 4 defining classes and methodscs180/fall2005web/slides/rec_091605.pdfchapter 4 44 exam 1...

45
Chapter 4 1 Defining Classes and Methods Chapter 4

Upload: others

Post on 24-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 1

Defining Classes and Methods

Chapter 4

Page 2: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 2

Reminders

• Project 2 was due last night• Project 3 released: due Sept 29 @ 10:30 pm

- No Late Submissions - 2 weeks b/c of exam

• Follow the newsgroup for project information and questions – newsgroup postings from GTAs are official. Even if you don’t follow the newsgroup you are responsible for all updates/changes to any projects mentioned there.

Page 3: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 3

Reminders 2

• Make sure to match given output exactly in your projects. You will lose points if your output does not match exactly. We give you sample inputs and outputs for this reason.

• Project submissions use your lab section, not your recitation section (this is clearly written on all project outlines) turnin –c cs180secXXXX –p project1 …

Page 4: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 4

Exam 1 Reminder• Tuesday, September 20• 7:00 pm – 8:00 pm• Physics 112• Covers chapters 1 – 4• More details towards end of recitation

Page 5: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 5

Using Methods

• two kinds of methods:– methods that return a single value (e.g. nextInt)

– methods that perform some action other than returning a single value (e.g println), called void methods

Page 6: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 6

Defining Methods That Return a Value

• examplepublic 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.

Page 7: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 7

Methods That Return a Value, cont.• The body of the method definition must contain

return Expression;– This is called a return statement.– The Expression must produce a value of the

type specified in the heading.• The body can contain multiple return statements,

but a single return statement makes for better code.

• void methods can have return statements, but must not return anything.

return;

Page 8: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 8

Naming Methods• Use a verb to name a void method.

– void methods typically perform some action(s). (e.g. getAge)

• Use a noun to name a method that returns a value.– Methods that return a value are used like a

value. (e.g. fiveFactorial)• Observe the convention of starting the

method name with a lowercase letter.

Page 9: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 9

Variables• Variables of a class type name objects, which

is different from how primitive variables store values.

• All variables are implemented as memory locations.– The value of a variable of a primitive type

is stored in the assigned location.– The value of a variable of a class type is

the address where a named object of that class is stored.

Page 10: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 10

Variables, cont.• A value of any particular primitive type always

requires the same amount of storage.– example: a variable of type int always

requires 4 bytes.• An object of a class type might be arbitrarily

large.– An object of type String might be empty, or

might contain 1, 120, 5280, or more characters.

Page 11: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 11

Variables, cont.

• However, there is always a limit on the size of an address.

• The memory address where an object is stored is called a reference to the object.

• Variables of a class type behave differently from variables of a primitive type.

Page 12: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 12

Page 13: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 13

Allocating Memory for a Reference and an Object

• A declaration such asSpeciesFourthTry s;

creates a variable s that can hold a memory address.

• A statement such ass = new SpeciesFourthTry();

allocates memory for an object of type SpeciesFourthTry.

Page 14: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 14

== with Variables of a Class Type

Page 15: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 15

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

Page 16: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 16

== with Variables of a Class Type• class Species

Page 17: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 17

== with Variables of a Class Type• class SpeciesEqualsDemo

Page 18: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 18

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.

Page 19: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 19

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.

Page 20: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 20

Boolean-Valued Methods, cont.

• The value returned by a boolean-valued method can be stored in a variableboolean areEqual = s1.equals(s2);

• Any method that returns a boolean value can be used in the same way.

Page 21: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 21

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.

Page 22: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 22

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.

Page 23: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 23

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

Page 24: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 24

Class Parameters, cont.

• Exampleif (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 tootherObject = s2;

Page 25: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 25

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.

Page 26: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 26

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.

Page 27: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 27

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.

Page 28: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 28

Page 29: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 29

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.

Page 30: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 30

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, useextends JApplet

Page 31: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 31

Page 32: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 32

Page 33: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 33

Programming Example, cont.

Page 34: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 34

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.

Page 35: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 35

Adding Labels to an Applet

• A label is another way to add text to an applet.

Page 36: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 36

Adding Labels to an Applet,

Page 37: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 37

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.

• The content pane is an object of type Container.

Page 38: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 38

The Content Pane, cont.

• A named content pane can do things such as setting colorcontentPane.setBackground(Color.WHITE);or specifying how the components are arrangedcontentPane.setLayout

(new FlowLayout());

Page 39: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 39

The Content Pane, cont.

or adding labelsJLabel label1 = new JLabel(“Hello”);contentPane.add(label1);

Page 40: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 40

Summary• You have become familiar with the concept of

a class and an object that instantiates the class.

• You have learned how to define classes in Java.

• You have learned how to define and use methods in Java.

• You have learned how to create objects in Java

Page 41: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 41

Summary, cont.• You have learned how parameters work in

Java.• You have learned about information hiding

and encapsulation.• You have become familiar with the notion of a

reference (to understand class variables and class parameters).

• (optional) You have learned more about applets.

Page 42: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 42

Exam 1 Information

• Time/Location– Tuesday, Sept 20 7-8pm, Physics 112

• Material Covered– Chapters 1 - 4

• Format:– 20 MC questions (2 pts each)– 5 short programming questions (3 x 10pts, 2 x

15pts) • Old exams on course website

Page 43: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 43

Exam 1 Information

• Topics– Encapsulation, polymorphism, information

hiding– Accessor and mutator methods– Objects, classes– Public and private modifiers– Java naming conventions– Primitive types vs. class types

Page 44: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 44

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

Page 45: Chapter 4 Defining Classes and Methodscs180/Fall2005Web/slides/rec_091605.pdfChapter 4 44 Exam 1 Information • Topics, cont –Defining classes and methods (including the main method)

Chapter 4 45

Exam 1 Information

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