chapter 1-introduction to computers, programs, and java

44
CE9001/CM101 Java and the Internet Chapter 1 Introduction to Computers, Programs, and Java

Upload: david-koh

Post on 19-Jan-2016

34 views

Category:

Documents


4 download

DESCRIPTION

stuff

TRANSCRIPT

Page 1: Chapter 1-Introduction to Computers, Programs, And Java

CE9001/CM101 Java and the Internet

Chapter 1

Introduction to Computers, Programs, and Java

Page 2: Chapter 1-Introduction to Computers, Programs, And Java

2

Overviews

1.1 Computer Systems

1.2 Computer software

1.3 Computer programming

1.4 Why Java Programming

1.5 Java basics

1.6 A Simple Java Program

1.7 Anatomy of a Java Program

1.8 Programming Errors

Page 3: Chapter 1-Introduction to Computers, Programs, And Java

Objectives

To understand computer basics, programs, and operating

systems (§§1.2–1.4).

To describe the relationship between Java and the World

Wide Web (§1.5).

To understand the meaning of Java language specification,

API, JDK, and IDE (§1.6).

To write a simple Java program (§1.7).

To display output on the console (§1.7).

To explain the basic syntax of a Java program (§1.7).

Page 4: Chapter 1-Introduction to Computers, Programs, And Java

Objectives cont’

To create, compile, and run Java programs (§1.8).

To become familiar with Java programming style and

documentation (§1.10).

To explain the differences between syntax errors, runtime

errors, and logic errors (§1.11).

Page 5: Chapter 1-Introduction to Computers, Programs, And Java

5

1.1 Computer Systems

Computer systems = Hardware + Software +

Data + User

Hardware – Physical components/devices

Software – Computer programs with instructions

that perform a particular task based on the

hardware

Page 6: Chapter 1-Introduction to Computers, Programs, And Java

6

Computer Hardware

Control

Unit

Main Memory

`

Central Processing Unit

Registers

Arithmetic

Logic Unit

`

`

Input Device

Output Device

Secondary Storage

`

3. Input Device -mouse, keyboard, etc.

4. Output Device -printer, monitor, etc.

5. Secondary Storage - permanent

- floppy disks, hard disks,

CDs, tapes, USB flash

drives, etc.

1. CPU - interprets and executes instructions

2. Main Memory - store data and instructions

- 1 byte = 8 bits

Page 7: Chapter 1-Introduction to Computers, Programs, And Java

7

1.2 Computer Software (Programs)

Utility Programs

(E.g. Editors)

Hardware

Language Translators

(E.g. Assemblers,

Compilers, Interpreters)

Application Software

(E.g. Word Processors,

Database Systems, etc.)

Operating Systems

(E.g. Unix, MS-DOS, Windows 95, etc.)

Application

Software

System Software

Page 8: Chapter 1-Introduction to Computers, Programs, And Java

8

Programs

Computer programs, known as software, are

instructions to the computer.

You tell a computer what to do through programs.

Without programs, a computer is an empty machine.

Computers do not understand human languages, so

you need to use computer languages to communicate

with them.

Programs are written using programming languages.

Page 9: Chapter 1-Introduction to Computers, Programs, And Java

9

Human language

Add 2

to 3 ???

Computer

1.3 What is Programming?

Computer program

A set of instructions that directs the computer's behavior.

Computer programming

The art and science of designing and writing computer programs.

Programming Languages

Page 10: Chapter 1-Introduction to Computers, Programs, And Java

10

Programming Languages

Machine Language Assembly Language High-Level Language

Machine language is a set of primitive instructions built into every computer. The instructions are in the form of binary code, so you have to enter binary codes for various instructions. Program with native machine language is a tedious process. Moreover the programs are highly difficult to read and modify. For example, to add two numbers, you might write an instruction in binary like this:

1101101010011010

Page 11: Chapter 1-Introduction to Computers, Programs, And Java

11

Programming Languages

Machine Language Assembly Language High-Level Language

Assembly languages were developed to make programming easy. Since the computer cannot understand assembly language, however, a program called assembler is used to convert assembly language programs into machine code. For example, to add two numbers, you might write an instruction in assembly code like this:

ADDF3 R1, R2, R3

