Prerequisites
To succeed fully in this course, students should be able to:
- Be competent in creating programs in any programming language or have completed SL-110-SE6: Fundamentals of the Java Programming Language
- Create and edit text files using a text editor
Course Objectives
- Create Java technology applications that leverage the object-oriented features of the Java language, such as encapsulation, inheritance, and polymorphism
- Execute a Java technology application from the command line
- Use Java data types and expressions
- Use Java flow control constructs
- Use arrays and other data collections
- Implement error-handling techniques using exception handling
- Create an event-driven graphical user interface (GUI) using Swing components: panels, buttons, labels, text fields, and text areas
- Implement input/output (I/O) functionality to read from and write to data and text files and understand advanced I/O streams
- Create a simple Transmission Control Protocol/Internet Protocol (TCP/IP) networked client that communicates with a server through sockets
- Create multithreaded programs
Course Content
- Module 1 – Execute Your First Java Application
- Examine the JDK
- Analyse a simple Java technology application
- Execute a Java technology application
Module 2 – Model a Real-World Process with a Java Application - Break down a Java technology application into its parts
- Examine the concepts associated with creating, referencing, and using objects
- Create an object and declare a reference to an object type
Module 3 – Create a Class: Fields and Constructors Syntax - Create a class statement
- Declare and initialise fields: using defaults, explicit values and constructors
- Examine directory layout and packages
Module 4 – Create a Class: Methods Syntax - Examine method interface and method body
- Use simple arithmetic and logical expressions
- Create statements, including branch and loop statements
- Use advanced method design techniques for: Method Overloading: Pass-by-Value: The this Reference
Module 5 – Create a Class: Encapsulation - Examine the concept of encapsulation
- Implement encapsulation in Java technology
- Use the static keyword
Module 6 – Create Arrays - Declare and create arrays of primitive, class, or array types
- Explain why elements of an array are initialised
- Explain how to initialise the elements of an array
- Determine the number of elements in an array
- Create a multidimensional array
Module 7 – Create a Subclass Using Inheritance - Examine the concept of inheritance
- Implement inheritance in Java technology
- Override methods of the object class
- Create polymorphism through subclasses
- Use the instance of operator
- Cast objects
- Use the final keyword
Module 8 – Error Handling Using Exception Classes and Assertions - Define exceptions
- Handle exceptions using the try, catch, and finally clause
- Describe exception categories
- Identify common exceptions
- Develop programs to handle your own exceptions
- Use assertions
- Distinguish appropriate and inappropriate uses of assertions
- Enable assertions at runtime
Module 9 – Declare and Use Specialised Class Types - Create abstract methods and abstract classes
- Declare and use interfaces
- Declare and use nested classes
- Use enumerated types
Module 10 – Using Generics and the Collections Framework - Write programs that use sets, lists, and mappings
- Create natural and custom ordering by Implementing the Comparable and Comparator interfaces
- Use generic collections
- Examine wildcard parameter types
- Write program to iterate over a collection
Module 11 – Transfer Data Using I/O Streams and Readers - Write a program that uses command-line arguments and system properties
- Construct node processing streams
- Serialise and deserialise objects
Module 12 – Perform Console I/O and File I/O - Write a program that reads from standard input
- Describe formatted input and output
- Read from and write to a file
Module 13 – Implement Multi-Tier Applications Using Networking - Develop code to set up the network connection
- Use ServerSocket and Socket classes for implementation of TCP/IP clients and servers
- Describe URL and URLConnection classes
Module 14 – Implement Multi-Threaded Applications - Define a thread
- Create separate threads in a Java technology program, controlling the code and data that are used by that thread
- Use wait and notify to communicate between threads
- Use synchronised to protect data from corruption
Module 15 – Building Java GUIs Using the Swing API - Describe the JFC Swing Technology
- Describe the GUI building blocks: containers, components, and layout managers
- Describe the swing single threaded model
- Build a GUI using swing components
Module 16 – Handling GUI-Generated Events - Define events and event handling
- Write code to handle events that occur in a GUI
- Describe the concept of adapter classes, including how and when to use them
- Determine the user action that originated the event from the event object details
- Identify the appropriate listener interface for a variety of event types
- Create the appropriate event handler methods for a variety of event types
- Use inner classes and anonymous classes in event handling
- Understand Swing Worker thread and its effect on the GUI performance