copywrite asc1 system development with java instructors: rina zviel-girshin interdiciplinary center...

62
Copywrite ASC 1 System development with Java Instructors: Rina Zviel-Girshin Interdiciplinary Center Herzlia School of the Computer Science Fall: 2000-2001

Upload: toby-weaver

Post on 31-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Copywrite ASC 1

System development with Java

Instructors: Rina Zviel-Girshin

Interdiciplinary Center HerzliaSchool of the Computer Science

Fall: 2000-2001

Copywrite ASC 2

Information Source

• Course site : www.idc.ac.il/

• Course book:

Java Software Solutions /Lewis & Loftus

Thinking in Java / Bruce Eckle

Copywrite ASC 3

Course Methodology

• Non-LinearitySpiral model

Hypermedia

• CAI – Computer Assisted Instruction

•  Interactive learning

•  Labs and programming

•  Multi-approach: inductive-deductive trails

Copywrite ASC 4

Programming Languages and Java

• Programming languages

• Java language

• The basic program

• Java syntax

Copywrite ASC 5

Programming

• The process of writing programs called a programming.

• The process requires:Programming languageA translator of the programming language

into machine language• Programs are written in programming language.

Copywrite ASC 6

Syntax

• Syntax describes the grammatical rules of a language.

• Valid words• Valid grammar constructions• Valid punctuation

• Programs must be syntactically correct.

Copywrite ASC 7

Semantics

• Semantics gives the meaning of what you write with a language.

• A programming language must precisely define the meaning of every statement that can be written with it.

• Programs must be semantically correct.

Copywrite ASC 8

Example

• The following sentence is syntactically correct but semantically incorrect.

“ Java programs are green and yellow.”

– All words are correct words.– Punctuation is correct.– But logically the sentence makes no sense.

Copywrite ASC 9

Programming languages

• There are several families of the programming languages:

Procedural ( Pascal, C++, Java)

Logical ( Prolog) Visual ( Visual Basic) Document (HTML, LATEX)

Copywrite ASC 10

Programming languages

• Procedural languages can be divided into:Machine languagesLow-level (Assembler )Intermediate-level (C)High-Level (C++, Java)

Copywrite ASC 11

Java

• Java is high-level language.• Java is object oriented language.• In this course we will use the terms:

– OOP,

– OOA ,

– OOD.

Copywrite ASC 12

OOA and OOD

OOA- Object-Oriented Analysis is a way to analyze a problem.

 OOD- Object-Oriented Design is a way to design a solution.

Both see the world as:• objects and • their relations (behavior, communication).

Copywrite ASC 13

OOA and OOD (cont)

• The way to analyze a problem is to define the objects relevant to it and their behavior.

•  The way to solve a problem is to realize the objects relevant and the behavior we need.

•  Both are useful as preliminary stages in OOP- Object Oriented Programming.

 

Copywrite ASC 14

OOP

Objects are the building blocks of:

the problemthe solutionthe input sourcethe output targetthe environment

Copywrite ASC 15

Objects Objects include both:

• data (fields, variables, state)• processing (behavior, methods, functions)

 

Objects have two kinds of behavior:• outer – I/O, messages, relations with others• inner – processing (usually computing the

messages)

Copywrite ASC 16

Objects (cont) 

• Relations between objects are implemented using communication (messages).

• Communication can have many forms.• Some forms are very different from the usual idea

of a message.• Objects acquire structure using their relations.• The structure is usually tree-like.

Copywrite ASC 17

High-level languages

• Writing programs in machine language is possible but very difficult and time consuming.

• Programs usually written in a more human readable language - high-level language.

• Java is high-level language.• A program written in any computer language must

be translated into a machine language in order to be executed.

Copywrite ASC 18

Translators

• Compiler

• A compiler is a program that translates a source program (usually high level language) into target program (usually machine language program).

• The resulting program can be executed many times.

• Interpreter

• An interpreter is a program that reads, translates and executes the source program statement by statement.

• The translation is done each time the program runs.

Copywrite ASC 19

Java

• Java is a high-level, third generation programming language, like C, Fortran, Smalltalk.

• Shares much of C's syntax.• Designed by a group at Sun MicroSystems.• Originally called Oak.

Copywrite ASC 20

Java advantages

• Platform independent““Write once, run anywhere”.Write once, run anywhere”.

• Improve robustness, remove unsafe language loopholes.

• According to Sun:“ Java is simple, object-oriented, distributed,

