Memra

academic · intermediate · ≈ 9 h · Athabasca University

COMP 308 — Java for Programmers

Advanced object-oriented Java, built for the exam

A full, exam-ready treatment of advanced Java: interfaces and inner classes, exceptions, collections and generics, reflection, I/O and serialization, enums and annotations, and concurrency — culminating in a worked Greenhouse control-system capstone. Read the concept, type the idiom, recall it cold.

0 / 57 lessons
Reviews stop being scheduled for after it.

up next

Java objects & references (recap)

9 m

Start course

OOP Recap at COMP 308 Level

0 / 3 lessons
  1. Java objects & references (recap) 9 m
  2. Classes, constructors, static & initialization order 11 m
  3. Javadoc & coding standards (recap) 8 m

Reuse: Composition, Inheritance & Polymorphism

0 / 6 lessons
  1. Access control & packages 10 m
  2. Composition vs inheritance; extends & super 12 m
  3. Upcasting & the final keyword 10 m
  4. Polymorphism & dynamic method binding 12 m
  5. Polymorphism pitfalls & constructors 12 m
  6. Designing with inheritance; downcasting & RTTI preview 11 m

Interfaces & Inner Classes

0 / 6 lessons
  1. Abstract classes & methods 11 m
  2. Interfaces & complete decoupling 12 m
  3. Interfaces as factories; nesting interfaces 10 m
  4. Inner classes & the link to the outer object 12 m
  5. Anonymous inner classes & local classes 11 m
  6. Inner classes & control frameworks 12 m

Error Handling with Exceptions

0 / 4 lessons
  1. Exceptions: try, catch, throw 11 m
  2. Checked vs unchecked & the exception hierarchy 12 m
  3. finally, try-with-resources & multi-catch 12 m
  4. Chaining, rethrow, custom hierarchies & logging 11 m

Strings, Regex & Formatting

0 / 4 lessons
  1. Immutable Strings & StringBuilder 11 m
  2. String.format / printf & escape sequences 9 m
  3. Regular expressions: Pattern, Matcher & split 12 m
  4. Scanner for tokenized input 9 m

Arrays, Collections & Containers

0 / 6 lessons
  1. Arrays in depth 11 m
  2. The Collections framework map 10 m
  3. List, ArrayList, LinkedList & iteration 12 m
  4. Set & Map 11 m
  5. The equals() & hashCode() contract 12 m
  6. Queue, Deque, PriorityQueue & Comparable/Comparator 11 m

Generics

0 / 4 lessons
  1. Why generics & generic classes 11 m
  2. Generic methods & bounded type parameters 11 m
  3. Wildcards: ? extends / ? super (PECS) 12 m
  4. Type erasure & its consequences 11 m

Type Information: RTTI & Reflection

0 / 3 lessons
  1. RTTI: Class objects, getClass & class literals 11 m
  2. Reflection: Constructor, Method & Field 12 m
  3. Dynamic proxies (overview) 9 m

I/O, Serialization & Networking

0 / 5 lessons
  1. The I/O stream model 11 m
  2. Reading & writing text files 11 m
  3. File, Path & the filesystem 9 m
  4. Serialization & deserialization 12 m
  5. Networking basics (overview) 9 m

Enums & Annotations

0 / 3 lessons
  1. Enumerated types: type-safe constants 11 m
  2. Annotations: built-ins and defining your own 11 m
  3. Javadoc: doc comments to HTML API docs 9 m

Concurrency

0 / 5 lessons
  1. Threads: Runnable, Thread, and executors 11 m
  2. Shared state and synchronized 12 m
  3. volatile, atomics, and visibility 10 m
  4. Coordination: wait/notify, suspend/resume, interrupts 12 m
  5. Concurrent collections & higher-level tools 9 m

GUI Development with Swing

0 / 4 lessons
  1. Swing components & containers 11 m
  2. Event handling & listeners 11 m
  3. Menus, dialogs & shortcuts 10 m
  4. Swing + threading: the Event Dispatch Thread 12 m

Capstone: the Greenhouse Control System

0 / 4 lessons
  1. Architecture: Event / Controller / GreenhouseControls 12 m
  2. Part 1 recap: events, parsing, exceptions, serialize & restore 12 m
  3. Part 2 recap: reflection-built events & thread-safe concurrency 12 m
  4. Part 3 recap: the Swing control panel & a state machine 11 m
~/memra/learn/comp-308