csc 224 java for programmers winter 2002 (2002/01/07 -- 2002/03/13) monday/wednesday 3:10 -- 4:40 pm...
Post on 19-Dec-2015
215 views
TRANSCRIPT
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
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
Characteristics of Java
Simple Object-oriented Strongly typed Interpreted Architecture neutral
Garbage collected Multithreaded Robust Secure Portable
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.
Object-oriented
A technique of developing programs by creating entities that contain logically related data and methods that interface to the data
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
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.
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.
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.
Multithreaded
A program can be designed as multithreaded in order to perform multiple tasks at the same timeCan take advantage of multiprocessor systems
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
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
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.
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.”); }}
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 )
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
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
Installing Bluej (optional)
Be sure the JDK is installedDownload from http://www.bluej.org/Download the Bluej tutorialFollow the installation instructions
Java Basics
Program structureNaming conventionsPackageIdentifiersReserved wordsData typesType conversionsArithmetic operators and expressionsVariable declaration and initializationAssignments
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
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
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()); } }
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());
}
}
Java Reserved Words
abstractbooleanbreakbytebyvaluecasecastcatchcharclassconstcontinue
defaultdodoubleelseextendsfalsefinalfinallyfloatforfuturegeneric
gotoifimplementsimportinnerinstanceofintinterfacelongnativenewnull
operatorouterpackageprivateprotectedpublicrestreturnshortstaticsuperswitch
synchronizedthisthrowthrowstransienttruetryvarvoidvolatilewhile
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
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
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
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
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
Boolean Type
boolean boolean constants:
true false
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).
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
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)
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
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;
Legal data conversion(No Information Loss)
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()
Arithmetic Operators and Expressions
+ addition - subtraction * multiplication / division % remainder precedence and association
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); } }
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;
Assignments
total = quantity * unitPrice; count = count + 1; count += 1; count++;
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
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