0% found this document useful (0 votes)
95 views52 pages

Getting Started With Java: Animated Version

Uploaded by

Asif Irshad Khan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
95 views52 pages

Getting Started With Java: Animated Version

Uploaded by

Asif Irshad Khan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 52

Chapter 2

Getting Started with Java

Animated Version

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 1
Objectives

After you have read and studied this chapter, you


should be able to
• Identify the basic components of Java programs
• Write simple Java programs
• Describe the difference between object declaration and creation
• Describe the process of creating and running Java programs
• Use the Date, SimpleDateFormat, String, and JOptionPane
standard classes
• Develop Java programs, using the incremental development
approach

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 2
The First Java Program

• The fundamental OOP concept illustrated by the


program:
An object-oriented program uses
objects.
• This program displays a window on the screen.
• The size of the window is set to 300 pixels wide
and 200 pixels high. Its title is set to My First Java
Program.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 3
Program Ch2Sample1

import javax.swing.*;

class Ch2Sample1 {
public static void main(String[ ] args) {
JFrame myWindow; Declare
Declareaaname
name

myWindow = new JFrame( ); Create


Createan
anobject
object

myWindow.setSize(300, 200);
myWindow.setTitle(“My First Java Program”);
myWindow.setVisible(true);
}
}
Use
Usean
anobject
object

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 4
Program Diagram for Ch2Sample1

Ch2Sample1 setSize(300, 200


)

setTitle(“My First Java Program”)


myWindow : JFrame
(true)
setVisible

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 5
Dependency Relationship

Ch2Sample1

myWindow : JFrame

Instead of drawing all messages, we summarize it by showing


only the dependency relationship. The diagram shows that
Ch2Sample1 “depends” on the service provided by myWindow.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 6
Object Declaration
Class
ClassName
Name Object
ObjectName
Name
This
This class mustbe
class must be One object is declared
One object is declared
defined before this
defined before this here.
here.
declaration
declarationcan
canbebestated.
stated.

JFrame myWindow;

Account customer;
More
Student jan, jim, jon;
Examples
Vehicle car1, car2;

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 7
Object Creation
Class
ClassName
Name Argument
Argument
Object
ObjectName
Name AnAn instance ofthis
instance of thisclass
class No
No argumentsare
arguments areused
used
Name
Name of the objectwe
of the object we isiscreated.
created. here.
here.
are creating here.
are creating here.

myWindow = new JFrame ( );

customer = new Customer( );


More jon = new Student(“John Java”);
Examples car1 = new Vehicle( );

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 8
Declaration vs. Creation

1 Customer customer;
2 customer = new Customer( );

1.1.The
Theidentifier
identifiercustomer
customerisis
customer declared
declaredand
andspace
spaceisis
1 allocated
allocatedininmemory.
memory.

2.2.AACustomer
Customerobject
objectisis
: Customer
2 created
createdand
andthe
theidentifier
identifier
customer
customer is set torefer
is set to refertotoit.it.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 9
State-of-Memory vs. Program

customer

customer : Customer

: Customer

State-of-Memory Program Diagram


Notation Notation

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 10
Name vs. Objects

Customer customer;
customer = new Customer( );
customer = new Customer( );

customer

Created
Createdwith
withthe
thesecond
second
Created
Createdwith
with new.
the first new.
: Customer : Customer new. Reference tothe
Reference to thefirst
first
the first new. Customer object is lost.
Customer object is lost.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 11
Sending a Message
Object
ObjectName
Name Method
MethodName
Name Argument
Argument
Name
Name of the objecttoto
of the object The name of the
The name of the The
The argumentwe
argument weare
are
which
whichweweare
aresending
sendingaa message
messagewe
weare
aresending.
sending. passing with the
passing with the
message.
message. message.
message.

myWindow . setVisible ( true ) ;

account.deposit( 200.0 );
More student.setName(“john”);
Examples car1.startEngine( );

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 12
Execution Flow

Program Code State-of-Memory Diagram


myWindow

Jframe
JFrame myWindow;
: JFrame
myWindow = new JFrame( );
myWindow.setSize(300, 200); width 300

myWindow.setTitle height 200


(“My First Java Program”);
myWindow.setVisible(true); title My First Java …

visible true
The
Thediagram
diagramshows
showsonly
onlyfour
fourofofthe
themany
manydata
data
members of a JFrame object.
members of a JFrame object.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 13
Program Components

• A Java program is composed of

– comments,

– import statements, and

– class declarations.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 14
Program Component: Comment

