Java Methods 2nd AP edition
Download
Report
Transcript Java Methods 2nd AP edition
Java Methods
Object-Oriented Programming
and Data Structures
2nd AP edition with GridWorld
Maria Litvin ● Gary Litvin
Chapter 2
An Introduction to Software
Engineering
Copyright © 2011 by Maria Litvin, Gary Litvin, and Skylight Publishing. All rights reserved.
Objectives:
• Understand the software development
process, tools, and priorities
• Understand compilers and interpreters
• Learn about Java Virtual Machine, bytecode
• Learn to set up and run simple console
applications, GUI applications, and applets in
Java
• Learn basic facts about OOP
2-2
Software Today:
1,580,000,000
2-3
Software Applications
• Large business
systems
•
•
•
•
•
•
Databases
Internet, e-mail, etc.
Military
Embedded systems
Scientific research
• Word processing
and other small
business and
personal productivity
tools
• Graphics / arts /
digital photography
• Games
AI
2-4
Software Development
1950-1970's:
• Emphasis on
efficiency
fast algorithms
small program size
limited memory use
Now:
• Emphasis on
• Often cryptic code
• Not user-friendly
programmer’s
productivity
team development
reusability of code
easier maintenance
portability
• Better documented
• User-friendly
2-5
Programming Languages
C
Assembly
LISP
Scheme
languages
Logo
Ada
Algol
1940
1950
1960
Fortran
Machine
code
1970
1980
Pascal
C++
C#
Java
1990
2000
Python
Basic
Cobol
Smalltalk Smalltalk-80
D
2010
Fortress
Groovy
2-6
Software Development Tools
• Editor
programmer writes
source code
• Compiler
translates the source
into object code
(instructions specific to a
particular CPU)
• Linker
converts one or several
object modules into an
executable program
• Debugger
steps through the
program “in slow motion”
and helps find logical
mistakes (“bugs”)
2-7
The First “Bug”
“(moth) in relay”
Mark II Aiken Relay Calculator (Harvard University, 1945)
2-8
Compiled Languages:
Edit-Compile-Link-Run
Editor
Editor
Editor
Source
code
Compiler
Source
code
Compiler
Source
code
Compiler
Object
code
Object
code
Object
code
Linker Executable
program
2-9
Interpreted Languages:
Edit-Run
Editor
Source
code
Interpreter
2-10
Compiler vs. Interpreter
• Compiler:
• Interpreter:
checks syntax
generates
machine-code
instructions
not needed to run
the executable
program
the executable
runs faster
checks syntax
executes appropriate
instructions while
interpreting the
program statements
must remain installed
while the program is
interpreted
the interpreted
program is slower
2-11
Java’s Hybrid Approach:
Compiler + Interpreter
• A Java compiler converts Java source
code into instructions for the Java
Virtual Machine.
• These instructions, called bytecode, are
the same for any computer / operating
system.
• A CPU-specific Java interpreter
interprets bytecode on a particular
computer.
2-12
Java’s Compiler + Interpreter
Editor
Compiler
:
:
7
K
Hello.java
Hello.class
Interpreter
Interpreter
:
Hello,
World!
2-13
Why Bytecode?
• Platform-independent
• Loads from the Internet faster than source
code
• Interpreter is faster and smaller than it would
be for Java source
• Source code is not revealed to end users
• Interpreter performs additional security
checks, screens out malicious code
2-14
JDK — Java Development Kit
• javac
• javadoc
Java compiler
• java
Java interpreter
• appletviewer
tests applets without a
browser
generates HTML
documentation (“docs”)
from source
• jar
packs classes into jar
files (packages)
All these are command-line tools,
no GUI
2-15
JDK (cont’d)
• Developed by Sun Microsystems (now
Oracle); free download
http://www.oracle.com/technetwork/java/javase/downloads/
• All documentation is online
• Many additional Java resources on the
Internet
2-16
Java IDE
• GUI front end for JDK
• Integrates editor, javac, java, appletviewer,
debugger, other tools:
specialized Java editor with syntax highlighting,
autoindent, tab setting, etc.
clicking on a compiler error message takes you to
the offending source code line
• Usually JDK is installed separately and an
IDE is installed on top of it.
2-17
Types of Programs
• Console
• GUI applications
applications
• Applets
2-18
Console Applications
• Simple text dialog:
prompt input, prompt input ... result
C:\javamethods\Ch02> path=%PATH%;C:\Program Files\Java\jdk
1.5.0_07\bin
C:\javamethods\Ch02> javac Greetings2.java
C:\javamethods\Ch02> java Greetings2
Enter your first name: Josephine
Enter your last name: Jaworski
Hello, Josephine Jaworski
Press any key to continue...
2-19
Command-Line Arguments
C:\javamethods\Ch02> javac Greetings.java
C:\javamethods\Ch02> java Greetings Josephine Jaworski
Hello, Josephine Jaworski
public class Greetings
{
public static void main(String[ ] args)
{
String firstName = args[ 0 ];
String lastName = args[ 1 ];
System.out.println("Hello, " + firstName + "
}
}
Command-line
arguments are
passed to main
as an array of
Strings.
" + lastName);
2-20
Command-Line Args (cont’d)
• Can be used in GUI applications, too
• IDEs provide ways to set them (or
prompt for them)
Josephine Jaworski
2-21
Greetings2.java
import java.util.Scanner;
public class Greetings2
{
public static void main(String[ ] args)
{
Scanner kboard = new Scanner(System.in);
System.out.print("Enter your first name: ");
String firstName = kboard.nextLine( );
Prompts
System.out.print("Enter your last name: ");
String lastName = kboard.nextLine( );
System.out.println("Hello, " + firstName + " " + lastName);
System.out.println("Welcome to Java!");
}
}
2-22
GUI Applications
Menus
Clickable
panel
Buttons
Slider
2-23
HelloGui.java
import java.awt.*;
import javax.swing.*;
GUI libraries
public class HelloGui extends JFrame
{
< ... other code >
public static void main(String[ ] args)
{
HelloGui window = new HelloGui( );
// Set this window's location and size:
// upper-left corner at 300, 300; width 200, height 100
window.setBounds(300, 300, 200, 100);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true);
}
}
2-24
HelloApplet.java
import java.awt.*;
import javax.swing.*;
public class HelloApplet extends JApplet
{
public void init( )
No main in applets: the init
{
method is called by JDK’s
...
appletviewer or the browser
}
< ... other code >
}
2-25
OOP —
Object-Oriented Programming
• An OOP program models a world of active
objects.
• An object may have its own “memory,”
which may contain other objects.
• An object has a set of methods that can
process messages of certain types.
2-26
OOP (cont’d)
• A method can change the object’s state, send
messages to other objects, and create new
objects.
• An object belongs to a particular class, and
the functionality of each object is determined
by its class.
• A programmer creates an OOP application by
defining classes.
2-27
The Main OOP Concepts:
• Inheritance: a subclass extends a superclass;
the objects of a subclass inherit features of
the superclass and can redefine them or add
new features.
• Event-driven programs: the program
simulates asynchronous handling of events;
methods are called automatically in response
to events.
2-28
Inheritance
• A programmer can define hierarchies of
classes
• More general classes are closer to the top
Person
Child
Baby
Toddler
Adult
Teen
2-29
OOP Benefits
• Facilitates team development
• Easier to reuse software components and
write reusable software
• Easier GUI (Graphical User Interface) and
multimedia programming
2-30
Review:
• What are some of the current software
development concerns?
• What are editor, compiler, debugger used for?
• How is a compiler different from an
interpreter?
• Name some of the benefits of Java’s
compiler+interpreter approach.
• Define IDE.
2-31
Review (cont’d):
•
•
•
•
What is a console application?
What are command-line arguments?
What is a GUI application?
What is the difference between a GUI
application and an applet?
• What is OOP?
• Define inheritance.
2-32