Java Classes and Objects

Download Report

Transcript Java Classes and Objects

Classes and Objects
December 2, 2013
Quiz Wednesday


Over 7.1-7.3, Arrays
In class quiz.
Objectives
 Design classes and objects.
 Write a simple class with member functions
and data members.
 Create a constructor to initialize the
Rectangle class
 Design some other classes
 Create an accessor to see a private data
member
Object Oriented Programming
 So far we have been doing functional
programming.
–
 OOP
–
–
Write functions to instruct the computer to
do something
Create objects with function, then instruct
the objects to do something.
Programming becomes an interaction
between objects.
Object Oriented Programming
 In Functional Programming, creating functions
helps to make code that we can reuse.
 When programs get large it becomes difficult
to manage so many functions.
 In OOP functions are organized into objects.
 Objects
are more intuitive to use.
 For example: A quadratic equation:
•
•
Has data, a, b and c
Has functions: input( ), output( ), solve( )
Objects in Programs
 You already know about the cin object
can do the following functions:
 .fail(
), .clear( )
 There must be data associated with these
functions, but it is hidden from the programmer
to make it easier to use.
Encapsulation
 You use the functions from cin, like clear(),
without knowing the details of the
implementation.
 Easier not to have to understand how the
code looks.
 This hiding is called encapsulation.
 When you create an object from scratch you
should make it easy to use w.o. knowing the
details of the functions.
Classes


Types that objects can be made from.
Give a description of what the objects, or
instances, will be like.
Specify the Public Interface
 How the class interacts with a programmer is
called the interface.
 The
functions you can call.
 Example: I want a class to represent a
rectangle. I want the interface to allow the
programmer to find the area. I also want him
to be able to find the perimeter.
I
will also add some functions to allow the user
to input and output a Rectangle.
•
Member functions
Public Interface Design
Rectangle
public:
input( );
output( );
findArea( );
findPerimeter( );
Data Members
 In order to find the rectangle’s area and
perimeter, the rectangle will need to know its
length and width.
 Outside users don’t need to know the
information. It is private.
Instance Variables Added
 Class Design
Rectangle
public
input( )
output( )
findArea( )
findPerimeter( )
private
double length
double width
Implementing the class.
 Now that I have a design, I can implement the
class.
 The main method tests the class by creating
some Rectangles
 Ch8/Rectangle/rectangle.cpp
Class Definition Syntax
class Sample
{
public:
fnc_prototype();
fnc_prototype2();
//. . . etc.
private:
member_var1;
member_var2;
// … etc.
Member Function Definition
return_type class_name :: function_name(parmlist)
{
statements
}
 :: is scope resolution operator
Calling a function
Object_name.function_name(arg list);
e.g. rec1.input( );
Scope of data members
 Each object created has it's own data
members.
 Can use data members in any of the functions
in the class.
 There is no need to pass them to functions.
Constructor
 Has the same name as the class.
 Is executed automatically when a new object
is made.
 Can be passed some values to initialize the
instance variables.
 I'll add a constructor to the Rectangle class
Another example --Sphere class
Design and implement a class called Sphere that contains
member data that represents the sphere’s diameter.
Define a Sphere constructor to accept and initialize the
diameter. Include functions to return the volume and the
surface area of the Sphere. Write a main function to
create and test a Sphere.
A= 4πr
2
V=
4 3
πr
3
Accessor Function
 A function that allows the main() function to
see a private data member.
 Usually starts with “get”
 Return the private data.
Mutator Function
 A function that allows the main() function or
outside functions to change a private data
member.
 Usually starts with “set”
 void
 I’ll add a setDiameter()to the Sphere
class.
Questions
 What is the difference between a class and an
object?
 getDiameter( ) is a special "get" function.
What is another name for a "getter"?
 A class is called Point. What is the name of
the class' constructor?