Recitation 020207 Defining Classes and Methods - PowerPoint PPT Presentation

About This Presentation
Title:

Recitation 020207 Defining Classes and Methods

Description:

Miscellany. Project 2 due last night. Exam 1 (Ch 1-4) Thursday, Feb. 8, 8:30-9:30pm PHYS 112 ... Methods that perform some action other than returning a single ... – PowerPoint PPT presentation

Number of Views:76
Avg rating:3.0/5.0
Slides: 40
Provided by: rober854
Category:

less

Transcript and Presenter's Notes

Title: Recitation 020207 Defining Classes and Methods


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

2
Miscellany
  • 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!

3
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_at_)

4
void Method Definitions
  • example
  • public void writeOuput()
  • System.out.println(Name name)
  • System.out.println(Age age)
  • Such methods are called void methods.

5
Methods 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.

6
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

7
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

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

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
  • class Species

12
with Variables of a Class Type
  • class SpeciesEqualsDemo

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

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

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

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

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

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

19
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

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

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

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

23
(No Transcript)
24
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.

25
The 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)
28
Programming Example
29
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.

30
Adding Labels to an Applet
  • A label is another way to add text to an applet.

31
Adding Labels to an Applet, cont.
  • class LabelDemo

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

33
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())

34
The Content Pane, cont.
  • or adding labels
  • JLabel label1 new JLabel(Hello)
  • contentPane.add(label1)

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

36
Exam 1 Information
  • Topics
  • Encapsulation, Polymorphism, information hiding
  • Accessor/Mutator methods
  • Objects, Classes
  • public/private modifiers
  • Java naming conventions
  • Primitive types vs. class types

37
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

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

39
Questions
Write a Comment
User Comments (0)
About PowerShow.com