… ADDF3 R1, R2, R3

Assembly Source File

Assembler

… 1101101010011010

Machine Code File

Page 12: Chapter 1-Introduction to Computers, Programs, And Java

12

Programming Languages

Machine Language Assembly Language High-Level Language

The high-level languages are English-like and easy to learn

and program. For example, the following is a high-level

language statement that computes the area of a circle with

radius 5:

area = 5 * 5 * 3.1415;

Page 13: Chapter 1-Introduction to Computers, Programs, And Java

13

Translator, Interpreter and Compiler

Compilers - converts HLL

programs into ML

- translation is off-line,

not at runtime

Interpreters - translation is on-line

- HLL programs can

be executed directly

NB: compiled code

can be executed faster

Page 14: Chapter 1-Introduction to Computers, Programs, And Java

14

Popular High-Level Languages

Language Description

Ada

BASIC

C

C++

C#

COBOL

FORTRAN

Java

Pascal

Python

Visual

Basic

Named for Ada Lovelace, who worked on mechanical general-purpose computers. The Ada

language was developed for the Department of Defense and is used mainly in defense projects.

Beginner’s All-purpose Symbolic Instruction Code. It was designed to be learned and used easily

by beginners.

Developed at Bell Laboratories. C combines the power of an assembly language with the ease of

use and portability of a high-level language.

C++ is an object-oriented language, based on C.

Pronounced “C Sharp.” It is a hybrid of Java and C++ and was developed by Microsoft.

COmmon Business Oriented Language. Used for business applications.

FORmula TRANslation. Popular for scientific and mathematical applications.

Developed by Sun Microsystems, now part of Oracle. It is widely used for developing platform-

independent Internet applications.

Named for Blaise Pascal, who pioneered calculating machines in the seventeenth century. It is a

simple, structured, general-purpose language primarily for teaching programming.

A simple general-purpose scripting language good for writing short programs.

Visual Basic was developed by Microsoft and it enables the programmers to rapidly develop

graphical user interfaces.

Page 15: Chapter 1-Introduction to Computers, Programs, And Java

15

Programming Languages

Learning computer programming is just like learning a

new language such as Japanese, Chinese, Malay, etc.

http://en.wikipedia.org/wiki/List_of_Java_keywords

Page 16: Chapter 1-Introduction to Computers, Programs, And Java

16

• Java is object-oriented

• Java is simple

• Java is robust and readable

• Java is portable

• Java is secure and distributed

• Java is easy to learn

• Java has many useful features

1.4 Why Java Programming?

Java enables users to develop and deploy applications on the Internet for servers,

desktop computers, and small hand-held devices. The future of computing is being

profoundly influenced by the Internet, and Java promises to remain a big part of that

future.

Java is a general purpose programming language.

Java is the Internet programming language.

Page 17: Chapter 1-Introduction to Computers, Programs, And Java

Smartphones And Apps

Android Apps – Java

http://developer.android.com/sdk/index.html

iPhone Apps - Objective C

17

Samsung Galaxy S III vs iPhone 5

Page 18: Chapter 1-Introduction to Computers, Programs, And Java

18

• James Gosling, Sun Microsystems

Inc., 1991

• Oracle acquired Sun in 2010

• Originally a language for

programming embedded

consumer electronic applications

• Initially named as Oak. Then

changed to Java after visiting a

local coffee shop

• In 1995 – Java is a language for

developing Internet applications

• Now – one of the most important

general-purpose programming

languages

Why OAK?

Because, while trying to think

of a name, James Gosling

looked out of his office

window and saw an oak tree!

1.5 Java Basics– A Brief History

Page 19: Chapter 1-Introduction to Computers, Programs, And Java

JavaScript

JavaScript uses syntax influenced by that of C.

JavaScript copies many names and naming conventions

from Java, but the two languages are otherwise unrelated

and have very different semantics.

is primarily used in the form of client-side JavaScript,

implemented as part of a Web browser in order to give

enhanced user interfaces and dynamic websites.

http://en.wikipedia.org/wiki/JavaScript

19

Appeared in 1994; 19 years ago

Designed by Brendan Eich

Developer

Netscape Communications

Corporation, Mozilla

Foundation

