Object-Oriented Programming in Java - Level 2
Introduction to Object-Oriented Programming in Java - Level 2
Installing and setting up VSCode
Download Module 1 Code!
Three kinds of programming languages
DEEP DIVE: The JVM (Java Virtual Machine) Stack and Method Areas
DEEP DIVE: Local Variables
EXERCISE: Your Turn 1
Introduction to OOP!
Our First OOP Program!
DEEP DIVE: The Heap
DEEP DIVE: Instance, Local, Primitive and Reference Variables
IN A NUTSHELL: Different Kinds of Variables (so far!)
EXERCISE: Your Turn 2a
The Static Keyword (Class Variables and Class Methods)
Static Variables in a nutshell
Bonus Lecture - Using Static to build a Utils class (not on exam!)
IN A NUTSHELL: Different Kinds of Variables Complete!
EXERCISE: YourTurn 2a - extra
Answers to YourTurn2a - extra
Static Methods in a nutshell
Why we need to protect our code from bad programmers
Getters, Setters, and encapsulation
Constructors
EXERCISE: YourTurn 2b
EXERCISE: Crossword Challege!
EXERCISE: YourTurns 3-5
IN A NUTSHELL - JVM Rules
CHECKPOINT
Download Module 2 Code!
Using the debugger with VSCode - Part 1
Using the debugger with VSCode - Part 2
EXERCISE: Using the Debugger
Using the debugger with VSCode - Part 3
Using the debugger with VSCode - Part 4
.equals and Enumerated Types
Holding a reference to an object
EXERCISE: YourTurn1 - Treasure Hunt!
EXERCISE: Use the debugger to step through the code in YourTurn1
EXERCISE: YourTurn3 - Movie Tickets
Introduction to Arrays
An easier way to think of arrays
More Arrays!
EXERCISE: YourTurn4
How Arrays are stored in memory
Let's build an array of objects
What an array of objects looks like in memory (Also, how to use the shortcut when creating an array of objects)
EXERCISE - Use the debugger to fix our array problems
QUICKQUIZ: Array of Objects
EXERCISE: YourTurn 5
M2: The Stack Data Structure
M2: Building our own Stack using an Array
M2: EXERCISE: Make our Stack better!
M2: IN A NUTSHELL: Arrays
Now our warehouses can store more than 1 thing per floor!
Multi-dim arrays in memory (and how .length works)
Multi-dim Arrays of Objects
Ragged Arrays and review of all arrays
EXERCISE: Arrays, arrays, and more arrays!
M2: EXERCISE: Module2: Yourturn6
Download Module 3 Code!
M3: Holding a reference and Garbage Collection
M3: Passing a Reference Variable to a method
M3:EXERCISE: Yourturn1: Let's build a Movie Object
M3: Yourturn2: Let's build a stack that can accept Movie Objects
M3: What is the weakness of our array-based stack?
M3: Introducing Array Lists
M3: Building our Stack using ArrayList
M3: EXERCISE: Follow the breadcrumbs!
M3: Building a Linked-List of Movies
M3: EXERCISE: YourTurn 3a: Adding getAllMovieTitles to our list
M3: EXERCISE: YourTurn 3b: Adding removeNodeFromFront to our list
M3: EXERCISE: YourTurn 3c: Adding addNodeToEnd to our list
M3: EXERCISE: YourTurn 3d: Adding removeNodeAtEnd to our list
M3: A quick discussion about the importance of naming conventions
M3: The Java Collections and Other List Structures
Download Module 4 Code!
M4: Inheritance - Let's build a Pirate!
M4: YourTurn 1a
M4: Deeper into Inheritance
M4: Visibility Modifiers and Packages
M4: YourTurn 1b
M4: Overriding Methods
M4: Yourturn 1c
M4: Constructors and Inheritance
M4: YourTurn1d
M4: Inheritance Chains
M4: Abstract Classes
M4: YourTurn1e
M4: Interfaces
M4: Quick Review
M4: Putting it all together! Building a Parking Lot, Part 1
M4: Putting it all together! Building a Parking Lot, Part 2
M4: YourTurn2
M4: Taking up Yourturn2 together
M4: Yourturn3
M4: Quick Quiz
Download Module 5 Code!
M5: Package, Jar Files, JavaDocs and Libraries - PART 1 - NOT ON EXAM!
M5: Package, Jar Files, JavaDocs and Libraries - PART 2 - NOT ON EXAM!
M5: EXERCISE: Your Turn 1a
M5: Answer to memory question in YourTurn1a
M5: Class Relationships (Dependencies, associations, aggregation, composition)
M5: EXERCISE: Yourturn 1b
M5: Polymorphism - Another look at our Animals!
M5: Polymorphism - Technical Definitions
M5: Another look at our Parking Lot - Part 3
M5: EXERCISE: YourTurn 2: Finishing our Bank
M5: Comparable - Interfaces + Polymorphism = MAGIC! - NOT ON EXAM
M5: Polymorphism and SOLID principles
M5: Bonus Lecture - Generics 1
M5: Bonus Lecture - Generics 2
Exercises, more exercises, and yet more exercises!
Download the Module 7 Code!
Hello World with style - Setting up JavaFX in VSCode
"Hello World" with style!
Creating Layouts within our Scenes (VBOX, HBOX)
YourTurn1 - Build your first GUI Application!
Let's make our button work! Event Driven Programming - Part 1
Event-Driven Programming Part 2: Convenience methods
YourTurn2: Making our first GUI app do something!
Inner, Anonymous Classes make it easier.
Lambdas make it even cleaner!
YourTurn 3
A slightly better GUI - combining layouts
Binding properties in our GUI
YourTurn4 - Tracking the Mouse!
Download the Module 8 Code!
What is FXML?
Using Scene Builder 1
Using Scene Builder 2
YourTurn1
Using Scene Builder 3
Using Scene Builder 4 - The initialize method and ListView component
YourTurn2 - Build something cool!
SceneBuilder 5 - TableView
YourTurn3 - Scoreboard
YourTurn4 - Wiring up the scoreboard
Download the Module 9 Code!
Let's read from a file
Protecting our code from real-world problems (Try/Catch/Finally)
Try with Resources
YourTurn 1 - Read the world's funniest joke from a text file!
Exception Chains
Saving a file to disk
Building a Joke Machine! Let's start with the GUI!
Your Turn 2- Building an Enigma Machine - Part 1
Our Joke app - Alerts and Exception chains in real life.
Using the chooser to select which file to use
Joke Machine - A new joke with every mouse click! Re-throwing exceptions
Joke Machine -Rating our Jokes - Part 1: Inflating Objects from a flat file
YourTurn 3 - Giving our Enigma Machine the ability to read stored secret messages!
YourTurn 4 -Hooking up our FileManager and EnigmaMachine to our GUI
YourTurn 5 - Updating our Enigma Machine to choose which message to decode
A little bit about the real-life Enigma Machine
Saving a Objects to disk (Deflating objects)
Re-inflating objects from disk
Download the Module 10 Code!
Deeper into Exceptions - Errors/ Checked vs Unchecked etc
An Exception Refresher
Making our own Exceptions using inheritance!
JavaDocs
YourTurns 1,2 and 3
Download the Module 11 Code!
Java Collections and Lists
YourTurn1 - Polymorphism to the rescue!
The Queue Interface
Design Patterns - The Facade Pattern
YourTurn 2a - Building a Car Rental Business Using the Facade Pattern
YourTurn2b - Building a Car Rental Business Using the Facade Pattern
HashMaps
YourTurn3a - Building a Hotel Management System
YourTurn3b - Building a Hotel Managment System
Copy of Download the Module 12 Code!
YourTurn1 - Describe all of the variables in the following code
YourTurn2 - What Prints? (Objects)
YourTurn3 - Navigating Objects
YourTurn4 - Using Stack for browser history or breadcrumbs
Yourturn5 - Polymorphism part 1
Yourturn6 - Polymorphism part 2
YourTurn7 - Facade Pattern
YourTurn8 - Pizza Ordering System
YourTurn 9 - SuperSmartyPants - NOT ON THE EXAM!