CSE 120 9/8/05
Download
Report
Transcript CSE 120 9/8/05
Introduction to Programming
with Java, for Beginners
Intro OOP with Java
Java Program Structure
Object-Oriented Programming Model
Design problems/programs such that they
correspond to real world entities
Entity a.k.a Object is something that has real
existence
Objects: Model the parts of a problem. They
have:
Examples: person, dog, car, student, bank account
Data/State: information about that object
Behaviors: describe how the object behaves
Classes
Describes common features to all objects
Templates for creating objects
1
Example 1: Student Object
• Data: name, address, major, courseList
• Behavior: change major, add/drop a course
2
Example 3: Dog Objects
3
OOP in Java
A Java program is a collection of objects
A class is an abstract description of
objects
Classes contain
Data Fields that hold the data for each object
Data is stored in instance variables
Methods that describe the actions/behaviors the
object can perform
Constructor(s) that tell how to create a new object of
this class
4
Class Structure
class Classname {
//Data Fields
…
//Constructor
..
//Methods
..
}
Classname and Filename
should be same
i.e. Classname.java
Start and end of class
declaration is indicated by curly
braces i.e. { }
Compiler complains if this is
missing
5
Classes contain Data Definitions
Classes describe the data held by each of
its objects
Also known as instance variables
class Dog {
Data usually goes first in a class
String name;
int age;
...rest of the class...
}
6
Classes contain Data Definitions (contd..)
Data can also describe the relationship
of the object to other objects
Example: a checkingAccount might have
An accountNumber (used as an ID number)
A balance (the internal state of the account)
An owner (some object representing a
person)
7
Classes always contain Constructors
A constructor is a piece of code that “constructs,”
or creates, a new object of that class
If you don’t write a constructor, Java defines one
for you (behind the scenes)
i.e. default constructor
Usually a constructor is written to initialize an
object’s state i.e. data fields
Default constructor initialize object’s state default value
for that type. E.g. for type int, the default value is zero
8
Constructor: Initialize Data Example
class Dog {
String name;
int age;
(This part is the constructor)
Dog(String Name, int Age) {
name = Name;
age = Age;
}
…
//rest of the class
}
Important: Constructor name is same as ClassName
9
Creating Objects
Declare a variable of appropriate type to hold
the object
E.g. For Dog object we a need a variable of type Dog
Use the constructor of Dog to create a Dog
instance and store it in the variable
Known as invoking the constructor
Dog d1;
d1 = new Dog();
make a new object
Dog d2;
d2 = new Dog(“Fido”, 5);
make a new object
10
Classes contain Methods
A class may contain methods that describe the
behavior of objects
Methods contain one or more statements that
describe a particular behavior
A block of code, which when used performs certain
instructions
Different from control block structures like if, while
Can receive inputs
Can return an output
11
Examples of Object Behavior
Query Methods: ask an object about its state
What’s your name? Age? Favorite band?
Command Methods: change an object’s state
Withdraw $100 from my bank account my
bank balance changes
12
Example of Method
Methods usually go after the data & constructor
class Dog {
...
void bark() {
//instructions for barking
System.out.println(“Woof”);
}
}
Statement
13
Making object do something
To make a dog object bark, in Java we
write
d1.bark();
d1 is dog object and we ask a this
particular dog to bark, it says “Woof”
Terminology:
Sending message to dog object
Commanding or Asking the dog to something
14
General Method Declaration
return_type methodName(0+ parameters){..}
Input
Method Input
receive 0 or more inputs. E.g. bark() has no inputs
Inputs may be passed so that method can use these
values for some purpose
A method specifies its expected inputs via a list of “formal
parameters” (type1 name1,type2 name2, …)
void bark(String barkSound){
System.out.println(barkSound);
}
15
General Method Declaration (contd..)
return_type methodName(0+ parameters){..}
Output
Method Output
A method may output nothing or one thing
If it outputs nothing, then its return_type is
void
void setDogAge(int dogAge){
age = dogAge;
}
16
General Method Declaration (contd..)
Method Output
If it outputs one thing: Its return_type is nonvoid
i.e. must be of certain type
It then must have a return statement that returns
a value
The value returned must match return type
int getDogAge(){
return age;
}
age is of type
“int” and hence
return type is int
17
Calling/Invoking a Method on an Object
Calling/Invoking a method on an Object
Is a programming terminology for asking or
making an object to perform some behavior
In general
objectName.methodName(0 + parameters)
In a method call, the number, order, and type of
arguments must match the corresponding
parameters
Examples: d1.bark(); d1.bark(“Woof grrr”);
18
Methods can contain other methods
Example:
class Dog {
...
void bark() {
System.out.println("Woof");
}
}
E.g. System.out.println(String s)
String s is the input to the method
Other programmer's wrote printing program and called it
class System
19
Reusing already written methods
Java is famous for reusing already written
programs
Benefits: Do not need to reinvent the wheel
Java provides a huge library of useful programs
that can be reused
Comes along with the JDK tool kit
Some libraries are part of the language and can be
simply used
Some libraries (utilities) need to specified with an
import statement
More on this later lectures
20
Methods may contain temporary data
Data described in a class exists in all objects of
that class
Example: Every Dog has its own name and age
A method may contain local temporary data that
exists only until the method finishes
E.g:
void wakeTheNeighbors( ) {
int i = 50;
// i is a temporary variable
while (i > 0) {
bark( ); //using its own class method
i = i – 1;
}
}
21
Temporary /Local vs. Instance
Variables
Temporary/local variables are known
From the point of declaration until the end curly brace of
the block in which they are declared
In contrast, instance variables are
Declared outside of any method
Known to all methods in the class in which they are
declared
22
Class Methods in General
Methods consist of statements (or
instructions) causes the object to do
something
Combination of literals and, operators
Control Structures - e.g. while, if
Temporary variables
Methods from other classes
Methods from its own class
23
Asking Object about its data directly
It may possible to ask a object about its data
without querying the object i.e. calling the
method
ObjectName.DataField;
>Dog d1 = new Dog(“Fido”,5);
>String dogName = d1.name;
>System.out.println(dogName);
Fido
But this depends on accessibility of the data
More on this in slide 28
24
Putting it all together
When you want to create standalone Java
application program one of the classes should
contain the main method
Method main is a special method, not part of any
object, that is executed in order to get things
started such as:
Creating Objects
Ask objects to do something or interact with another
object
25
Main Method
public static void main(String[ ] args) {
Dog fido = new Dog("Fido", 5); // creates a Dog
fido.bark();
fido.setAge(6);
}
Method main is of return type void
Will explain the keyword public (on slide 28)
Learn about static and String [] args in later
lectures
26
OOP Recap
Class: a template for creating objects
An object is an instance of a class
Example:
One Dog class
Multiple Dog objects
Lord of the Rings Simulation
One Human class, multiple Human objects
One Elf class, multiple Elf objects
One Orc class, multiple Orc objects
27
A Counter class example
28
Complete Counter class
public class Counter {
private int count; Data field (instance variable)
public Counter () { count = 0; } constructor
public int currentCount () {
return count;
}
methods
query
public void incrementCount () {
count = count + 1;
}
command
public void reset () { count = 0; }
?
}
Counter class declaration
29
Counter Object Behaviors
Counter c= new Counter();
If you want to increment count value of object c
If you want see the count value of object c
c.incrementCount();
c.currentCount();
If you want to reset count value of object c
c.reset();
30
Accessibility Level
Data fields/instance variables of class and class
itself can also have accessibility_level
Examples: public void incrementCount(){ .. }, private
count ;
public: makes the method/data field accessible
from outside the class
Private:not accessible outside the class
In default case: accessible if within same directory
Accessibility_level appears before
the return type of method
the type of variable
31
Complete Counter Program
public class Counter {
private int count;
public Counter () {
count = 0;
}
public int getCount () {
return count;
}
public void incrementCount () {
count = count + 1;
}
public void reset () {
count = 0;
}
public static void main(String[ ] args) {
Counter c = new Counter();
int whatIsCount = 0;
c.incrementCount();
c.incrementCount();
whatIsCount = c.currentCount();
System.out.println(whatIsCount);
c.reset();
whatIsCount = c.currentCount();
System.out.println(whatIsCount);
}
} // ends the class
32
General Java Program
File
File
Class
File
Variables
Constructors
Variables
File
Statements
Methods
Variables
Statements
A program
consists of one or
more classes
Typically, each
class is in a
separate java file
33
Writing and Running Programs in OOP
When you write a program
You are writing classes and all the things that go into
classes
Your program typically contains commands to create
objects and make them do something
When you run a program
It creates objects, and those objects interact with one
another and do whatever they do to cause something to
happen
34
Advantages of OOP
OOP is conducive to good design and
efficient redesign
Most changes affect only a few classes
35