interpreted, robust, secure, architecture-neutral, portable, high-performance, multithread, and dynamic language.”

Copywrite ASC 21

Java disadvantages

• The main Java disadvantage:

Efficiency concerns.Efficiency concerns.

Looking to the future:

VM performance will improve.

Copywrite ASC 22

Java environments

• Java has many environments. • The number grows as Java evolves. • Among them are:

• Text applications• Beans• Applets• GUI Applications• Packages

Copywrite ASC 23

Two main environments

The two main environments: Web Browser Operating System

Copywrite ASC 24

Web Browser

• In the browser environment the browser acts as an intermediate between the program and the operating system.

• The JVM resides inside the browser.• The program can be simpler.• The program has to work in graphical mode.• The program is called “Applet” (a small

application).

Copywrite ASC 25

Operating System

• In the operating system environment the program is called “application”.

• Application has a more rigid structure.• Application can be textual or graphical.• Application is less secure.

Copywrite ASC 26

Learning Java The specific challenge is twofold: Learning the language technical aspect: the large

set of • new features • class libraries • classes • methods

which are provided as part of the language. Learning to maximize the benefits of the object-

oriented paradigm.

Copywrite ASC 27

OOA and OOD vs. OOP

OOA is a way of analyzing -

OOD is a way of thinking –

OOP is a way of doing.

OOA is about “why” –

OOD is about “what” –

OOP is about “how”.

Copywrite ASC 28

Starting to Program

• The basic idea of the course is to start programming as soon as possible.

• At first you will have to take a lot of things on trust.

• Promise:

we will return to the details later.we will return to the details later.

Copywrite ASC 29

Java programs

All Java programs have three parts:Auxiliary prescriptions A class – an envelope around the other

components Code per se –

• Optionally – other components which include the instructions themselves

• Instructions to be executed

Copywrite ASC 30

Writing a Java Program

• Use an editor to type the program code.• Save the code file.• Compile the file with Java language compiler.• Fix the bugs!• Run the program.

Copywrite ASC 31

A basic Java Program

// Prints “How are you?” to the screen

class My

{

public static void main (String[] args)

{ System.out.println(“How are you?”);

}

}

Copywrite ASC 32

A basic Java Program

// Prints “How are you?” to the screen

class My

{

public static void main (String[] args)

{ System.out.println(“How are you?”);

}

}

Our program will becalled My

A comment

Copywrite ASC 33

Java program structure

• A Java is made up of one or more classes.• Classes have names.• The ‘My’ program consists of one class named

‘My’.

Copywrite ASC 34

Class structure• A Java class contains one or more methods.• Methods have names too.• The program (the class) has to have a main method.• The method is called (surprisingly) – main.

Copywrite ASC 35

Main• The main method has a standard syntax:

public static void main(String args[])

{ … // your code

}• There can be only one main per file. • The main method contains the code to be executed

when the program runs.

Copywrite ASC 36

Method structure

• A method contains one or more statements.• The main method of My program has a single

statement:

System.out.println(“How are you?”);

Copywrite ASC 37

Stages of Writing and Executing

Assumptions:• Using only the basic JDK software• Assuming the JDK was installed properly• In the WIN/DOS environment• Class name is My• File name is My.java• Directory (folder) name is c:\java

Copywrite ASC 38

Stages of Writing and Executing

1. Open a text editor that can produce a plain text file (such as Notepad).

2. Create a source code file with the extension on the file name being .java . The file has to have the same name as the outer class.

3. Start a the DOS command environment by opening MSDOS prompt (using the

Start->Programs->MSDOS Prompt series of choices).

Copywrite ASC 39

Stages of Writing and Executing

4. Change directory to the directory containing the source file.

5. Compile the file, using the prompt command: javac My.java

6. The result is My.class in the same folder.

7. Run using the prompt command: java My

Copywrite ASC 40

AppletsThe program has to import two packages:• applet.Applet• awtThe program (the class) has to extend the Applet