/*
Chapter 2 Sample Program: Displaying a Window

File: Ch2Sample2.java
*/

import javax.swing.*;

class Ch2Sample1 {
public static void main(String[ ] args) {
Comment
Comment
JFrame myWindow;

myWindow = new JFrame( );

myWindow.setSize(300, 200);
myWindow.setTitle(“My First Java Program”);
myWindow.setVisible(true);
}
}

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 15
Matching Comment Markers
/* This is a comment on one line */

/*
Comment number 1
*/
/*
Comment number 2
*/

These
Theseare
arepart
partofofthe
the
/* comment.
comment.

/*
/*
This is a comment
*/ Error:
Error:No
Nomatching
matching
beginning marker.
beginning marker.
*/

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 16
Three Types of Comments

/*
This is a comment with
three lines of Multiline
MultilineComment
Comment
text.
*/

// This is a comment
// This is another comment Single
Singleline
lineComments
Comments
// This is a third comment

/**
* This class provides basic clock functions. In addition
javadoc
javadocComments
Comments
* to reading the current time and today’s date, you can
* use this class for stopwatch functions.
*/

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 17
Import Statement
/*
Chapter 2 Sample Program: Displaying a Window

File: Ch2Sample2.java
*/
Import
Import
import javax.swing.*; Statement
Statement
class Ch2Sample1 {
public static void main(String[ ] args) {
JFrame myWindow;

myWindow = new JFrame( );

myWindow.setSize(300, 200);
myWindow.setTitle(“My First Java Program”);
myWindow.setVisible(true);
}
}

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 18
Import Statement Syntax and Semantics
Class
ClassNameName
Package
PackageName Name The
The name of theclass
name of the classwe
we
Name
Name of the packagethat
of the package that want to import. Use
want to import. Use
contains the classes we
contains the classes we asterisks
asteriskstotoimport
importall
all
want
wanttotouse.
use. classes.
classes.

<package name> . <class


name> ;

e.g. dorm . Resident;

More import
import
javax.swing.JFrame;
java.util.*;
Examples import com.drcaffeine.simplegui.*;

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 19
Class Declaration
/*
Chapter 2 Sample Program: Displaying a Window
Class
Class
Declaration
Declaration
File: Ch2Sample2.java
*/

import javax.swing.*;

class Ch2Sample1 {
public static void main(String[ ] args) {
JFrame myWindow;

myWindow = new JFrame( );

myWindow.setSize(300, 200);
myWindow.setTitle(“My First Java Program”);
myWindow.setVisible(true);
}
}

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 20
Method Declaration
/*
Chapter 2 Sample Program: Displaying a Window

File: Ch2Sample2.java Method


Method
*/ Declaration
Declaration
import javax.swing.*;

class Ch2Sample1 {
public static void main(String[ ] args) {
JFrame myWindow;

myWindow = new JFrame( );

myWindow.setSize(300, 200);
myWindow.setTitle(“My First Java Program”);
myWindow.setVisible(true);
}
}

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 21
Method Declaration Elements

Modifier
Modifier Modifier
Modifier Return
ReturnType
Type Method
MethodName
Name Parameter
Parameter

public static void main( String[ ] args ){

JFrame myWindow; Method


MethodBody
Body

myWindow = new JFrame( );

myWindow.setSize(300, 200);
myWindow.setTitle(“My First Java Program”);
myWindow.setVisible(true);

}
©The McGraw-Hill Companies, Inc. Permission re
quired for reproduction or display. 4th Ed Chapter 2 - 22
Template for Simple Java Programs
/*
Chapter 2 Sample Program: Displaying a Window
Comment
Comment
File: Ch2Sample2.java
*/

import javax.swing.*; Import


Import
Statements
Statements
class Ch2Sample1 {

public static void main(String[ ] args) {


Class
ClassName
Name
JFrame myWindow;

myWindow = new JFrame( );

Method
MethodBody
Body
myWindow.setSize(300, 200);
myWindow.setTitle(“My First Java Program”);
myWindow.setVisible(true);

}
}

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 23
Why Use Standard Classes

• Don’t reinvent the wheel. When there are existing


objects that satisfy our needs, use them.
• Learning how to use standard Java classes is the
first step toward mastering OOP. Before we can
learn how to define our own classes, we need to
learn how to use existing classes
• We will introduce four standard classes here:
– JOptionPane
– String
– Date
– SimpleDateFormat.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 24
JOptionPane

• Using showMessageDialog of the JOptionPane


class is a simple way to display a result of a
computation to the user.

