CSC 224 Java for Programmers

43
CSC 224 Java for Programmers Winter 2002 (2002/01/07 -- 2002/03/13) Monday/Wednesday 3:10 -- 4:40 pm Instructor: John Petlicki Office hours: Monday and Wednesday 1:30 – 3:00 pm (CST Building) E-mail: jpetlick @condor. depaul . edu Home page: http://www. depaul . edu /~ jpetlick

description

CSC 224 Java for Programmers. Winter 2002 (2002/01/07 -- 2002/03/13) Monday/Wednesday 3:10 -- 4:40 pm Instructor: John Petlicki Office hours: Monday and Wednesday 1:30 – 3:00 pm (CST Building) E-mail: [email protected] Home page: http://www.depaul.edu/~jpetlick. Review of Resources. - PowerPoint PPT Presentation

Transcript of CSC 224 Java for Programmers

Page 1: CSC 224 Java for Programmers

CSC 224 Java for Programmers

Winter 2002 (2002/01/07 -- 2002/03/13) Monday/Wednesday 3:10 -- 4:40 pm

Instructor: John PetlickiOffice hours: Monday and Wednesday

1:30 – 3:00 pm (CST Building) E-mail: [email protected]

Home page: http://www.depaul.edu/~jpetlick

Page 2: CSC 224 Java for Programmers

Review of Resources

CD-ROM of "Java Software Solutions" contains: Java(TM) 2 SDK, Standard Edition (for

Microsoft Windows) Forte for Java Community Edition (for

Microsoft Windows) Slides in PowerPoint 97 format Keyboard materials Example programs

Page 3: CSC 224 Java for Programmers

Characteristics of Java

Simple Object-oriented Strongly typed Interpreted Architecture neutral

Garbage collected Multithreaded Robust Secure Portable

Page 4: CSC 224 Java for Programmers

Simple

Many programmers are already familiar with Java syntax (borrowed from C and C++).Difficult aspects of C++ are removed. No header files No pointer arithmetic (pointer Syntax) No structures or unions No operator overloading No virtual base classes Etc.

Page 5: CSC 224 Java for Programmers

Object-oriented

A technique of developing programs by creating entities that contain logically related data and methods that interface to the data

Page 6: CSC 224 Java for Programmers

Strongly typed

Every variable must have a declared type. Java has eight primitive types

4 types of integers 2 types of floating numbers 1 character type (for Unicode characters) 1 boolean type for truth values

Page 7: CSC 224 Java for Programmers

Interpreted

The Java source code is compiled into Java bytecode. The Java interpreter can execute Java bytecodes on any machine to which the interpreter has been ported.

Page 8: CSC 224 Java for Programmers

Architecture neutral

Java bytecode can be run on many different processors. Bytecode

is not dependent on the machine code of any particular computer.

is designed to be easily translated into the native machine code of any machine.

Page 9: CSC 224 Java for Programmers

Garbage Collected

The programmer does not have to explicitly return allocated memory to the system. Java performs automatic garbage collection when object references are lost.

Page 10: CSC 224 Java for Programmers

Multithreaded

A program can be designed as multithreaded in order to perform multiple tasks at the same timeCan take advantage of multiprocessor systems

Page 11: CSC 224 Java for Programmers

Robust

Emphasis on early checking of possible problems.Dynamic run-time checking.Eliminate situations that are error-prone Pointer model eliminates possibility of

overwriting memory and corrupting data

Page 12: CSC 224 Java for Programmers

Secure

Security features Java will not corrupt memory outside

its own process space. Web browser can prevent Java

applets from reading or writing local files

And more

Page 13: CSC 224 Java for Programmers

Portable

The size of primitive data types and the behavior of arithmetic on them is specified and constant. The libraries have portable interfaces – the abstract Window class has implementations for UNIX, Windows and Macintosh.

Page 14: CSC 224 Java for Programmers

A Java Program/* * Example HelloWorld.java * Prints the message "Hello, World!“ */public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world.”); }}

