Java Programming Review (Part II) Enterprise Systems Programming.
-
Upload
suzan-floyd -
Category
Documents
-
view
215 -
download
0
Transcript of Java Programming Review (Part II) Enterprise Systems Programming.
![Page 1: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/1.jpg)
Java Programming Review(Part II)
Enterprise Systems Programming
![Page 2: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/2.jpg)
Outline Java programs and packages Classes, fields, methods, objects Naming conventions Types, variables, parameters Arrays Inheritance, interfaces Exceptions Files and streams Static fields and methods Java core packages, collection classes Generics, auto-boxing Inner classes
![Page 3: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/3.jpg)
Exceptions Exception: something unexpected that can
occur in the execution of a program wrong number format NullPointerException ArrayIndexOutOfBoundsException divide by zero attempt to open a file that does not exist etc.
Java provides a way to handle exceptions that are thrown: the try-catch statement
![Page 4: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/4.jpg)
The try-catch statementtry
{
statement1;
statement2; // if exception occurs here,
// statement3 will be skipped
statement3;
}
catch ( ExceptionClass e )
{
statement4; // executed after exception occurs
}
![Page 5: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/5.jpg)
ExampleString s;…int convertedValue;try{
convertedValue = Integer.parseInt( s );}catch( NumberFormatException e ){
convertedValue = 0;}// ensures that convertedValue has a value// even if s does not contain a valid number
![Page 6: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/6.jpg)
Some Java Exception classes
Exception
RunTimeException SQLException IOException
ArithmeticExceptionIndexOutOfBounds
ExceptionFileNotFound
Exception
These are built-inException classes
![Page 7: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/7.jpg)
Categories of exceptions Checked
At compile time, the compiler requires you to address these errors
Likely to happen no matter how careful you are in coding
Class will not compile if you have no error handling E.g. IOException and SQLException are checked
Unchecked Class will compile even without error handling Result from mistakes in programming E.g. all RuntimeException classes are unchecked
![Page 8: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/8.jpg)
Throwing your own exceptions Some methods of the classes you write
may result in errors during execution One option: handle the error within that
method by printing an error message Use an if-statement Can be annoying since the user of the method
may get the message interspersed with other output
Better alternative: throw exceptions so that the user of the method can decide how to deal with the error
![Page 9: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/9.jpg)
Throwing your own exceptions in Java Exceptions are thrown from the method
that could cause the exception What needs to be done
Define a class that extends Exception In the method declaration, include a throws
clause In the method body, include a throw
statement where the exception occurs Users of the method now need to use a
try-catch statement
![Page 10: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/10.jpg)
Example
public class Dictionary
{
//…
public void addWord( String word, String definition )
throws DuplicateWordException
{
if ( getDefinition( word ) != null )
throw new DuplicateWordException();
// code to add dictionary entry here…
}
// …
}
public class DuplicateWordException extends Exception
{ // this class could be empty
}
![Page 11: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/11.jpg)
ExampleDictionary d = new Dictionary();
try
{
d.addWord( “bat”, “mammal with wings” );
d.addWord( “cat”, “animal with whiskers” );
d.addWord( “bat”, “equipment used in baseball” );
d.addWord( “elephant”, “a large mammal” );
}
catch( DuplicateWordException e )
{
System.out.println( “Duplicate Word Error” );
}
An exception will be thrown on this call
![Page 12: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/12.jpg)
More on exceptions Can have a more elaborate exception
class by defining exception/error details inside the class; for example: error message additional data about the error
(in the example, the word that causes the duplicate to occur can be stored in the DuplicateWordException class)
Different kinds of exceptions can be handled using a try-catch chain
![Page 13: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/13.jpg)
Try-catch chaintry { … file operations …}catch( FileNotFoundException se ) { … if file is not found …}catch( EOFException ee ){ … if no more data to read …}catch( IOException e ){ … for all other cases not yet
covered …}…
You can use a try-catch chain to catch specific exceptions
Note that in the example the last catch clause handles any kind of IOException
![Page 14: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/14.jpg)
RuntimeException Make the exception class extend
RuntimeException instead of Exception whenever you do not want to require that the exception be caught
The user of the method may or may not use a try-catch statement (try-catch is required for Exceptions)
If not within a try-catch, the program aborts
![Page 15: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/15.jpg)
Ignoring exceptions If you choose to ignore (or not catch)
checked exceptions, you must declare that they will be thrown
In this example, when a file-related exception does occur, a run-time error will result public static void main( String args[] )
throws IOException { … file operations not enclosed in a try-catch statement}
![Page 16: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/16.jpg)
Files and Streams File: Unit of “secondary” storage
as opposed to “primary” storage in memory Stores a sequence of bytes/characters
Stream operations: read from stream, write to stream
Associated with a filename Often organized under a directory hierarchy
Text files and streams: contains readable text
![Page 17: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/17.jpg)
Text files To write to a text file
1. Create it.2. Write to it
(repeatedly).3. Flush it (optional)4. Close it.
To read from a text file
1. Open it.2. Read from it
(repeatedly).3. Close it
Assumes the file exists.
![Page 18: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/18.jpg)
Writing to text files Create the text file
PrintWriter f = new PrintWriter( “filename.txt” ); This opens the file. File is initially empty.
Write to the text file f.println(…); // use like System.out Can be repeated.
Close the file before exiting the program f.close(); // ensures contents are updated
If you want to update the file without closing it yet, you can call f.flush();
![Page 19: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/19.jpg)
Reading from a text file Open the text file
FileReader reader = new FileReader( “file.txt”) Scanner in = new Scanner( reader )
Read from the text file String line = in.nextLine();
Can be repeated.
Close the text file in.close();
![Page 20: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/20.jpg)
The static keyword In Java, the keyword static is used to
indicate that a field or method is at the level of the class
Regular fields and variables reside or operate at the level of objects
![Page 21: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/21.jpg)
Class-level (static) fields and methods Built-in constants or objects
Math.PI, Color.green, System.out Built-in functions
Math.sqrt(), Math.abs(), Integer.parseInt() Static methods
public static void main( String[] args ) Static fields
your own constants public static final int MY_CONSTANT
![Page 22: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/22.jpg)
Static fields means that the field is shared by all
instances of the same class aka class variable as opposed to an
instance variable e.g.,
in BankAccount, balance is aninstance variable – each instance has its own independent copy
However, if all BankAccounts share a minimum balance value, we can make a static field for that
![Page 23: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/23.jpg)
Example: minimum balance
SV129 SV506 SV008
balance balance balance908.55 1304.98 354.00
minBalance
100.00
There is one copy of minBalance for the whole class and shared by all instances.
There is one copy of minBalance for the whole class and shared by all instances.
The BankAccountclass
instances of the BankAccount class
![Page 24: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/24.jpg)
Static methods Normally, a method applies to a particular
instance b.deposit( 100); deposits 100 to a particular object
(pointed to by variable b) A static method is a method that does not
operate on a particular instance That’s why we call them using
ClassName.methodName() It is not meant be invoked on an instance. It belongs to the
class. Useful for functions
e.g., Math.sqrt( double d ) Note: these methods cannot refer to instance variables
can only use static fields and methods
![Page 25: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/25.jpg)
Some Java core packages java.lang – basic classes (no need to import) java.util – data structure and collection classes java.io – files and streams java.math – math functions java.net – networking java.sql – JDBC java.awt – abstract windowing toolkit (GUI) javax.swing – platform-independent GUI
Use javap java.packagename.ClassName to print class details
![Page 26: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/26.jpg)
Generics Generics allow container/collection classes
to be type specific Less used alternative: contents are of type
Object, the topmost class in Java Example: array lists
ArrayList<BankAccount> accounts;words.add( new BankAccount( 1000 ) );System.out.println( s.get( 0 ).getBalance() );
Parameter to add() must be a BankAccount object
![Page 27: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/27.jpg)
Wrapper classes and auto-boxing Each of the primitive types have corresponding
wrapper classes containing single fields of that primitive type int => Integer, double => Double, … If you need objects/object references instead of regular
values, use these wrapper classes Example: ArrayList<int> numbers; is not allowed
but ArrayList<Integer> numbers; is fine Auto-boxing makes use of wrapper classes more
convenient: numbers.add( 1 );instead of numbers.add( new Integer( 1 ) );
![Page 28: Java Programming Review (Part II) Enterprise Systems Programming.](https://reader035.fdocuments.in/reader035/viewer/2022062805/5697bfc21a28abf838ca4de1/html5/thumbnails/28.jpg)
Inner classes In general, only one Java class is defined in a
single .java file The hard rule: A .java file must contain exactly
one public class Non-public classes can be defined in the same
file, for use inside the file only Inner classes: classes defined inside a class or
inside methods of the class Restricts use of these classes to a particular scope Anonymous classes: some inner classes don’t need
even have to be named, although instances may be created