Download presentation
Presentation is loading. Please wait.
Published byBryce Cameron Modified over 9 years ago
1
Rina Zviel-Girshin @ASC1 System development with Java Instructors: Rina Zviel-Girshin Interdiciplinary Center Herzlia School of the Computer Science Fall: 2001-2002
2
Rina Zviel-Girshin @ASC2 Information Source Course site : www.idc.ac.il/ Course book: Java Software Solutions /Lewis & Loftus Thinking in Java / Bruce Eckle
3
Rina Zviel-Girshin @ASC3 Course Methodology Non-Linearity Spiral model Hypermedia CAI – Computer Assisted Instruction Interactive learning Labs and programming Multi-approach: inductive-deductive trails
4
Rina Zviel-Girshin @ASC4 Programming Languages and Java Programming languages Java language The basic program Java syntax
5
Rina Zviel-Girshin @ASC5 Programming The process of writing programs called a programming. The process requires: Programming language A translator of the programming language into machine language Programs are written in programming language.
6
Rina Zviel-Girshin @ASC6 Syntax Syntax describes the grammatical rules of a language. Valid words Valid grammar constructions Valid punctuation Programs must be syntactically correct.
7
Rina Zviel-Girshin @ASC7 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.
8
Rina Zviel-Girshin @ASC8 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.
9
Rina Zviel-Girshin @ASC9 Programming languages There are several families of the programming languages: Procedural ( Pascal, C++, Java) Logical ( Prolog) Visual ( Visual Basic) Document (HTML, LATEX)
10
Rina Zviel-Girshin @ASC10 Programming languages Procedural languages can be divided into: Machine languages Low-level (Assembler ) Intermediate-level (C) High-Level (C++, Java)
11
Rina Zviel-Girshin @ASC11 Java Java is high-level language. Java is object oriented language. In this course we will use the terms: – OOP, – OOA, – OOD.
12
Rina Zviel-Girshin @ASC12 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).
13
Rina Zviel-Girshin @ASC13 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.
14
Rina Zviel-Girshin @ASC14 OOP Objects are the building blocks of: the problem the solution the input source the output target the environment
15
Rina Zviel-Girshin @ASC15 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)
16
Rina Zviel-Girshin @ASC16 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.
17
Rina Zviel-Girshin @ASC17 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.
18
Rina Zviel-Girshin @ASC18 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.
19
Rina Zviel-Girshin @ASC19 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.
20
Rina Zviel-Girshin @ASC20 Java advantages Platform independent “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.”
21
Rina Zviel-Girshin @ASC21 Java disadvantages The main Java disadvantage: Efficiency concerns. Looking to the future: VM performance will improve.
22
Rina Zviel-Girshin @ASC22 Java environments Java has many environments. The number grows as Java evolves. Among them are: Text applications Beans Applets GUI Applications Packages
23
Rina Zviel-Girshin @ASC23 Two main environments The two main environments: Web Browser Operating System
24
Rina Zviel-Girshin @ASC24 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).
25
Rina Zviel-Girshin @ASC25 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.
26
Rina Zviel-Girshin @ASC26 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.
27
Rina Zviel-Girshin @ASC27 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.
28
Rina Zviel-Girshin @ASC28 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
29
Rina Zviel-Girshin @ASC29 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.
30
Rina Zviel-Girshin @ASC30 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?”); }
31
Rina Zviel-Girshin @ASC31 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?”); }
32
Rina Zviel-Girshin @ASC32 Java program structure A Java program is made up of one or more classes. Classes have names. The ‘My’ program consists of one class named ‘My’.
33
Rina Zviel-Girshin @ASC33 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.
34
Rina Zviel-Girshin @ASC34 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.
35
Rina Zviel-Girshin @ASC35 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?”);
36
Rina Zviel-Girshin @ASC36 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
37
Rina Zviel-Girshin @ASC37 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).
38
Rina Zviel-Girshin @ASC38 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
39
Rina Zviel-Girshin @ASC39 Applets The program has to import two packages: applet.Applet awt The program (the class) has to extend the Applet class, using the following syntax: public class My extends Applet { // your code }
40
Rina Zviel-Girshin @ASC40 Basic applet code The final code looks like this: import java.awt.*; import java.applet.*; public class My extends Applet { // your code }
41
Rina Zviel-Girshin @ASC41 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.
42
Rina Zviel-Girshin @ASC42 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
43
Rina Zviel-Girshin @ASC43 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>
44
Rina Zviel-Girshin @ASC44 HTML The call to applet has to be in HTML file. The file can look as follows: Java applet test page <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=50>
45
Rina Zviel-Girshin @ASC45 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.
46
Rina Zviel-Girshin @ASC46 Java Compiler The Java compiler is called javac. Java programs are compiled to byte code.
47
Rina Zviel-Girshin @ASC47 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.
48
Rina Zviel-Girshin @ASC48 Compile-interpret-execute cycle
49
Rina Zviel-Girshin @ASC49 Compile-interpret-execute cycle
50
Rina Zviel-Girshin @ASC50 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
51
Rina Zviel-Girshin @ASC51 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.
52
Rina Zviel-Girshin @ASC52 Java Syntax To write without syntax mistakes you have to know Java syntax. Syntax Syntax - 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.
53
Rina Zviel-Girshin @ASC53 Java Syntax Case-sensitive Semi-colon (;) is line terminator Curly braces ({,}) used for block structure Several keywords
54
Rina Zviel-Girshin @ASC54 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.
55
Rina Zviel-Girshin @ASC55 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.
56
Rina Zviel-Girshin @ASC56 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
57
Rina Zviel-Girshin @ASC57 Unicode 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, Korean Practically all languages
58
Rina Zviel-Girshin @ASC58 Identifiers examples Uppercase and lowercase are different. All the following are different identifiers: MYmyMymYmy1 Examples of identifiers are: Stringsi3 isLetterOrDigit מונה MAX_VALUE
59
Rina Zviel-Girshin @ASC59 Keywords The following are reserved words called keywords and cannot be used as identifiers: abstract boolean break byte byvalue case cast catch char class const continue default do double else extends false final finally float for future generic goto if implements import inner instanceof int interface long native new null operator outer package private protected public rest return short static super switch synchronized this throw throws transient true try var void volatile while
60
Rina Zviel-Girshin @ASC60 True, False, Null 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.
61
Rina Zviel-Girshin @ASC61 Literals A literal is a source code representation of a value of: a primitive type, the String type, the null type Kinds of Literals: IntegerLiteralFloatingPointLiteral BooleanLiteralCharacterLiteral StringLiteralNullLiteral
62
Rina Zviel-Girshin @ASC62 Integer Literals An integer literal may be expressed in: decimal (base 10), hexadecimal (base 16), octal (base 8)
63
Rina Zviel-Girshin @ASC63 Hexadecimal numeral A hexadecimal numeral consists of the leading characters 0x or 0X followed by one or more hexadecimal digits. It can represent a positive, zero, or negative integer. Hexadecimal digits with values 10 through 15 are represented by the letters a through f or A through F, respectively. HexDigit is one of: 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
64
Rina Zviel-Girshin @ASC64 Octal numeral An octal numeral consists of a digit 0 followed by one or more of the digits 0 through 7. It can represent a positive, zero, or negative integer. Octal numerals always consist of two or more digits.
65
Rina Zviel-Girshin @ASC65 Example Examples of int literals: 020372 0xDadaCafe1996 0x00FF00FF the same number in decimal octal hexadecimal: 3 03 0x3 15017 0xF
66
Rina Zviel-Girshin @ASC66 Zero 0 is always considered to be a decimal numeral. The numerals 0, 00, and 0x0 all represent exactly the same integer value – zero value.
67
Rina Zviel-Girshin @ASC67 Floating-Point Literals A floating-point literal has the following parts: a whole-number part, a decimal point (represented by an ASCII period character), a fractional part, an exponent (is indicated by a letter e or E followed by an optionally signed integer), and a type suffix. At least one digit, in either the whole number or the fraction part, and either a decimal point, an exponent, or a float type suffix are required. All other parts are optional.
68
Rina Zviel-Girshin @ASC68 Floating-Point Literals A floating-point literal is of type float if it is suffixed with an ASCII letter F or f; otherwise its type is double and it can optionally be suffixed with an ASCII letter D or d. Examples of float literals: 1e1f 2.f.3f0f3.14f6.022137e+23f
69
Rina Zviel-Girshin @ASC69 Boolean Literals The boolean type has two values, represented by the literals true and false A boolean literal is always of type boolean. BooleanLiteral is one of: true false
70
Rina Zviel-Girshin @ASC70 Character Literals A character literal is expressed as a character or an escape sequence, enclosed in single quotes. A character literal is always of type char. Examples of char literals: 'a‘ '%‘'\t‘'\\‘'\u03a9‘ '\uFFFF‘'\177'
71
Rina Zviel-Girshin @ASC71 String Literals A string literal consists of zero or more characters enclosed in double quotes. A string literal is always of type String. Examples of string literals: ""// the empty string "This is a string"// a string containing 16 characters "This is a " + // actually a string-valued constant expression, "two-line string" //formed from two string literals
72
Rina Zviel-Girshin @ASC72 Escape Sequences for Character and String Literals Escape Sequence: \ b/* \u0008: backspace BS */ \ t/* \u0009: horizontal tab HT */ \ n/* \u000a: linefeed LF */ \ f/* \u000c: form feed FF */ \ r/* \u000d: carriage return CR */ \ "/* \u0022: double quote " */ \ '/* \u0027: single quote ' */ \ \/* \u005c: backslash \ */
73
Rina Zviel-Girshin @ASC73 The Null Literal The null type has one value, the null reference, represented by the literal null, which is formed from ASCII characters. A null literal is always of the null type.
74
Rina Zviel-Girshin @ASC74 Separators The following nine ASCII characters are the separators (punctuators): () {} [] ;,.
75
Rina Zviel-Girshin @ASC75 Operators The following 37 tokens are the operators, formed from ASCII characters: = ><!~?: == =!=&&||++ --+-*/&| ^% >>>>+=-= *=/=&=|=^=%=
76
Rina Zviel-Girshin @ASC76 Programming style Java is a free-format language. There are no syntax rules about how the program has to be arranged on a page. You can write entire program in one line. But as a matter of good programming style, you should lay out your program on the page in a way that will make its structure as clear as possible.
77
Rina Zviel-Girshin @ASC77 Programming style Some advises: Put one statement per line. Use indentation to indicate statements that are contained inside control structures. Write comments. Give your variables names that make sense.
78
Rina Zviel-Girshin @ASC78 Style Example Bad: public class Stam { public static void main(String args[]){ System.out.println("Hello!“);}} Better: // style example – outputs “Hello!” public class Hello { public static void main(String args[]) { System.out.println("Hello!"); }
79
Rina Zviel-Girshin @ASC79 Any Questions?
80
Rina Zviel-Girshin @ASC80 Any Questions?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.