Page 20: Chapter 1-Introduction to Computers, Programs, And Java

20

• Java Applets • Java programs to be downloaded via the Internet

• Relatively small programs

• Need a web browser

• Java Applications • Standalone programs

• Generally larger applications

• Only slight difference in programming, this

course focuses on Java applications

Applets vs Java Applications

Page 21: Chapter 1-Introduction to Computers, Programs, And Java

"What Java Do I Need?"

Java syntax is defined in the java language specification,

and the Java library is defined in the Java API (application

program interface).

You must have a copy of the JRE (Java Runtime

Environment) on your system to run Java applications and

applets.

JVM (Java Virtual Machine) is a program that interprets

Java bytecode.

JDK (Java Development Kit) is the software for developing

and running Java programs. To develop Java applications

and applets, you need the JDK, which includes the JRE.

http://www.oracle.com/technetwork/java/javase/downloads/index.html

21

Page 22: Chapter 1-Introduction to Computers, Programs, And Java

22

JDK Editions

Java Standard Edition (J2SE) J2SE can be used to develop client-side standalone applications or applets.

Java Enterprise Edition (J2EE) J2EE can be used to develop server-side applications such as Java servlets, Java

ServerPages, and Java ServerFaces. Java Micro Edition (J2ME).

J2ME can be used to develop applications for mobile devices such as cell phones.

This course uses J2SE to introduce Java programming.

Page 23: Chapter 1-Introduction to Computers, Programs, And Java

23

The Java Development Process

Step2: Compile the Java source code

Step3: Run the compiled Java code or class file

Step1: Write the Java source code

Page 24: Chapter 1-Introduction to Computers, Programs, And Java

24

Java Virtual Machine (JVM)

The Java compiler does not translate Java source code into

machine language directly, it translates source code into

Java byte code

byte code is the input for JVM

JVM is an interpreter that translates each byte code

instruction into a machine language instruction and execute

it

JVM makes the Java byte code highly portable

JVMs are getting faster nowadays

Page 25: Chapter 1-Introduction to Computers, Programs, And Java

25

1.6 A Simple Java Program

//This program prints Welcome to Java!

public class Welcome {

public static void main(String[] args) {

System.out.println("Welcome to Java!");

}

}

Page 26: Chapter 1-Introduction to Computers, Programs, And Java

26

Step 1:Creating and Editing Using NotePad++

Page 27: Chapter 1-Introduction to Computers, Programs, And Java

27

Creating, Compiling, and Running Programs

Source Code

Create/Modify Source Code

Compile Source Code

i.e., javac Welcome.java

Bytecode

Run Byteode

i.e., java Welcome

Result

If compilation errors

If runtime errors or incorrect result

public class Welcome {

public static void main(String[] args) {

System.out.println("Welcome to Java!"); } }

Method Welcome()

0 aload_0

Method void main(java.lang.String[])

0 getstatic #2 …

3 ldc #3 <String "Welcome to

Java!">

5 invokevirtual #4 …

8 return

Saved on the disk

stored on the disk

Source code (developed by the programmer)

Byte code (generated by the compiler for JVM

to read and interpret, not for you to understand)

Page 28: Chapter 1-Introduction to Computers, Programs, And Java

28

Type JDK Command:

javac Welcome.java

Step 2: To compile your program

where javac is JDK Java compiler. •Compiler translates the source program into Java bytecode.

•The compiler saves the bytecode into the file Welcome.class.

Page 29: Chapter 1-Introduction to Computers, Programs, And Java

29

Step 3: To run the byte code with the Java

interpreter

Type JDK Command : java Welcome

The class file (bytecode) is loaded into memory and interpreted by the Java Virtual

Machine (JVM)

Successful compilation will create the bytecode class file: Welcome.class

Page 30: Chapter 1-Introduction to Computers, Programs, And Java

30

//This program prints Welcome to Java!

public class Welcome {

public static void main(String[] args) {

System.out.println("Welcome to Java!");

}

}

Trace a Program Execution

Enter main method

Page 31: Chapter 1-Introduction to Computers, Programs, And Java

31

//This program prints Welcome to Java!

public class Welcome {

public static void main(String[] args) {

System.out.println("Welcome to Java!");

}

}

Trace a Program Execution