JOptionPane.showMessageDialog(null, “I Love Java”);

This
Thisdialog
dialogwill
willappear
appear
atatthe center of the
the center of the
screen.
screen.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 25
Displaying Multiple Lines of Text

• We can display multiple lines of text by separating


lines with a new line marker \n.
JOptionPane.showMessageDialog(null,
“one\ntwo\nthree”);

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 26
String

• The textual values passed to the


showMessageDialog method are instances of
the String class.
• A sequence of characters separated by
double quotes is a String constant.
• There are close to 50 methods defined in the
String class. We will introduce three of them
here: substring, length, and indexOf.
• We will also introduce a string operation
called concatenation.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 27
String is an Object

1 String name;
2 name
name =
= new
new String(“Jon Java”);
String(“Jon Java”);

1.1.The
Theidentifier
identifiername
nameisis
name
declared
declaredand
andspace
spaceisis
1 allocated
allocatedininmemory.
memory.

: String
2
2.2.AAString
Stringobject
objectisiscreated
created
Jon Java and
and the identifier nameisis
the identifier name
set
settotorefer
refertotoit.it.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 28
String Indexing

The
Theposition,
position,ororindex,
index,ofof
the
thefirst
firstcharacter
characterisis0.0.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 29
Definition: substring
• Assume str is a String object and properly
initialized to a string.
• str.substring( i, j ) will return a new string by
extracting characters of str from position i to j-1
where 0  i  length of str, 0  j  length of str,
and i  j.
• If str is “programming” , then str.substring(3, 7)
will create a new string whose value is “gram”
because g is at position 3 and m is at position
6.
• The original string str remains unchanged.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 30
Examples: substring

String text = “Espresso”;

text.substring(6,8)
“so”

text.substring(0,8) “Espresso”

text.substring(1,5) “spre”

text.substring(3,3) “”

text.substring(4,2) error

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 31
Definition: length

• Assume str is a String object and properly


initialized to a string.
• str.length( ) will return the number of
characters in str.
• If str is “programming” , then str.length( ) will
return 11 because there are 11 characters in it.
• The original string str remains unchanged.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 32
Examples: length
String str1, str2, str3, str4;
str1 = “Hello” ;
str2 = “Java” ;
str3 = “” ; //empty string
str4 = “ “ ; //one space

str1.length( ) 5

str2.length( ) 4

str3.length( ) 0

str4.length( ) 1

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 33
Definition: indexOf
• Assume str and substr are String objects and
properly initialized.
• str.indexOf( substr ) will return the first position
substr occurs in str.
• If str is “programming” and substr is “gram” ,
then str.indexOf(substr ) will return 3 because
the position of the first character of substr in str
is 3.
• If substr does not occur in str, then –1 is
returned.
• The search is case-sensitive.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 34
Examples: indexOf

String str;
str = “I Love Java and Java loves me.” ;

3 7 21

str.indexOf( “J” ) 7

str2.indexOf( “love” ) 21

str3. indexOf( “ove” ) 3

str4. indexOf( “Me” ) -1

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 35
Definition: concatenation

• Assume str1 and str2 are String objects and


properly initialized.
• str1 + str2 will return a new string that is a
concatenation of two strings.
• If str1 is “pro” and str2 is “gram” , then str1 +
str2 will return “program”.
• Notice that this is an operator and not a method
of the String class.
• The strings str1 and str2 remains the same.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 36
Examples: concatenation

String str1, str2;


str1 = “Jon” ;
str2 = “Java” ;

str1 + str2 “JonJava”

str1 + “ “ + str2 “Jon Java”

str2 + “, “ + str1 “Java, Jon”

“Are you “ + str1 + “?”


“Are you Jon?”

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 37
Date
• The Date class from the java.util package is used
to represent a date.
• When a Date object is created, it is set to today
(the current date set in the computer)
• The class has toString method that converts the
internal format to a string.
Date today;
today = new Date( );

today.toString( );

“Fri Oct 31 10:05:18 PST 2003”


©The McGraw-Hill Companies, Inc. Permission re
quired for reproduction or display. 4th Ed Chapter 2 - 38
SimpleDateFormat

• The SimpleDateFormat class allows the Date


information to be displayed with various format.
• Table 2.1 page 68 shows the formatting options.

Date today = new Date( );


SimpleDateFormat sdf1, sdf2;
sdf1 = new SimpleDateFormat( “MM/dd/yy” );
sdf2 = new SimpleDateFormat( “MMMM dd, yyyy” );