Page 15: CSC 224 Java for Programmers

Java programming steps

Create a source code program with a text editor (HelloWorld.java)

Compile the source code into Java bytecode (javac HelloWorld.java)

Run the bytecode with a Java interpreter (java HelloWorld) Java interpreters translate bytecode

instruction to machine code and then carry out the instruction.A compiler and interpreter are in the Java 2

SDK (Software Development Kit )

Page 16: CSC 224 Java for Programmers

Installing JDK 1.3

For Microsoft Windows platform, run the executable j2sdk1_3 file on the CD For other platforms other than Microsoft Windows, obtain the SDK directly from Sun, at www.java.sun.com

Page 17: CSC 224 Java for Programmers

Java Development Environments

DOS command line interface basic with SDK 2. (javac, java)

Forte -- heavyweight IDE forte_ce_2.exe on the CD ROM

Bluej – lightweight IDE Download from www.bluej.org

And others

Page 18: CSC 224 Java for Programmers

Installing Bluej (optional)

Be sure the JDK is installedDownload from http://www.bluej.org/Download the Bluej tutorialFollow the installation instructions

Page 19: CSC 224 Java for Programmers

Java Basics

Program structureNaming conventionsPackageIdentifiersReserved wordsData typesType conversionsArithmetic operators and expressionsVariable declaration and initializationAssignments

Page 20: CSC 224 Java for Programmers

Packages

Java provides mechanisms to organize large-scale programs in a logical and maintainable fashion. Class --- highly cohesive functionalities File --- one class or more closely

related classes Package --- a collection of related

classes or packages

Page 21: CSC 224 Java for Programmers

Java Class Library

The Java class library is organized into a number of packages: java.lang --- general java.awt --- GUI java.io --- I/O java.util --- utilities java.applet --- applet java.net --- networking

Page 22: CSC 224 Java for Programmers

Example using import

// Example Time// Prints a greeting message with // the current time. import java.util.*; public class Time { public static void main(String[] args) { System.out.println("Hello!”); System.out.println("The time is " + new Date()); } }

Page 23: CSC 224 Java for Programmers

Fully qualified class name

public class Time1

{

public static void main(String[] args)

{

System.out.println("Hello!");

System.out.println("The time is "

+ new java.util.Date());

}

}

Page 24: CSC 224 Java for Programmers

Java Reserved Words

abstractbooleanbreakbytebyvaluecasecastcatchcharclassconstcontinue

defaultdodoubleelseextendsfalsefinalfinallyfloatforfuturegeneric

gotoifimplementsimportinnerinstanceofintinterfacelongnativenewnull

operatorouterpackageprivateprotectedpublicrestreturnshortstaticsuperswitch

synchronizedthisthrowthrowstransienttruetryvarvoidvolatilewhile

Page 25: CSC 224 Java for Programmers

Identifiers

are the words a programmer creates in a programmade up of letters, digits, underscore character (_), and the dollar signcannot begin with a digitJava is case sensitive, therefore Total and total are different identifiers

Page 26: CSC 224 Java for Programmers

White SpaceSpaces, blank lines, and tabs are collectively called white spaceWhite space is used to separate words and symbols in a programExtra white space is ignoredA valid Java program can be formatted many different waysPrograms should be formatted to enhance readability, using consistent indentation

Page 27: CSC 224 Java for Programmers

VariablesA variable is a name for a location in memoryA variable must be declared, specifying the variable's name and the type of information that will be held in it

data typedata type variable namevariable name

int total;

int count, temp, result;

Multiple variables can be created in one declarationMultiple variables can be created in one declaration

Page 28: CSC 224 Java for Programmers

VariablesA variable can be given an initial value in the declaration

int sum = 0;

int base = 32, max = 149;

When a variable is referenced in a program, its current value is usedWhen a variable is referenced in a program, its current value is used

Page 29: CSC 224 Java for Programmers

Data TypesType

byteshortintlong

float

Double

Storage

