Вы находитесь на странице: 1из 32

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

Word processing
and other small business and personal productivity tools

Databases Internet, e-mail, etc. Military

Graphics / arts /
digital photography

Embedded systems
Scientific research AI

Games

2-4

Software Development
1950-1970's: Now:

Emphasis on
efficiency

Emphasis on

fast algorithms small program size limited memory use

Often cryptic code Not user-friendly

programmers productivity team development reusability of code easier maintenance portability

Better documented User-friendly


2-5

Programming Languages
Assembly LISP Scheme languages Logo Ada Algol

C++

C#
Java

D
2010
Fortress Groovy

1940

1950

1960
Fortran

1970

1980

1990

2000

Machine code

Basic Cobol Smalltalk Smalltalk-80

Pascal

Python

2-6

Software Development Tools


Editor

Linker

programmer writes source code

Compiler

converts one or several object modules into an executable program

translates the source into object code (instructions specific to a particular CPU)

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 Source code Source code Source code Compiler Object code Object code Object code

Editor

Compiler

Linker Executable program

Editor

Compiler

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

Javas 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

Javas 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

generates HTML documentation (docs) from source

Java interpreter

appletviewer

jar

tests applets without a browser

packs classes into jar files (packages)

All these are command-line tools, no GUI

2-15

JDK (contd)
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
applications

GUI 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 (contd)


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 JDKs ... 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 (contd)
A method can change the objects 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 Teen Adult

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 Javas


compiler+interpreter approach.

Define IDE.
2-31

Review (contd):

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

Вам также может понравиться