Copyright © 2002 ProsoftTraining. All rights reserved. Java Programming Fundamentals.
Transcript of Copyright © 2002 ProsoftTraining. All rights reserved. Java Programming Fundamentals.
Copyright © 2002 ProsoftTraining. All rights reserved.
Java Programming Fundamentals
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 1:Java Runtime Environment
Objectives
• Identify the differences between stand-alone applications and applets
• Describe the role of the Java Virtual Machine• Create a simple Java program• Use Java comments• Compile and execute a Java program• Describe the differences between *.java and *.class files
The Java Virtual Machine
• Stand-alone applications• Applets• Classes• Methods• Bytecode
Java Comments
• Single-line comment• Multiline comment• Javadoc comment
Summary
Identify the differences between stand-alone applications and applets
Describe the role of the Java Virtual Machine Create a simple Java program Use Java comments Compile and execute a Java program Describe the differences between *.java and *.class files
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 2:Data Types,
Variables and Operators
Objectives
• Use primitive data types• Declare a variable• Distinguish between local and class variables• Distinguish between implicit and explicit
casting• Use the operators for primitive types
Data Types
• Primitives– Integers– Floating-point numbers– Character– Boolean
Declaring Variablesand Variable Scope
• Types– Local– Instance– Class
• Default variable values• Variable declaration and initialization• Casting
– Implicit– Explicit
Casting Rules Chart
byte short int long float double
char
Operators
• Arithmetic operators• Relational operators• Logical operators
– Short-circuit• Bitwise operators
AutomaticCasting
• Java automatically casts– bytes or shorts ints– floats doubles
Summary
Use primitive data types Declare a variable Distinguish between local and class variables Distinguish between implicit and explicit
casting Use the operators for primitive types
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 3:Control
Statements
Objectives
• Explain the block structure of Java• Use Java conditional statements• Use Java iterative statements
Code Blocks
• Used to group the contents of a class or a method
• Used to designate all conditional and iterative statements
• Used for exception handling
Conditional Statements
• if statement
• switch/case statement– break statement
Iterative Statements (Loops)
• while loop (entry condition loop)• do while loop (exit condition loop)• for loop• Nested loops (break and continue)
Summary
Explain the block structure of Java Use Java conditional statements Use Java iterative statements
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 4:Methods
Objectives
• Create and use static methods• Return a value from a method• Explain pass by value• Describe overloading methods• Identify the method signature
JavaMethods
• The executable part of a class– Member
Return Statement
• Data types• Void
Calling a Method
• Parameters• Literals
Pass by Value
• A copy of the value of the variable is available to the method; changes to the copy do not affect the original value
Overloading
• Method signature– Name– Parameter list
• Does not include return type
Summary
Create and use static methods Return a value from a method Explain pass by value Describe overloading methods Identify the method signature
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 5:Arrays
Objectives
• Declare and initialize an array• Allocate space for a new array• Describe array indexing• Use the length property• Discuss why arrays are passed by reference• Discuss Java’s garbage collection mechanism• Retrieve command line parameters
What Is an Array?
• Collection of same type• Non-primitive data type
Initializing an Array
• Allocation• Reference• Index
Objects
• Properties• Methods
Using an Array
• length property
1
0
3
1
5
2
MyIntArray
tmpIntArray
Passing an Array to a Method
Garbage Collection
• Variable name reuse• Memory leak
Command Line Parameters
• Always String type data
Summary
Declare and initialize an array Allocate space for a new array Describe array indexing Use the length property Discuss why arrays are passed by reference Discuss Java’s garbage collection mechanism Retrieve command line parameters
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 6:Classes
and Objects
Objectives
• Identify the parts of an object• Create and use instance members• Distinguish between instance and class
members• Define abstraction• Create object references
Object-Oriented Programming
• Refers to the creation of a number of objects that communicate with one another
What Isan Object?
• Instantiation• The new keyword
Instance andClass Members
• Class members– The exception in Java
• Instance members– The rule in Java
• Accessing instance members– Dot notation
• Accessing class members
Abstraction
• What does the object do versus how does it do it?
• Functionality versus implementation
Object References
rachael
tmpEmp
name: "Rachael"dept: "Accounting"salary: 52000
tmpEmp variable
Summary
Identify the parts of an object Create and use instance members Distinguish between instance and class
members Define abstraction Create object references
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 7:Inheritance
Objectives
• Create a new class using inheritance• Create an overridden method
What Is Inheritance?
• Code reuse• Using inheritance
– extends keyword– subclass– superclass– Multiple inheritance
Overriding Methods
• Same signature as the superclass• super.method()
Summary
Create a new class using inheritance Create an overridden method
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 8:Constructors
Objectives
• Use the default constructor• Create a constructor to initialize instance
variables• Call other constructors from the same class
and the parent class• Create a no-arguments constructor• Discuss String characteristics and define the
common methods of String
What Is a Constructor?
• new keyword• Similarities to methods
– Initialization of object– Pass parameters
• Differences from methods– Same name as class– No return type
• Callback
Using Constructors
• Default constructor– No arguments– Must be explicitly created if there are any
other constructors• Overloading constructors
– Unique parameter types
The Keyword this
• this() as a constructor• Avoiding namespace conflicts• The super keyword
Constructors and Callbacks
• Constructors are a major facilitator in establishing interobject communication
Strings and StringBuffer
• String constructors• String characteristics• Methods of String• StringBuffer
Summary
Use the default constructor Create a constructor to initialize instance
variables Call other constructors from both the same
class and the parent class Create a no-arguments constructor Discuss String characteristics and define the
common methods of String
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 9:Interfaces and Abstract Classes
Objectives
• Define and use interfaces• Define polymorphism• Use abstract classes• Create an abstract method
What Is an Interface?
• Contents of an interface– Abstract methods– Final variables
• Interface functions– Decoupling objects– Providing data type
Polymorphism
• Using one method name to invoke many different methods
What Is an Abstract Class?
• Cannot be instantiated• Can be used for a type
Summary
Define and use interfaces Define polymorphism Use abstract classes Create an abstract method
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 10:Packages and Access Modifiers
Objectives
• Compile and run a class with packages• Identify the packages in the Java 2 API• Identify the various access levels in Java• Describe how access modifiers can be used to
set the access level of a variable, method or class
• Describe the object-oriented programming principle of encapsulation
• Identify accessor and mutator methods
Packages and Access Modifiers
• Packages– import statement
• Access modifiers– public– protected– package– private
Java 2 Application Programming Interface
• Organized into packages such as– java.lang– java.awt– java.io– java.util– java.net
Encapsulation
• Accessor– Method that reads a variable
• Mutator– Wrapping variables and methods together
ObjectEncapsulation
Data 1Data 2Data 3Data 4
Summary
Compile and run a class with packages Identify the packages in the Java 2 API Identify the various access levels in Java Describe how access modifiers can be used to
set the access level of a variable, method or class
Describe the object-oriented programming principle of encapsulation
Identify accessor and mutator methods
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 11:Swing Components
Objectives
• Distinguish between the AWT and Swing• Identify the general organization of the Swing
class structure• Define and use Swing widgets and containers
What Is the AWT?
• Heavyweight components– Peer components
• AWT 1.0– Container propagation– Single-method event-handling
• AWT 1.1– New event model
What Is Swing?
• Lightweight components– No peer components– All Java
• Customizable• Model View Controller (MVC) programming
paradigm• Included in Java 2 (JDK 1.2)
Basic Swing Components
• JComponent• JLabel• JButton• JTextField• JTextArea• JScrollBar
• ImageIcon• JScrollPane• JPanel• JFrame• JFileChooser• JApplet
Graphical Widgets
• The graphical components with which users interact– JButton– JLabel– JScrollBar
SwingContainers
• Two types– Top level (includes JFrame, Window)– Lower level (includes JPanel, JScrollPane)
Summary
Distinguish between the AWT and Swing Identify the general organization of the Swing
class structure Define and use Swing widgets and containers
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 12:Layout Managers
Objectives
• Define a layout manager• Set a layout manager for a Container• Effectively use FlowLayout, GridLayout, BorderLayout and BoxLayout
• Nest containers and layout managers to form more complex GUI layouts
• Separate a complex design into its component containers and layout managers
What Is a Layout Manager?
• FlowLayout• GridLayout• BorderLayout• BoxLayout• CardLayout
• GridBagLayout• GridLayout• OverlayLayout• ScrollPaneLayout• ViewportLayout
FlowLayout
• Centers components on each line in a flowing manner
GridLayout
• Adds components in a gridlike format
BorderLayout
CENTER
EAST
WEST
SOUTH
NORTH
BoxLayout
• Allows either a horizontal or a vertical layout of components
CombiningLayouts
Button 1
Button 2
Button 3
Button 4
Summary
Define a layout manager Set a layout manager for a Container Effectively use FlowLayout, GridLayout, BorderLayout and BoxLayout
Nest containers and layout managers to form more complex GUI layouts
Separate a complex design into its component containers and layout managers
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 13:Graphics in Java
Objectives
• Identify the AWT class structure for graphics• Gain access to a container’s graphic context
by overriding the paint(Graphics g) method
• Use methods of the Graphics class via the graphics context
• Effectively use the Color and Font classes
Graphics Class
• The graphics context is used to access the functionality of the Graphics class (an abstract class)
Graphics Class Methods
• draw3DRect()• drawArc()• drawLine()• drawOval()• drawPolygon()• drawPolyline()• drawRect()
• drawRoundRect()• fill3DRect()• fillArc()• fillOval()• fillPolygon()• fillRect()• fillRoundRect()
Other Classes
• Color setColor()• Font setFont()
– FontMetrics
Summary
Identify the AWT class structure for graphics
Gain access to a container’s graphic context by overriding the paint(Graphics g) method
Use methods of the Graphics class via the graphics context
Effectively use the Color and Font classes
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 14:The Event
Delegation Model
Objectives
• Describe the event delegation model• Create listener classes that can respond to
events• Register listener classes with their Component sources
• Capture events and deal with them in meaningful ways
What Is an Event?
• What caused the event?• What was the exact nature of the event?• Is additional information available about
the event?
JDK 1.0 Event Handling
• Tightly coupled with the AWT• Inefficient• General• Unruly• Code and event handling could not be
separated
SDK 1.2 Event Handling
• Generating the event object• Sending the event object to the listener• Preparing the listener to receive the event• Example: Creating a closeable JFrame• JFrame convenience methods for event
handling• Example: Event handling and callbacks
Summary
Describe the event delegation model Create listener classes that can respond to
events Register listener classes with their Component sources
Capture events and deal with them in meaningful ways
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 15:Inner Classes
Objectives
• Define an inner class• Recognize the advantages of inner classes
over package-level classes in relation to event handling
• Design and implement inner classes for event handling
What Is an Inner Class?
• A class defined within other classes• Introduced with the SDK 1.2
Inner Classes for Event Handling
• Member inner classes• Anonymous inner classes
Summary
Define an inner class Recognize the advantages of inner classes
over package-level classes in relation to event handling
Design and implement inner classes for event handling
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 16:Java Applets
Objectives
• Compare and contrast Java applets and applications
• Implement the life cycle of an applet through its inherited methods
• Embed an applet into an HTML document• Pass parameters from an HTML document to
its contained applet• Identify applet security restrictions• Convert an applet into an application
JApplet Class Hierarchy
Object
Component
Applet
Panel
Container
JApplet
Applets and Web Browsers
• Applets do not have a main() method• Applets have a life cycle• Applets are started from HTML pages, and
receive information from HTML pages• Because they are program code, applets
should not be trusted
Converting an Application into an Applet
• Use init() method to perform instantiation
• Instantiating the applet is unnecessary• Applets must be derived from JApplet• Applet size should be set within the HTML
document (the Web browser makes it visible)
• Applets must be declared public
Converting an Applet into an Application
• By adding an instance of the JApplet to the JFrame and calling its init() and start() methods, the conversion from JApplet to stand-alone JFrame readily takes place
Summary
Compare and contrast Java applets and applications
Implement the life cycle of an applet through its inherited methods
Embed an applet into an HTML document Pass parameters from an HTML document to
its contained applet Identify applet security restrictions Convert an applet into an application
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 17:Exceptions
Objectives• Differentiate between errors and
exceptions• Differentiate between runtime exceptions
and explicit exceptions• Propagate an exception using the throws
statement• Handle an exception using the try/catch
statement• Create and use a user-defined exception
What Is an Exception?
• Exceptions– Runtime exceptions (unchecked)– Other exceptions (checked)
Exception Class Hierarchy
HandlingExceptions
• Ignore the Exception• Handle the Exception with a try/catch
statement• Throw the Exception to the calling method• Handle the Exception and rethrow it to the
calling method
Creating User-Defined Exceptions
• Creating the exception• Throwing the exception• Exception handling tips
Exception Handling Tips
• Use simple tests instead of try/catch• Choose user-defined exceptions wisely• Use one try/catch block for multiple
exceptions• Do something meaningful with caught
exceptions
Summary
Differentiate between errors and exceptions Differentiate between runtime exceptions and
explicit exceptions Propagate an exception using the throws
statement Handle an exception using the try/catch
statement Create and use a user-defined exception
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 18:Creating Threads
and Thread Methods
Objectives
• Define threads• Create and instantiate threads using two
different techniques• Control single-thread flow• Define the four thread states and their
relationships to thread methods
What Are Threads?
• Multitasking• Multiprocessing• Multithreading
How Operating Systems Handle Multitasking
• Pre-emptive multitasking• Cooperative multitasking
Types of Threads in Java
• Daemon thread• User thread
– Main thread– Other user threads
The Main Thread
main thread
user thread user thread
user thread user thread
Creating Threads
• Subclassing the Thread class• Implementing the Runnable interface• Which technique?
Summary
Define threads Create and instantiate threads using two
different techniques Control single-thread flow Define the four thread states and their
relationships to thread methods
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 19:Thread
Synchronization
Objectives
• Define synchronization in relation to object monitors
• Control thread racing using thread synchronization
• Convert non-atomic to atomic processes to avoid thread racing
• Use sophisticated methods for controlling threads
• Stop, suspend and resume threads• Explain thread deadlock
What Is Thread Synchronization?
• Controlling threads in a predictable manner
Thread Racing
• Two threads trying to access the same data
Synchronized and the Object Monitor
• synchronized keyword• Threads waiting in a queue to obtain an
objects monitor• All synchronized methods of an object use a
single monitor
Thread Race Condition
• Competing for resources• Synchronizing the methods• Atomic processes
Sophisticated Thread Synchronization
• Consumer/producer scenario
Stopping, Suspending and Resuming Threads
• Stopping a thread• Suspending a thread• Resuming a thread
Summary
Define synchronization in relation to object monitors
Control thread racing using thread synchronization
Convert non-atomic to atomic processes to avoid thread racing
Use sophisticated methods for controlling threads
Stop, suspend and resume threads Explain thread deadlock
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 20:Streams and Serialization
Objectives
• Define a stream• Differentiate between byte streams and
character streams• Recognize the abstraction of byte streams
through the InputStream and OutputStream classes
• Recognize the abstraction of character streams through the Reader and Writer classes
• Create and use file objects
Objectives (cont’d)
• Use System.in and System.out to perform stream operations
• Nest streams using wrapper classes to enhance basic stream behavior
• Perform file I/O• Define object serialization• Use serialization to save an object to a file• Explain the transient keyword
What Is a Stream?
• A path of information from a source to a destination
InputStream, OutputStream, Reader and Writer
• JDK 1.0 (bytes)– InputStream– OutputStream
• JDK 1.1 (characters)– Reader– Writer
Files
• Instantiating a file object• Working with a file object
– Methods of File– Directories– FileDialog/FileChooser
Stream Classes of java.io.*
• System.in and System.out• Reading bytes from System.in• Converting a byte stream into a character
stream• Wrapper streams• File I/O
Serialization
• The process of object serialization– Marking an object for serialization– Writing the object to file– Reading the serialized object from a file
• Transient variables and security
Summary
Define a stream Differentiate between byte streams and
character streams Recognize the abstraction of byte streams
through the InputStream and OutputStream classes
Recognize the abstraction of character streams through the Reader and Writer classes
Create and use file objects
Summary (cont’d)
Use System.in and System.out to perform stream operations
Nest streams using wrapper classes to enhance basic stream behavior
Perform file I/O Define object serialization Use serialization to save an object to a file Explain the transient keyword
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 21:Networking in Java
Objectives
• Define networking, IP addresses, the Domain Name System, and ports
• Discuss the socket model and socket-to-socket communication
• Explain the client/server model• Write a single-threaded client/server echo
system• Write a multithreaded client/server echo
system
What Is Networking?
• Computers communicating across distances• Java networking
– TCP/IP– UDP
Connecting Computers Across the Internet
• IP addresses– Dotted quad– 32 bits– IPv6
• DNS• Sockets• Well-known ports
Well-Known Ports and Their Protocols
Port Protocol
21 FTP
23 Telnet
25 E-mail
79 Finger
80 HTTP
119 NNTP/Usenet
Networking Classes of java.net.*
• Common networking classes– InetAddress– Socket– ServerSocket
The Java Client/Server Model
• Server– Delivers information– ServerSocket object– accept method returns a socket
• Client– Requests information from the server– Connects to server with socket
Building the EchoServer
• The client– Step 1: getConnection– Step 2: sendMessage– Step 3: receiveMessage
• The server– Step 1: getConnection– Step 2: receiveMessage– Step 3: sendMessage
MultithreadingYour Client/Server Model
• Modifications to the server• The Connection class• The Client class• Running the threaded client/server example
Summary
Define networking, IP addresses, the Domain Name System, and ports
Discuss the socket model and socket-to-socket communication
Explain the client/server model Write a single-threaded client/server echo
system Write a multithreaded client/server echo
system
Java Programming Fundamentals
Java Runtime Environment Data Types, Variables and Operators Control Statements Methods Arrays Classes and Objects Inheritance Constructors
Java Programming Fundamentals
Interfaces and Abstract Classes Packages and Access Modifiers Swing Components Layout Managers Graphics in Java The Event Delegation Model Inner Classes
Java Applets Exceptions Creating Threads and Thread Methods Thread Synchronization Streams and Serialization Networking in Java
Java Programming Fundamentals