Download Slides (morning session)

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Introduction to Java and
Object-Oriented Programming
AJSS Computer Camp
Department of Information Systems
and Computer Science
Ateneo de Manila University
Outline

Morning Session



Introduction to Java, OOP, and the BlueJ environment
Creating classes for the Robots project
Afternoon Session




Graphics and Graphical User Interfaces in Java
Demo: BombsAway application
Creating your own game using the a game engine
Demo: developing mobile apps within the
Android platform
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved.
L1: Intro Java
Slide 2
The Java
Programming Language

Java: an object-oriented programming language
that is





simple
safe
platform independent
designed for the internet
Many universities use Java as the introductory
programming language for beginning
programmers

Ateneo adopted Java for CS 21a in 1997
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved.
L1: Intro Java
Slide 3
Two types of Java programs:

Applications




general-purpose programs
standalone
executed through the operating system
Applets



programs meant for the WWW
embedded in a Web page
normally executed through a browser
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved.
L1: Intro Java
Slide 4
Simple Java Application
File: Hello.java
// Hello World application
public class Hello
{
public static void main( String args[] )
{
System.out.println( “Hello world” );
}
}
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved.
L1: Intro Java
Slide 5
The Programming Process
Compile Errors?
Create/Edit
Program
Source
Program
Compile
Program
Run-Time Errors?
Object
Program
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved.
Execute
Program
L1: Intro Java
Slide 6
Creation, Compilation, and
Execution

Create Java program
C:\> edit Hello.java
 Hello.java file is created

Compile using javac (compiler)
C:\> javac Hello.java
 Hello.class file is produced

Execute using java (interpreter)
C:\>java Hello
 requires a Hello.class file
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved.
L1: Intro Java
Slide 7
Simple Java Applet
File: HelloAgain.java
import javax.swing.*;
import java.awt.*;
public class HelloAgain extends JApplet
{
public void paint( Graphics g )
{
g.drawString( “Hello”, 50, 50 );
}
}
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved.
L1: Intro Java
Slide 8
Executing Applets
After compiling the java program:


Embed an “applet tag” in an .html
document that references the .class file
Open the .html document using a browser
or the appletviewer
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved.
L1: Intro Java
Slide 9
Sample .html Document
File: HA.html
<h1> My Sample Applet </h1>
<applet code="HelloAgain.class" height=200 width=100>
</applet>
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved.
L1: Intro Java
Slide 10
Java Program Structure

Java Program



(optional) import declarations
class declaration
Class



class name should match its file name
may extend an existing class
(such as JApplet)
contains method/function declarations
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved.
L1: Intro Java
Slide 11
Object-Oriented Programming



The traditional definition of a program is:
a sequence of instructions to be executed
on a computer
In the Object-Oriented Programming (OOP)
paradigm, a program that executes is a collection
of interacting objects
In this paradigm, the programs we specify what
are in these objects and how these objects
behave
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L3: Intro to OOP
Slide 12
So … What is an Object?

A “thing” that has type, identity, state, and
behavior



type: belongs to a “class” of similar objects
identity: is a distinct “instance” of a class of objects
state / attributes: has a set of properties (aka fields)


each field can have different values
behavior: has “methods” (things that the object
knows how to do)

we say we “call” a method on the object
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L3: Intro to OOP
Slide 13
Examples of Objects




on (true or false)

behavior


LightBulb

state/attributes


switch on
switch off
check if on
state/attributes

behavior


Car



state/attributes


behavior

BankAccount
balance


deposit
withdraw
check balance
# of liters of gas in tank
total # of km run so far
efficiency (km/liter)

drive
load gas
change efficiency
check gas
check odometer reading
Note

each object is an “instance”
of that “type” of object

each instance has its own
values for its attributes

e.g., different accounts can
have different balances
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L3: Intro to OOP
Slide 14
BankAccount example
(A Preview)

state/attributes


behavior

BankAccount
balance


public class BankAccount
{
private double balance = 0;
get balance
deposit
withdraw
public double getBalance()
{
return balance;
}
public void deposit( double amount )
{
balance = balance + amount;
}
…
BankAccount
double balance
double getBalance()
void deposit( double amount )
… and more
BankAccount.java
}
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L3: Intro to OOP
Slide 15
Class Definition in Java
BankAccount
public class BankAccount
{
private double balance = 0;

type (or class)

state/attributes (fields)

behavior (methods)



may have input parameters
in parenthesis
may have output
(or “return”) type
has “body” with code
BankAccount.java
public double getBalance()
{
return balance;
}
public void deposit( double amount )
{
balance = balance + amount;
}
…
}
“double” means a floating
Point number like1234.25
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L3: Intro to OOP
Slide 16
A Class with a Constructor



Constructor: special
method that handles
initialization
For now, view
constructors as an
alternative to initializing
fields as they are
declared
Later: more advanced
uses for constructors
public class BankAccount
{
private double balance;
BankAccount.java
public BankAccount()
{
balance = 0;
}
public double getBalance()
{
return balance;
}
public void deposit( double amount )
{
balance = balance + amount;
}
…
}
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L3: Intro to OOP
Slide 17
A Class and Its Instances

A single class can have multiple instances




Each instance is a separate object
Each instance can have different values for its
fields
The definition of methods is the same for all
instances of the same type
Thus, there is only one class definition

Written as the .java file for that class
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L3: Intro to OOP
Slide 18
Lab Exercise: Try it in BlueJ


Open the project (ObjectExamples) that contains
a BankAccount class (BankAccount.java)
Create BankAccount objects
(instances of the class)


Right-click on the class
Carry out operations on the BankAccount objects
(invoke the deposit and getBalance methods)

Right-click on the instances
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L3: Intro to OOP
Slide 19
Lab Exercise, continued


Instantiate and use a BankAccount object
within in a Java application
How? Create a UseObjects class
(UseObjects.java)


“New Class” on left pane of BlueJ environment
Inside the UseObjects class type the following
code…
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L3: Intro to OOP
Slide 20
Lab Exercise, continued
public static void main( String args[] )
{
BankAccount b = new BankAccount();
b.deposit( 1000.00 );
b.withdraw( 100.00 );
System.out.println( b.getBalance() );
b.deposit( 2000.00 );
System.out.println( b.getBalance() );
}

Compile and execute UseObjects.java

The values 900.0 and 2900.0 should be printed out
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L3: Intro to OOP
Slide 21
Lab Exercise, continued



Close the current BlueJ project
Create a Robots project
Create a Robot class moving along a two dimensional
maze




Attributes: x and y coordinates (int type)
Methods: moveLeft, moveRight, moveUp, moveDown
Test the class by creating instances within BlueJ
Test the class by creating another class that uses the
Robot class—call it RobotTest
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved.
L1: Intro Java
Slide 22
Summary





In Java, we write programs for objects
These programs are called classes
A class consists of fields and methods to specify
the state and behavior for its objects
Once a class has been defined, objects of that
class can be created (instantiated)
Methods are invoked on an object, and may
cause the state of the object to change
Copyright 2008, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L3: Intro to OOP
Slide 23
Related documents