class, using the following syntax:public class My extends Applet{ // your code}

Copywrite ASC 41

Basic applet code

The final code looks like this:

import java.awt.*;

import java.applet.*;

public class My extends Applet

{

// your code

}

Copywrite ASC 42

Stages of Writing and Executing

• Applet can’t be run directly.• Applet has to be run in Browser and by the

Browser.• Web browser executes web pages.• Web page should call the applet code.

Copywrite ASC 43

Call to applet

The call to applet consist of: – the command APPLET– the name of the applet class– the dimensions of the panel in which the applet

will run

 

Copywrite ASC 44

Example

• Assuming the name of the applet class is HelloWorld.class the call to applet looks like this:

 

<APPLET

CODE = "HelloWorld.class"

WIDTH = 150

HEIGHT= 50>

</APPLET>

Copywrite ASC 45

HTMLThe call to applet has to be in HTML file.The file can look as follows:<HTML><HEAD><TITLE>Java applet test page</TITLE></HEAD><BODY><APPLET

CODE="HelloWorld.class"WIDTH=150

HEIGHT=50></APPLET></BODY></HTML>

Copywrite ASC 46

Execution

Assuming the file is called HelloWorld.html

1. The stages common to all, described above.

2. Open the file HelloWorld.html in the Browser.

Copywrite ASC 47

Java Compiler

• The Java compiler is called javac.• Java programs are compiled to byte code.

Copywrite ASC 48

Byte code

• The Java compiler translates Java program into a special representation called byte code.

• Java byte code is a machine code for Java virtual Machine(JVM).

• VM is a platform-specific tool to interpret the byte code and to translate it to commands for certain processor and OS.

• The use of the byte code makes Java platform independent.

Copywrite ASC 49

Compile-interpret-execute cycle

Java soursecode

Javacompiler

Java bytecode

javac My.java

My.java

My.class

Copywrite ASC 50

Java soursecode

Javacompiler

Java bytecode

Javainterpreter

javac My.java

java My

My.java

My.class

Compile-interpret-execute cycle

Copywrite ASC 51

Errors

• A program can have three types of errors:• Syntax and semantic errors – called compile-

time errors• Run-time errors – occur during program

execution• Logical errors

Copywrite ASC 52

Errors

• Compile-time errors occur during program compilation and an executable version of the program is not created.

• Run-time errors occur during program execution and cause abnormal program termination.

• Logical errors occur during program execution and produce incorrect results.

Copywrite ASC 53

Java Syntax

• To write without syntax mistakes you have to know Java syntax.

SyntaxSyntax - the study of the patterns of formation of sentences and phrases from words and of the rules for the formation of grammatical sentences in a language.

Copywrite ASC 54

Java Syntax

• Case-sensitive• Semi-colon (;) is line terminator• Curly braces ({,}) used for block structure• Several keywords

Copywrite ASC 55

Comments

There are two kinds of comments: •  /* text */ A traditional comment: all the text from

the ASCII characters /* to the ASCII characters */ is ignored.

•  // text  An end-of-line comment: all the text from the ASCII characters // to the end of the line is ignored.

Copywrite ASC 56

Comments

Comments do not nest. • /* and */ have no special meaning in comments

that begin with //. • // has no special meaning in comments that begin

with /* or /**.

 As a result, the text: /* this comment /* // /** ends here: */is a single complete comment.

Copywrite ASC 57

Identifiers

An identifier is:an unlimited-length sequence of Java letters

and Java digits, the first of which must be a Java letter.

 An identifier cannot have the same spelling (Unicode character sequence) as:

• a keyword, • boolean literal, • the null literal

Copywrite ASC 58

Identifiers

• Letters and digits may be drawn from the entire Unicode character set (The character set that uses 16 bit per character).

•  Identifier can be written in most writing scripts in use in the world today, including:

Hebrew,Chinese, Japanese, KoreanPractically all languages

Copywrite ASC 59

Identifiers

• Uppercase and lowercase are different.

All the following are different identifiers:

MY my My mY my1

 

Examples of identifiers are:

String i3

isLetterOrDigit מונה

MAX_VALUE

Copywrite ASC 60

KeywordsThe following are reserved words called keywords

and cannot be used as identifiers:

abstractbooleanbreakbytebyvaluecasecastcatchcharclassconstcontinue

defaultdodoubleelseextendsfalsefinalfinallyfloatforfuturegeneric

gotoifimplementsimportinnerinstanceofintinterfacelongnativenewnull

operatorouterpackageprivateprotectedpublicrestreturnshortstaticsuperswitch

synchronizedthisthrowthrowstransienttruetryvarvoidvolatilewhile

Copywrite ASC 61

Keywords

While true and false might appear to be keywords, they are technically Boolean literals.

Similarly, while null might appear to be a keyword, it is technically the null literal.

Copywrite ASC 62

Any Questions?