Course Outline 4260
This is a second exposure to Java. We will look at the fundamentals of java from a more advanced viewpoint than in an introductory class. We will take a very close look at the interaction between the stack and the heap during the execution of a program. We will then develop inheritance, interfaces, and functional interfaces so we can do event-driven application programming in a graphical environment with full user interaction.
- Java Programming Fundamentals
- Java and the JVM
- Using the REPL jshell
- Java's 8 Primitive Types
- Variables haveTypes
- Java Classes and the
main
method - A review of conditional logic and basic looping
- Scoping and the Call Stack
- The Heap
- The Java Class and Type Hierarchies
- Arrays, Lists, and Strings
- The Wrapper Classes and Auto[un|]boxing
- State, Methods, and
static
- Objects have state, identity and behavior
- Constructors
- Classes can know and do things too: static items
- The
static
block and proper initialization - The greased wall and static etiquette
- Be like me: Interfaces
- Interfaces are contracts
- Interfaces are types: introducting types and subtypes
- Interfaces can be generic.
- Interfaces can be extended to create more specific interfaces
- Interfaces can have static constants.
- Polymorphism
- Default Methods: What is this?
- Functional Interfaces
- Be like me: Inheritence
- Extending classes
- Constructors and
super
- Polymorphism and overriding methods
- Let's get to the root of my
Object
ions! - Types and subtypes
- Collections
- Iterators and Iterables
- Making a stack
- You get to make a list. Now check it twice.
forEach
- The Stream API
- Say what you want and don't tell me how to do it!
- JavaFX and Making Widgets
Stage
andScene
- The Scene Graph
- Fun with Mr. Ali: Widget Layout
- How do I make a button work?
- Old style event handling
- Event Handling with Functional Interfaces and Lambdas
- The Canvas Object
- Paint and Colors
- Handling Mouse Events
- Using Inner Classes