01.Overview - Calvin College

Download Report

Transcript 01.Overview - Calvin College

An Overview of Objects
and the Java API
Joel Adams and Jeremy Frens
Department of Computer Science
Calvin College
(1/10)
2003 Joel C. Adams. All Rights Reserved.
Dept of Computer Science
Calvin College
Where did Java come from?
Object-oriented programming:
Late 1970s: Xerox PARC (GUIs, Ethernet, Laserprinters, ...)
 Smalltalk (Adele Goldberg)



Classes of objects
Objects communicate via messages
Everything allocated dynamically



Byte code compiler
Virtual machine (interpreter)
Garbage collector
Mid-1980s: Bell Labs
 C++ (Bjarne Stroustrup): “C with Classes”, a hybrid language
Early 1990s: Sun Microsystems
 Java (James Gosling): “Just another virtual architecture”
 Syntax like C++, features like Smalltalk
(2/10)
2003 Joel C. Adams. All Rights Reserved.
Dept of Computer Science
Calvin College
What is Java?
When people say “Java” they may mean:
An object-oriented programming language
A developers kit (compiler, debugger, …)
A run-time environment small enough to be built-in to a
web browser, cell-phone, cable-box, …
A platform-independent system that strives for “write once,
run anywhere” portability anywhere on the Internet
MS’s .Net gives much of this, except platform-independence.
Much of what we will cover also applies to VB.Net.
(3/10)
2003 Joel C. Adams. All Rights Reserved.
Dept of Computer Science
Calvin College
Classes and Objects
What is a class?
Think “typhoon-class submarine” or “galaxy-class starship”:
A mechanism for creating new types
A means of declaring a container to store both
 variables to store an object’s attributes (internal state); and
 messages to which an object will respond (behavior)
A factory for constructing related objects
What is an object?
 An object is an instance of a class.
(4/10)
2003 Joel C. Adams. All Rights Reserved.
Dept of Computer Science
Calvin College
A Simple Java Class
Suppose we needed to represent fractions (1/2, 3/4) exactly…
class Fraction {
private int myNumerator;
private int myDenominator;
public int getNumerator() {
return myNumerator;
}
public int getDenominator()
return myDenominator;
}
...
}
(5/10)
To store a fraction’s internal
state, we need variables to
hold its numerator and
denominator
We then define a method for
{
each message to which we
want a Fraction to respond
A fair amount of design time goes into deciding
what methods a class should provide for its users
2003 Joel C. Adams. All Rights Reserved.
Dept of Computer Science
Calvin College
Creating and Using Objects
Once we have an operational Fraction class…
class FractionTester {
public static void main(String [] args) {
Fraction frac1 = new Fraction(); we can use it to create
Fraction frac2 = new Fraction(3,4); Fraction instances
if ( frac1.getDenominator() != 0) {
// do something useful with frac1
}
}
}
(6/10)
and compute using
those instances by
sending messages
The real power of OOP comes from organizing objects
into hierarchies, which we’ll see in a future session.
2003 Joel C. Adams. All Rights Reserved.
Dept of Computer Science
Calvin College
Object-Oriented Design
Rumbaugh’s Object Modeling Technique (OMT):
Write a natural-language description of your system.
Our application should display a window containing a textbox in
which a user enters their name. When they have entered it, the
application should display a personalized greeting for that user.
The nouns (except external ones) are your objects.
 If any object cannot be directly represented using predefined
types, build a class to create a type for it.
The verbs (except user actions) are your operations.
 If any operation cannot be directly performed using predefined
operations, build a method (message) to perform it.
(7/10)
2003 Joel C. Adams. All Rights Reserved.
Dept of Computer Science
Calvin College
OOD: Storyboarding
Many designers find it useful to sketch storyboards that show
the appearances of their GUIs:
HelloGUI
HelloGUI
Please enter your name:
Please enter your name:
Jane
Enter
Jane
Welcome to Java, Jane!
If one storyboard can be reached from another, they are
connected by an arrow labeled with the event that triggers
the transition…
(8/10)
2003 Joel C. Adams. All Rights Reserved.
Dept of Computer Science
Calvin College
The Java API
The Java Application Programmers Interface (API) provides
the definitive word on what classes Java predefines, and
what messages instances of those classes accept:
http://java.sun.com/api/index.html
Using this, we can build a working application using
whatever IDE or tools we have available…
I’ll use a text editor and the command-line here; you will use
Eclipse that Jeremy will demo for you soon…
(9/10)
2003 Joel C. Adams. All Rights Reserved.
Dept of Computer Science
Calvin College
Summary
Java is an OO language descended from Smalltalk and C++.
Java was designed to allow programs to be downloaded and
executed anywhere on the Internet; portability is paramount.
In object-oriented languages, much of the programming
effort goes into building classes.
Objects are instances of classes.
Objects communicate with one another by sending messages.
(10/10)
2003 Joel C. Adams. All Rights Reserved.
Dept of Computer Science
Calvin College