8 bits16 bits32 bits64 bits

32 bits

64 bits

Min Value

-128-32,768-2,147,483,648< -9 x 1018

+/- 3.4 x 1038 with 7 significant digits+/- 1.7 x 10308 with 15 significant digits

Max Value

12732,7672,147,483,647> 9 x 1018

Page 30: CSC 224 Java for Programmers

Boolean Type

boolean boolean constants:

true false

Page 31: CSC 224 Java for Programmers

Character Type

char 16-bit Unicode character. ASCII is a subset of Unicode --- ISO-8859 (Latin-1) Examples of character constants: 'A' 'y' '8' '*' ' ' (space) '\n' (new line).

Page 32: CSC 224 Java for Programmers

Escape Sequences 

\b  backspace

\f  form feed

\n  new line (line feed)

\r  carriage return

\t  tab

\"  double quote

\'  single quote

\\  backslash

\uhhhh: hex-decimal code, e.g. \u000A\ddd: octal code, e.g. \040

Page 33: CSC 224 Java for Programmers

Data ConversionsSometimes it is convenient to convert data from one type to anotherFor example, we may want to treat an integer as a floating point value during a computationConversions must be handled carefully to avoid losing informationWidening conversions are safest because they tend to go from a small data type to a larger one (such as a short to an int)Narrowing conversions can lose information because they tend to go from a large data type to a smaller one (such as an int to a short)

Page 34: CSC 224 Java for Programmers

Data Conversions

In Java, data conversions can occur in three ways: assignment conversion arithmetic promotion casting

Assignment conversion occurs when a value of one type is assigned to a variable of anotherOnly widening conversions can happen via assignment

Arithmetic promotion happens automatically when operators in expressions convert their operands

Page 35: CSC 224 Java for Programmers

Data Conversions

Casting is the most powerful, and dangerous, technique for conversionBoth widening and narrowing conversions can be accomplished by explicitly casting a valueTo cast, the type is put in parentheses in front of the value being convertedFor example, if total and count are integers, but we want a floating point result when dividing them, we can cast total:

result = (float) total / count;

Page 36: CSC 224 Java for Programmers

Legal data conversion(No Information Loss)

Page 37: CSC 224 Java for Programmers

String -- a class type

Examples of string literals: "watermelon" "fig" "$%&*^%!!" "354" " " (space) "" (empty string)

Constructor String name = new String(“John”); Concatenation operator + methods: (page 75) charAt(int i) length()

Page 38: CSC 224 Java for Programmers

Arithmetic Operators and Expressions

+  addition -  subtraction *  multiplication /  division %  remainder precedence and association

Page 39: CSC 224 Java for Programmers

Example Time2

import java.util.*; public class Time2 { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); System.out.println("The time is " + hour + ":" + minute + ":" + second); System.out.println("The time is " + hour / 10 + hour % 10 + ":" + minute / 10 + minute % 10 + ":" + second / 10 + second % 10); } }

Page 40: CSC 224 Java for Programmers

Variable declaration / initialization

int x, y, z; long count; char a, b; boolean flag; float massInKilos;

short timeInSeconds = 245; char ch1 = 'K', ch2 = '$'; boolean isNew = true; double maxVal = 35.875;

Page 41: CSC 224 Java for Programmers

Assignments

total = quantity * unitPrice; count = count + 1; count += 1; count++;

Page 42: CSC 224 Java for Programmers

Constantsan identifier that is similar to a variable except that it holds one value for its entire existenceThe compiler will issue an error if you try to change a constantIn Java, we use the final modifier to declare a constant

final int MIN_HEIGHT = 69;

Constants: give names to otherwise unclear literal values facilitate changes to the code prevent inadvertent errors

Page 43: CSC 224 Java for Programmers

Operator Precedence

What is the order of evaluation in the following expressions?

a + b + c + d + e1 432

a + b * c - d / e3 241

a / (b + c) - d % e2 341

a / (b * (c + (d - e)))4 123