Execute statement

print a message

to the console

Page 32: Chapter 1-Introduction to Computers, Programs, And Java

32

1.7 Anatomy of a Java Program

Class name

Main method

Statements

Statement terminator

Reserved words

Comments

Blocks

Page 33: Chapter 1-Introduction to Computers, Programs, And Java

33

Class Name

Every Java program must have at least one class. Each class

has a name. By convention, class names start with an

uppercase letter. In this example, the class name is Welcome.

Page 34: Chapter 1-Introduction to Computers, Programs, And Java

34

Main Method

Line 3 defines the main method. In order to run a class, the

class must contain a method named main. The program is

executed from the main method.

Page 35: Chapter 1-Introduction to Computers, Programs, And Java

35

Statement

A statement represents an action or a sequence of

actions. The statement

System.out.println("Welcome to Java!") in the

program is a statement to display the greeting

"Welcome to Java!“.

Page 36: Chapter 1-Introduction to Computers, Programs, And Java

36

Statement Terminator

Every statement in Java ends with a semicolon (;).

Page 37: Chapter 1-Introduction to Computers, Programs, And Java

37

Reserved words

Reserved words or keywords are words that have a specific

meaning to the compiler and cannot be used for other

purposes in the program. For example, when the compiler

sees the word class, it understands that the word after class

is the name for the class.

abstract continue for new switch

assert*** default goto* package synchronized

boolean do if private this

break double implements protected throw

byte else import public throws

case enum**** instanceof return transient

catch extends int short try

char final interface static void

class finally long strictfp** volatile

const* float native super while

* not used

** added in 1.2

*** added in 1.4

**** added in 5.0

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

Page 38: Chapter 1-Introduction to Computers, Programs, And Java

38

Three ways to write comments:

(1) Line comment

// single line comment

(2) Block/paragraph comment

/* multiple line comment

This is the first comment

This is the second comment

*/

/* also can be single line */

(3) javadoc comment

/** generate document*/

Will manly use these

two types of comments

Mainly used for

documentation purpose

Comments

Page 39: Chapter 1-Introduction to Computers, Programs, And Java

39

Blocks

A pair of braces { … } in a program forms a block that groups components of a program.

public class Welcome {

public static void main(String[] args) {

System.out.println("Welcome to Java!");

}

}

Class block

Method block

Page 40: Chapter 1-Introduction to Computers, Programs, And Java

40

Special Symbols

Character Name Description

{}

()

[]

//

" "

;

Opening and closing

braces

Opening and closing

parentheses

Opening and closing

brackets

Double slashes

Opening and closing

quotation marks

Semicolon

Denotes a block to enclose statements.

Used with methods.

Denotes an array.

Precedes a comment line.

Enclosing a string (i.e., sequence of characters).

Marks the end of a statement.

Page 41: Chapter 1-Introduction to Computers, Programs, And Java

41

1.8 Programming Errors

Syntax Errors

Detected by the compiler

Runtime Errors

Causes the program to abort

Logic Errors

Produces incorrect result

Page 42: Chapter 1-Introduction to Computers, Programs, And Java

42

Syntax Errors

public class ShowSyntaxErrors {

public static main(String[] args) {

System.out.println("Welcome to Java);

}

}

• Are detected by the complier are called syntax errors

or compile errors.

• Result from errors in code construction • Mistyping a keyword

• Omitting some necessary punctuation

• Using an opening brace without a corresponding closing

brace

• Usually easy to detect

Page 43: Chapter 1-Introduction to Computers, Programs, And Java

43

Runtime Errors

public class ShowRuntimeErrors {

public static void main(String[] args) {

System.out.println(1 / 0);

}

}

• Are errors that cause a program to terminate

abnormally.

• They occur while a program is running if the

environment detects an operation that is impossible to

carry out. • division by zero

• incorrect input type

Page 44: Chapter 1-Introduction to Computers, Programs, And Java

44

Logic Errors

public class ShowLogicErrors {

public static void main(String[] args) {

System.out.println("Celsius 35 is Fahrenheit degree ");

System.out.println((9 / 5) * 35 + 32);

}

}

• Occur when a program does not perform the way it

was intended to.

• Occur for many different reasons.

• Most difficult to detect.