objects & data - Montclair State University

Download Report

Transcript objects & data - Montclair State University

Object Oriented Design:
Identifying Objects
Classes
• An object is defined by a class
• A class is the blueprint of an object:
– A class represents a concept, and an object represents
the embodiment (i.e., concrete instance) of that concept
– The class uses methods to define behaviors of the object
– Multiple objects can be created from the same class
Copyright © 2012 Pearson Education, Inc.
Class = Blueprint
• One blueprint to create several similar, but
different, houses:
Copyright © 2012 Pearson Education, Inc.
Basic class structure
public class ClassName
{
Fields
Constructors
Methods
}
Three major components of a class:
– Fields – store data for the object to use
– Constructors – allow the object to be set up properly
when first created
– Methods – implement the behavior of the object
Classes/objects (state/behaviors)
• Car
– My first car – a maroon Saab 9000
• Chair
• Book
– Java Software Solutions, 7th Edition
– Java Software Solutions, 8th Edition
• Table
• Student
• Teacher
More Identification
• Think about activities you do everyday
– What real-world entities do you interact with?
– What about programs you use?
– Your phone, laptop/desktop
• Identify
– Classes
– Information/data
– Behaviors/actions
Object-Oriented Programming (OOP)
• Objects make it easier to reuse code that others
have written
– Java comes with built-in OO functionality
(standard library)
• Objects commonly represent real-world entities
– For instance, an object might be a particular employee in
a company
– Each employee object handles the processing and data
management related to that employee
• OO is to programming like the assembly line was to
industrialization
Copyright © 2012 Pearson Education, Inc.
Fields
• Fields store values
for an object.
• They are also known
as instance variables.
• Fields define the
state of an object.
public class Square
{
private int x;
private int y;
private int size;
private Color fillColor;
// Further details omitted.
}
visibility modifier
type
variable name
private int size;
Objects First with Java - A Practical Introduction using BlueJ, © David J.
Barnes, Michael Kölling
Similar Names for Fields
• All of these terms can be used interchangeably:
–
–
–
–
–
–
Fields
Instance Variables
Characteristics
Data
Attributes
Properties
• The values of the fields define the object’s
state
_______
Data Types
•
•
•
•
•
•
•
•
•
boolean
char
int
long
float
double
String
Student
(any class)
—
—
—
—
—
—
—
—
true, false
a…z,A…Z,[symbols]
integers
larger integers (2x)
floating decimal
larger floating decimal (2x)
characters strung together
defined class
8 Primitive Data Types in Java
• Four represent integers:
– byte, short, int, long
• Two represent floating point numbers
(with decimals):
– float, double
• One represents single characters:
– char
• One represents boolean values:
– boolean
• What about other data?
It must be defined as a class!
Copyright © 2012 Pearson Education, Inc.
Numeric Primitive Data
• Why so many types to hold numbers?
• Different sizes affect what values can be stored:
Type
Storage
Min Value
Max Value
byte
short
int
long
8 bits
16 bits
32 bits
64 bits
-128
-32,768
-2,147,483,648
< -9 x 1018
127
32,767
2,147,483,647
> 9 x 1018
float
double
32 bits
64 bits
+/- 3.4 x 1038 with 7 significant digits
+/- 1.7 x 10308 with 15 significant digits
Copyright © 2012 Pearson Education, Inc.
Constructors
public Square()
{
x = 0;
y = 0;
size = 0;
fillColor = Color.blue;
}
•
•
•
•
Constructors initialize an object.
They have the same name as their class.
They store initial values into the fields.
They often receive external parameter values for this.
Objects First with Java - A Practical Introduction using BlueJ, © David J.
Barnes, Michael Kölling
Methods
method header/signature
visibility modifier
return type
method name
/**
* Gets the size of the square.
*/
parameter list
(empty)
public int getSize()
{
return statement
return size;
}
start and end of method body (block)
Objects First with Java - A Practical Introduction using BlueJ, © David J.
Barnes, Michael Kölling
What we discussed today …
• Classes and objects
– What they are
– How to identify them
– How to identify their components
• Data types
Homework
• Work on Lab 2 and submit Lab 1
• Work with Codingbat exercises
• Read Chapter 2