sdf1.format(today); “10/31/03”

sdf2.format(today); “October 31, 2003”

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 39
JOptionPane for Input

• Using showInputDialog of the JOptionPane


class is a simple way to input a string.
String name;

name = JOptionPane.showInputDialog
(null, “What is your name?”);

This
Thisdialog
dialogwill
willappear
appear
atatthe center of the
the center of the
screen
screenready
readytotoaccept
accept
an input.
an input.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 40
Problem Statement

• Problem statement:
Write a program that asks for the user’s first,
middle, and last names and replies with their
initials.

Example:

input: Andrew Lloyd Weber


output: ALW

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 41
Overall Plan

• Identify the major tasks the program has to


perform.
• We need to know what to develop before we develop!
• Tasks:
– Get the user’s first, middle, and last names
– Extract the initials and create the monogram
– Output the monogram

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 42
Development Steps

• We will develop this program in two steps:

1. Start with the program template and add code to


get input

2. Add code to compute and display the monogram

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 43
Step 1 Design

• The program specification states “get the


user’s name” but doesn’t say how.
• We will consider “how” in the Step 1 design
• We will use JOptionPane for input
• Input Style Choice #1
Input first, middle, and last names separately
• Input Style Choice #2
Input the full name at once
• We choose Style #2 because it is easier and
quicker for the user to enter the information
©The McGraw-Hill Companies, Inc. Permission re
quired for reproduction or display. 4th Ed Chapter 2 - 44
Step 1 Code
/*
Chapter 2 Sample Program: Displays the Monogram
File: Step1/Ch2Monogram.java
*/
import javax.swing.*;

class Ch2Monogram {
public static void main (String[ ] args) {

String name;

name = JOptionPane.showInputDialog(null,
"Enter your full name (first, middle, last):“);

JOptionPane.showMessageDialog(null, name);
}
}

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 45
Step 1 Test

• In the testing phase, we run the program and


verify that
– we can enter the name
– the name we enter is displayed correctly

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 46
Step 2 Design

• Our programming skills are limited, so we will


make the following assumptions:
– input string contains first, middle, and last names
– first, middle, and last names are separated by
single blank spaces
• Example
John Quincy Adams (okay)
John Kennedy (not okay)
Harrison, William Henry (not okay)

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 47
Step 2 Design (cont’d)
• Given the valid input, we can compute the
monogram by
– breaking the input name into first, middle, and last
– extracting the first character from them
– concatenating three first characters
“Aaron Ben Cosner”

“Aaron” “Ben Cosner”

“Ben” “Cosner”

“ABC”
©The McGraw-Hill Companies, Inc. Permission re
quired for reproduction or display. 4th Ed Chapter 2 - 48
Step 2 Code
/*
Chapter 2 Sample Program: Displays the Monogram
File: Step 2/Ch2MonogramStep2.java
*/
import javax.swing.*;

class Ch2Monogram {

public static void main (String[ ] args) {


String name, first, middle, last,
space, monogram;

space = " “;

//Input the full name


name = JOptionPane.showInputDialog(null,
"Enter your full name (first, middle,
last):“ );
©The McGraw-Hill Companies, Inc. Permission re
quired for reproduction or display. 4th Ed Chapter 2 - 49
Step 2 Code (cont’d)
//Extract first, middle, and last names
first = name.substring(0, name.indexOf(space));
name = name.substring(name.indexOf(space)+1,
name.length());

middle = name.substring(0, name.indexOf(space));


last = name.substring(name.indexOf(space)+1,
name.length());

//Compute the monogram


monogram = first.substring(0, 1) +
middle.substring(0, 1) +
last.substring(0,1);
//Output the result
JOptionPane.showMessageDialog(null,
"Your monogram is " + monogram);
}
}
©The McGraw-Hill Companies, Inc. Permission re
quired for reproduction or display. 4th Ed Chapter 2 - 50
Step 2 Test

• In the testing phase, we run the program and


verify that, for all valid input values, correct
monograms are displayed.
• We run the program numerous times. Seeing
one correct answer is not enough. We have
to try out many different types of (valid) input
values.

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 51
Program Review

• The work of a programmer is not done yet.


• Once the working program is developed, we
perform a critical review and see if there are
any missing features or possible
improvements
• One suggestion
– Improve the initial prompt so the user knows the
valid input format requires single spaces between
the first, middle, and last names

©The McGraw-Hill Companies, Inc. Permission re


quired for reproduction or display. 4th Ed Chapter 2 - 52

You might also like