├── .gitignore ├── 01.040 Running Your First Program ├── .gitignore └── src │ └── hello │ └── App.java ├── 01.070 The Main Method ├── .gitignore └── src │ └── application │ └── App.java ├── 01.080 Formatting and Code Blocks ├── .gitignore └── src │ └── application │ └── App.java ├── 02.100 Integer Variables ├── .gitignore └── src │ └── application │ └── App.java ├── 02.110 Addition ├── .gitignore └── src │ └── application │ └── App.java ├── 02.120 Outputting Variables and Text ├── .gitignore └── src │ └── application │ └── App.java ├── 02.130 Doubles ├── .gitignore └── src │ └── application │ └── App.java ├── 02.140 Arithmetic ├── .gitignore └── src │ └── application │ └── App.java ├── 02.150 Variable Assignment ├── .gitignore └── src │ └── application │ └── App.java ├── 02.160 Calculations ├── .gitignore └── src │ └── application │ └── App.java ├── 02.190 Converting Temperatures ├── .gitignore └── src │ └── App.java ├── 03.010 Strings ├── .gitignore └── src │ └── application │ └── App.java ├── 03.020 Joining Strings ├── .gitignore └── src │ └── application │ └── App.java ├── 03.030 Control Characters ├── .gitignore └── src │ └── application │ └── App.java ├── 03.040 Outputting a Menu ├── .gitignore └── src │ └── App.java ├── 03.050 Format Specifiers ├── .gitignore └── src │ └── application │ └── App.java ├── 03.060 Format Specifiers Example ├── .gitignore └── src │ └── application │ └── App.java ├── 03.070 User Input ├── .gitignore └── src │ └── application │ └── App.java ├── 04.010 While Loops ├── .gitignore └── src │ └── application │ └── App.java ├── 04.020 Loop Conditions ├── .gitignore └── src │ └── application │ └── App.java ├── 04.040 Increment and Decrement ├── .gitignore └── src │ └── App.java ├── 04.050 PostfixAndPrefix ├── .gitignore └── src │ └── App.java ├── 04.060 Postfix and Prefix Expressions ├── .gitignore └── src │ └── App.java ├── 04.090 More While Loops ├── .gitignore └── src │ └── App.java ├── 04.100 For loops ├── .gitignore └── src │ └── application │ └── App.java ├── 04.110 Boolean ├── .gitignore └── src │ └── App.java ├── 04.120 Equality ├── .gitignore └── src │ └── application │ └── App.java ├── 04.130 If ├── .gitignore └── src │ └── App.java ├── 04.140 Using If ├── .gitignore └── src │ └── application │ └── App.java ├── 04.150 If Else ├── .gitignore └── src │ └── application │ └── App.java ├── 04.160 If Else If ├── .gitignore └── src │ └── application │ └── App.java ├── 04.170 More If Else If ├── .gitignore └── src │ └── application │ └── App.java ├── 04.180 One Line If ├── .gitignore └── src │ └── application │ └── App.java ├── 04.190 Converting If Else to Switch ├── .gitignore └── src │ └── application │ └── App.java ├── 04.190 Switch ├── .gitignore └── src │ └── application │ └── App.java ├── 04.200 Switch Fallthrough ├── .gitignore └── src │ └── application │ └── App.java ├── 04.210 The String Equals Method ├── .gitignore └── src │ └── application │ └── App.java ├── 04.220 The Final Keyword ├── .gitignore └── src │ └── application │ └── App.java ├── 04.230 Break ├── .gitignore └── src │ └── application │ └── App.java ├── 04.240 Checking Passwords ├── .gitignore └── src │ └── application │ └── App.java ├── 04.250 Password Loops ├── .gitignore └── src │ └── application │ └── App.java ├── 04.260 Do While Loops ├── .gitignore └── src │ └── application │ └── App.java ├── 04.270 Not ├── .gitignore └── src │ └── App.java ├── 04.280 Not Equal ├── .gitignore └── src │ └── application │ └── App.java ├── 04.290 Variable Scope ├── .gitignore └── src │ └── App.java ├── 04.300 Checking Passwords with Do While ├── .gitignore └── src │ └── application │ └── App.java ├── 04.310 Flags ├── .gitignore └── src │ └── application │ └── App.java ├── 04.420 Limited Attempts ├── .gitignore └── src │ └── application │ └── App.java ├── 04.430 String Methods ├── .gitignore └── src │ └── application │ └── App.java ├── 04.440 Case Insensitivity Exercise ├── .gitignore └── src │ └── application │ └── App.java ├── 04.450 Case Insensitivity Exercise Solution ├── .gitignore └── src │ └── application │ └── App.java ├── 04.460 Stream Loops ├── .gitignore └── src │ └── application │ └── App.java ├── 05.010 Arrays ├── .gitignore └── src │ └── application │ └── App.java ├── 05.020 Arrays of Strings ├── .gitignore └── src │ └── application │ └── App.java ├── 05.030 Iterating Over Arrays ├── .gitignore └── src │ └── application │ └── App.java ├── 05.040 Iterating with IntStream ├── .gitignore └── src │ └── application │ └── App.java ├── 05.050 Primitive Arrays - A Closer Look ├── .gitignore └── src │ └── application │ └── App.java ├── 05.060 Primitive Arrays Exercise Solution ├── .gitignore └── src │ └── application │ └── App.java ├── 05.070 For Each Loops ├── .gitignore └── src │ ├── App.java │ └── application │ └── App.java ├── 05.080 Stream For Each Loops ├── .gitignore └── src │ └── application │ └── App.java ├── 05.100 Non-Primitive Arrays ├── .gitignore └── src │ └── application │ └── App.java ├── 05.110 Multidimensional Arrays ├── .gitignore └── src │ └── application │ └── App.java ├── 05.120 Working With Multidimensional Arrays ├── .gitignore └── src │ └── application │ └── App.java ├── 05.130 Multidimensional Array Exercise ├── .gitignore └── src │ └── application │ └── App.java ├── 05.140 Multidimensional Arrays Exercise Solution ├── .gitignore └── src │ └── application │ └── App.java ├── 05.150 Multiplication Tables ├── .gitignore └── src │ └── application │ └── App.java ├── 06.010 Classes and Objects ├── .gitignore └── src │ └── application │ └── App.java ├── 06.020 Instance Variables ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 06.030 Methods ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 06.040 Accessing Instance Variables ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 06.050 Menu Example ├── .gitignore └── src │ └── application │ └── App.java ├── 06.060 Menu Example Implementation ├── .gitignore └── src │ └── application │ ├── App.java │ └── Menu.java ├── 06.070 Return Values ├── .gitignore └── src │ └── application │ ├── App.java │ └── ReturnValues.java ├── 06.080 Menu Returning String ├── .gitignore └── src │ └── application │ ├── App.java │ └── Menu.java ├── 06.090 Method Parameters ├── .gitignore └── src │ └── application │ ├── App.java │ └── Calculator.java ├── 06.100 Multiple Parameters ├── .gitignore └── src │ └── application │ ├── App.java │ └── Calculator.java ├── 06.110 Getters and Setters ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 06.120 This ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 06.130 Public and Private ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 06.140 Window Example ├── .gitignore └── src │ └── application │ ├── App.java │ └── Window.java ├── 06.160 Constructors ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 06.170 Constructors with Parameters ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 06.180 toString ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 06.190 Automatically Generating Classes ├── .gitignore └── src │ └── application │ ├── App.java │ └── Mountain.java ├── 07.010 Hangman ├── .gitignore └── src │ └── application │ ├── App.java │ └── Hangman.java ├── 07.030 A RandomWord Class ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Hangman.java │ └── RandomWord.java ├── 07.040 Random ├── .gitignore └── src │ ├── application │ ├── App.java │ ├── Hangman.java │ └── RandomWord.java │ └── test │ └── Test.java ├── 07.050 The char Type ├── .gitignore └── src │ ├── application │ ├── App.java │ ├── Hangman.java │ └── RandomWord.java │ └── test │ └── Test.java ├── 07.060 Char Arrays ├── .gitignore └── src │ ├── application │ ├── App.java │ ├── Hangman.java │ └── RandomWord.java │ └── test │ └── Test.java ├── 07.070 StringBuilder ├── .gitignore └── src │ └── App.java ├── 07.080 Using StringBuilder ├── .gitignore └── src │ ├── application │ ├── App.java │ ├── Hangman.java │ └── RandomWord.java │ └── test │ └── Test.java ├── 07.090 The Ternary Operator ├── .gitignore └── src │ └── application │ └── App.java ├── 07.100 Using the Ternary Operator ├── .gitignore └── src │ ├── application │ ├── App.java │ ├── Hangman.java │ └── RandomWord.java │ └── test │ └── Test.java ├── 07.110 Filling in Characters ├── .gitignore └── src │ ├── application │ ├── App.java │ ├── Hangman.java │ └── RandomWord.java │ └── test │ └── Test.java ├── 07.120 Closing the Scanner ├── .gitignore └── src │ ├── application │ ├── App.java │ ├── Hangman.java │ └── RandomWord.java │ └── test │ └── Test.java ├── 07.130 Checking User Input ├── .gitignore └── src │ ├── application │ ├── App.java │ ├── Hangman.java │ └── RandomWord.java │ └── test │ └── Test.java ├── 07.140 Limited Tries ├── .gitignore └── src │ ├── application │ ├── App.java │ ├── Hangman.java │ └── RandomWord.java │ └── test │ └── Test.java ├── 08.010 Boolean And ├── .gitignore └── src │ └── application │ └── App.java ├── 08.020 Boolean Or ├── .gitignore └── src │ └── application │ └── App.java ├── 08.030 Complex Boolean Conditions ├── .gitignore └── src │ └── application │ └── App.java ├── 09.010 Static and Final ├── .gitignore └── src │ └── application │ ├── App.java │ └── Cat.java ├── 09.020 Static Variables ├── .gitignore └── src │ └── application │ ├── App.java │ └── Cat.java ├── 09.030 Static Methods ├── .gitignore └── src │ └── application │ ├── App.java │ └── Cat.java ├── 09.040 Assigning IDs ├── .gitignore └── src │ └── application │ ├── App.java │ └── Cat.java ├── 09.050 Static Initialization Blocks ├── .gitignore └── src │ └── application │ ├── App.java │ └── Cat.java ├── 10.010 Inheritance ├── .gitignore └── src │ └── application │ ├── Animal.java │ ├── App.java │ └── Bird.java ├── 10.020 Overriding Methods ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Cat.java │ ├── HouseCat.java │ └── Tiger.java ├── 10.030 The Override Annotation ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Cat.java │ ├── HouseCat.java │ ├── Lion.java │ └── Tiger.java ├── 10.040 Subtype Polymorphism ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Cat.java │ ├── HouseCat.java │ ├── Lion.java │ └── Tiger.java ├── 10.050 Casting and Runtime Errors ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Cat.java │ ├── HouseCat.java │ ├── Lion.java │ └── Tiger.java ├── 10.060 Protected ├── .gitignore └── src │ ├── application │ └── App.java │ └── entities │ ├── Apple.java │ ├── Banana.java │ └── Fruit.java ├── 10.070 Final Classes ├── .gitignore └── src │ └── app │ └── App.java ├── 11.010 Rock Paper Scissors ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Game.java │ ├── GameObject.java │ ├── Paper.java │ ├── Rock.java │ └── Scissors.java ├── 11.020 A Game Object ├── .gitignore └── src │ ├── application │ └── App.java │ └── game │ └── Game.java ├── 11.030 Game Objects ├── .gitignore └── src │ ├── application │ └── App.java │ └── game │ ├── Game.java │ └── objects │ ├── GameObject.java │ ├── Paper.java │ ├── Rock.java │ └── Scissors.java ├── 11.040 Naming Objects ├── .gitignore └── src │ ├── application │ └── App.java │ └── game │ ├── Game.java │ └── objects │ ├── GameObject.java │ ├── Paper.java │ ├── Rock.java │ └── Scissors.java ├── 11.050 Choosing Objects ├── .gitignore └── src │ ├── application │ └── App.java │ └── game │ ├── Game.java │ └── objects │ ├── GameObject.java │ ├── Paper.java │ ├── Rock.java │ └── Scissors.java ├── 11.060 Comparing Objects ├── .gitignore └── src │ ├── application │ └── App.java │ └── game │ ├── Game.java │ └── objects │ ├── GameObject.java │ ├── Paper.java │ ├── Rock.java │ └── Scissors.java ├── 11.070 CompareTo ├── .gitignore └── src │ ├── application │ └── App.java │ └── game │ ├── Game.java │ └── objects │ ├── GameObject.java │ ├── Paper.java │ ├── Rock.java │ └── Scissors.java ├── 11.080 The Comparable Interface ├── .gitignore └── src │ ├── application │ └── App.java │ └── game │ ├── Game.java │ └── objects │ ├── GameObject.java │ ├── Paper.java │ ├── Rock.java │ └── Scissors.java ├── 11.090 UserPicksAnObject ├── .gitignore └── src │ ├── application │ └── App.java │ └── game │ ├── Game.java │ └── objects │ ├── GameObject.java │ ├── Paper.java │ ├── Rock.java │ └── Scissors.java ├── 11.100 WinDrawLose ├── .gitignore └── src │ ├── application │ └── App.java │ └── game │ ├── Game.java │ └── objects │ ├── GameObject.java │ ├── Paper.java │ ├── Rock.java │ └── Scissors.java ├── 11.110 GameLoop ├── .gitignore └── src │ ├── application │ └── App.java │ └── game │ ├── Game.java │ └── objects │ ├── GameObject.java │ ├── Paper.java │ ├── Rock.java │ └── Scissors.java ├── 11.120 Accouncing the Winner ├── .gitignore └── src │ ├── application │ └── App.java │ └── game │ ├── Game.java │ └── objects │ ├── GameObject.java │ ├── Paper.java │ ├── Rock.java │ └── Scissors.java ├── 12.010 Method Overloading ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 12.020 Default Constructors ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 12.030 Constructor Chaining ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 12.040 Super ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Employee.java │ └── Person.java ├── 13.010 Hello World Swing ├── .gitignore └── src │ └── application │ └── App.java ├── 13.020 SwingUtilities ├── .gitignore └── src │ ├── application │ └── App.java │ └── gui │ └── MainFrame.java ├── 13.030 Swing Custom Components ├── .gitignore └── src │ └── application │ ├── App.java │ ├── MainPanel.java │ └── Toolbar.java ├── 13.040 Panels and Layouts ├── .gitignore └── src │ ├── application │ └── App.java │ └── gui │ └── MainFrame.java ├── 13.050 Toolbars ├── .gitignore └── src │ ├── application │ └── App.java │ └── gui │ ├── MainFrame.java │ ├── MainPanel.java │ └── Toolbar.java ├── 14.010 Packages ├── .gitignore └── src │ └── com │ └── caveofprogramming │ └── swingtest │ └── application │ └── App.java ├── 14.020 AccessModifiers ├── .gitignore └── src │ ├── application │ └── App.java │ └── package1 │ ├── Employee.java │ └── Person.java ├── 14.040 Main Methods ├── .gitignore └── src │ └── App.java ├── 14.050 Upcasting ├── .gitignore └── src │ └── application │ ├── Animal.java │ ├── App.java │ └── Cat.java ├── 14.060 Downcasting ├── .gitignore └── src │ └── application │ ├── Animal.java │ ├── App.java │ └── Cat.java ├── 14.070 Object ├── .gitignore └── src │ └── application │ ├── Animal.java │ ├── App.java │ └── Cat.java ├── 14.080 Abstract Classes ├── .gitignore └── src │ └── application │ ├── App.java │ ├── GameObject.java │ ├── Monster.java │ └── Player.java ├── 14.090 Interfaces ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Computer.java │ ├── Describable.java │ └── Person.java ├── 14.091 Interface Inheritance ├── .gitignore └── src │ └── application │ ├── App.java │ ├── DefaultRunnable.java │ └── Machine.java ├── 14.092 Interface Default Methods ├── .gitignore └── src │ └── application │ ├── App.java │ ├── DefaultRunnable.java │ └── Machine.java ├── 14.093 Multiple Inheritance ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Greeter.java │ ├── Person.java │ └── Speaker.java ├── 14.100 Abstract Class Example ├── .gitignore └── src │ └── application │ └── App.java ├── 14.110 Interface Example ├── .gitignore └── src │ └── application │ └── App.java ├── 14.130 An Egg Timer ├── .gitignore └── src │ └── application │ └── App.java ├── 15.030 Button Clicks ├── .gitignore └── src │ ├── application │ └── App.java │ └── gui │ ├── MainFrame.java │ ├── MainPanel.java │ └── Toolbar.java ├── 15.040 Changing Color ├── .gitignore └── src │ ├── application │ └── App.java │ └── gui │ ├── MainFrame.java │ ├── MainPanel.java │ └── Toolbar.java ├── 15.050 Naive App Control ├── .gitignore └── src │ ├── application │ └── App.java │ └── gui │ ├── MainFrame.java │ ├── MainPanel.java │ └── Toolbar.java ├── 15.060 About References ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 15.080 Color Button Listener ├── .gitignore └── src │ ├── application │ └── App.java │ └── gui │ ├── MainFrame.java │ ├── MainPanel.java │ └── Toolbar.java ├── 15.100 Decoupling Using Interfaces ├── .gitignore └── src │ ├── application │ └── App.java │ └── gui │ ├── ColorChangeListener.java │ ├── MainFrame.java │ ├── MainPanel.java │ └── Toolbar.java ├── 16.010 HashCode and This ├── .gitignore └── src │ └── application │ ├── App.java │ └── Fox.java ├── 16.020 Local Inner Classes ├── .gitignore └── src │ └── App.java ├── 16.030 Local Inner Classes Example ├── .gitignore └── src │ └── application │ └── App.java ├── 16.040 Effectively Final ├── .gitignore └── src │ └── application │ └── App.java ├── 16.050 Static Inner Classes ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 16.060 Non-static Inner Classes ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 16.070 Anonymous Classes ├── .gitignore └── src │ └── application │ └── App.java ├── 16.080 Inner Class Review ├── .gitignore └── src │ └── application │ └── App.java ├── 17.010 Handling Button Clicks With Inner Classes ├── .gitignore └── src │ ├── application │ └── App.java │ └── gui │ ├── ColorChangeListener.java │ ├── MainFrame.java │ ├── MainPanel.java │ └── Toolbar.java ├── 17.020 Handling Button Clicks With Lambda Expressions ├── .gitignore └── src │ ├── application │ └── App.java │ └── gui │ ├── ColorChangeListener.java │ ├── MainFrame.java │ ├── MainPanel.java │ └── Toolbar.java ├── 18.010 Enum ├── .gitignore └── src │ └── application │ ├── App.java │ └── Fruit.java ├── 18.020 Enum Useful Methods ├── .gitignore └── src │ └── application │ ├── App.java │ └── Fruit.java ├── 18.030 Enum Constructors ├── .gitignore └── src │ └── application │ ├── App.java │ └── Fruit.java ├── 18.040 Enum and Switch ├── .gitignore └── src │ └── application │ ├── App.java │ └── Fruit.java ├── 18.050 Enum Exercise ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Game.java │ └── GameObject.java ├── 18.060 Enum Exercise Solution ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Game.java │ ├── GameObject.java │ └── Test.java ├── 18.070 Improving Rock Paper Scissors ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Game.java │ └── GameObject.java ├── 18.080 Implementing the Beats Method ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Game.java │ ├── GameObject.java │ └── Test.java ├── 18.090 Using Beats ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Game.java │ ├── GameObject.java │ └── Test.java ├── 18.100 Eliminating Unecessary Code ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Game.java │ ├── GameObject.java │ └── Test.java ├── 19.010 IntroducingExceptions ├── .gitignore └── src │ └── application │ └── App.java ├── 19.020 Try Catch ├── .gitignore └── src │ └── application │ └── App.java ├── 19.030 Some Exception Exercises ├── .gitignore └── src │ └── application │ └── App.java ├── 19.040 Throwing Exceptions ├── .gitignore └── src │ └── application │ ├── App.java │ └── Thermostat.java ├── 19.050 The Call Stack ├── .gitignore └── src │ └── application │ ├── App.java │ └── Thermostat.java ├── 19.060 Throwing Runtime Exceptions ├── .gitignore └── src │ └── application │ ├── App.java │ └── Thermostat.java ├── 19.070 Custom Exceptions ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Thermostat.java │ └── exceptions │ └── TemperatureOutOfRangeException.java ├── 19.080 Handling Multiple Exceptions ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Thermostat.java │ └── exceptions │ ├── TemperatureOutOfRangeException.java │ ├── TemperatureTooHighException.java │ └── TemperatureTooLowException.java ├── 19.090 Catching Multiple Exceptions ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Thermostat.java │ └── exceptions │ ├── TemperatureOutOfRangeException.java │ ├── TemperatureTooHighException.java │ └── TemperatureTooLowException.java ├── 19.100 Exception Flow Control ├── .gitignore └── src │ └── application │ ├── App.java │ └── Person.java ├── 19.110 NullPointerException ├── .gitignore └── src │ └── application │ └── App.java ├── 19.120 AutoCloseable ├── .gitignore └── src │ └── application │ ├── App.java │ └── Database.java ├── 19.130 Constructor Exceptions and Close ├── .gitignore └── src │ └── application │ ├── App.java │ └── Database.java ├── 19.140 HandlingConstructorAndCloseExceptions ├── .gitignore └── src │ └── application │ ├── App.java │ └── Database.java ├── 19.150 TryWithResources ├── .gitignore └── src │ └── application │ ├── App.java │ └── Database.java ├── 19.160 TryWithResourcesExample ├── .gitignore └── src │ └── application │ └── App.java ├── 20.010 Integer Types ├── .gitignore └── src │ └── application │ └── App.java ├── 20.020 MinimumAndMaximumValues ├── .gitignore └── src │ └── application │ └── App.java ├── 20.030 Floating Point Types ├── .gitignore └── src │ └── application │ └── App.java ├── 20.040 Class Equivalents of Primitive Types ├── .gitignore └── src │ └── application │ └── App.java ├── 20.060 Widening and Narrowing Conversions ├── .gitignore └── src │ └── application │ └── App.java ├── 20.070 Numeric Literals ├── .gitignore └── src │ └── application │ └── App.java ├── 20.080 The Mod Operator ├── .gitignore └── src │ └── application │ └── App.java ├── 21.005 Introducing the Game of Life ├── .gitignore └── application │ ├── App.java │ ├── ArtPanel.java │ ├── ColorUtils.java │ ├── MainFrame.java │ └── World.java ├── 21.010 Basic Swing App - Again ├── .gitignore └── src │ └── application │ ├── App.java │ └── MainFrame.java ├── 21.020 Painting and Drawing ├── .gitignore └── src │ └── application │ ├── App.java │ ├── GamePanel.java │ └── MainFrame.java ├── 21.040 Calculating Margins ├── .gitignore └── src │ └── application │ ├── App.java │ ├── GamePanel.java │ └── MainFrame.java ├── 21.050 Drawing the Grid ├── .gitignore └── src │ └── application │ ├── App.java │ ├── GamePanel.java │ └── MainFrame.java ├── 21.050 Numeric Class Methods ├── .gitignore └── src │ └── application │ └── App.java ├── 21.060 Filling Cells ├── .gitignore └── src │ └── application │ ├── App.java │ ├── GamePanel.java │ └── MainFrame.java ├── 21.070 Front End vs Back End ├── .gitignore └── src │ ├── application │ └── App.java │ └── gui │ ├── GamePanel.java │ └── MainFrame.java ├── 21.080 The Model ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 21.090 Displaying the Model ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 21.100 Handling Mouse Clicks ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 21.110 Converting Mouse Coordinates ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 21.120 Handling Key Presses ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 21.130 Randomizing the Grid ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 21.140 Clearing the Grid ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 21.150 Iterating Over Cells ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 21.160 Counting Neighbours ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 21.170 Life and Death ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 21.180 Implementing the Game of Life Algorithm ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 21.190 Fixing Resize ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 22.010 The File Class ├── .gitignore └── src │ └── application │ └── App.java ├── 22.020 Reading and Writing Text Files ├── .gitignore └── src │ └── application │ └── App.java ├── 22.030 File Locations ├── .gitignore └── src │ └── application │ └── App.java ├── 22.040 Reading Text Files Line By Line ├── .gitignore └── src │ └── application │ └── App.java ├── 22.050 Writing Text Files Line By Line ├── .gitignore └── src │ └── application │ └── App.java ├── 22.060 Serializing Objects ├── .gitignore └── src │ └── application │ └── App.java ├── 22.070 Deserializing Objects ├── .gitignore └── src │ └── application │ └── App.java ├── 22.080 Transient ├── .gitignore └── src │ └── application │ └── App.java ├── 22.090 Serial Version UIDs ├── .gitignore └── src │ └── application │ ├── App1.java │ ├── App2.java │ └── Person.java ├── 22.100 Serializing Multiple Objects ├── .gitignore └── src │ └── application │ ├── App1.java │ ├── App2.java │ └── Person.java ├── 22.110 Writing Binary Files ├── .gitignore └── src │ └── application │ └── App.java ├── 22.120 Reading Binary Files ├── .gitignore └── src │ └── application │ └── App.java ├── 22.130 Reading Java Class Files ├── .gitignore └── src │ └── application │ └── App.java ├── 22.140 Endianness ├── .gitignore └── src │ └── application │ └── App.java ├── 22.160 File Parsing Exercise Solution ├── .gitignore └── src │ └── application │ └── App.java ├── 23.010 Swing Menus ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 23.020 Save Dialogs ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 23.030 Getting the Selected File ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 23.040 Saving the Grid ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 23.050 File Open Dialogs ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 23.060 Loading Files ├── .gitignore └── src │ ├── application │ └── App.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 23.070 Error and Warning Messages ├── .gitignore └── src │ ├── application │ └── App.java │ ├── exceptions │ └── MismatchedSizeException.java │ ├── gui │ ├── GamePanel.java │ └── MainFrame.java │ └── model │ └── World.java ├── 24.010 A Simple Hierarchy ├── .gitignore └── src │ ├── application │ └── App.java │ └── heirarchy │ ├── Cat.java │ ├── Creature.java │ └── Mammal.java ├── 24.020 A Wrapper Class ├── .gitignore └── src │ ├── application │ └── App.java │ ├── collections │ └── Wrapper.java │ └── heirarchy │ ├── Cat.java │ ├── Creature.java │ └── Mammal.java ├── 24.030 Introducing Generics ├── .gitignore └── src │ ├── application │ └── App.java │ ├── collections │ └── Wrapper.java │ └── heirarchy │ ├── Cat.java │ ├── Creature.java │ └── Mammal.java ├── 24.050 A Pair Class ├── .gitignore └── src │ ├── application │ └── App.java │ ├── collections │ ├── Pair.java │ └── Wrapper.java │ └── heirarchy │ ├── Cat.java │ ├── Creature.java │ └── Mammal.java ├── 24.060 An Array Class ├── .gitignore └── src │ ├── application │ └── App.java │ ├── collections │ ├── Array.java │ ├── Pair.java │ └── Wrapper.java │ └── heirarchy │ ├── Cat.java │ ├── Creature.java │ └── Mammal.java ├── 24.070 Generic Methods ├── .gitignore └── src │ ├── application │ └── App.java │ ├── collections │ ├── Array.java │ ├── Pair.java │ └── Wrapper.java │ └── heirarchy │ ├── Cat.java │ ├── Creature.java │ └── Mammal.java ├── 24.080 Generic Bounds ├── .gitignore └── src │ ├── application │ └── App.java │ ├── collections │ ├── Array.java │ ├── Pair.java │ └── Wrapper.java │ └── heirarchy │ ├── Cat.java │ ├── Creature.java │ └── Mammal.java ├── 24.090 Super and PECS I ├── .gitignore └── src │ ├── application │ └── App.java │ ├── collections │ ├── Array.java │ ├── Pair.java │ └── Wrapper.java │ └── heirarchy │ ├── Cat.java │ ├── Creature.java │ └── Mammal.java ├── 24.100 Super and PECS 2 ├── .gitignore └── src │ ├── application │ └── App.java │ ├── collections │ ├── Array.java │ ├── Pair.java │ └── Wrapper.java │ └── heirarchy │ ├── Cat.java │ ├── Creature.java │ └── Mammal.java ├── 24.110 Util Copy Exercise ├── .gitignore └── src │ ├── application │ └── App.java │ ├── collections │ ├── Array.java │ ├── Pair.java │ ├── Util.java │ └── Wrapper.java │ └── heirarchy │ ├── Cat.java │ ├── Creature.java │ └── Mammal.java ├── 24.120 Add All Exercise ├── .gitignore └── src │ ├── application │ └── App.java │ ├── collections │ ├── Array.java │ ├── Pair.java │ ├── Util.java │ └── Wrapper.java │ └── heirarchy │ ├── Cat.java │ ├── Creature.java │ └── Mammal.java ├── 25.010 ArrayList ├── .gitignore └── src │ └── application │ └── App.java ├── 25.020 Iterating through ArrayList ├── .gitignore └── src │ └── application │ └── App.java ├── 25.030 Custom Objects in ArrayLists ├── .gitignore └── src │ └── application │ └── App.java ├── 25.040 Sorting Lists ├── .gitignore └── src │ └── application │ └── App.java ├── 25.050 Implementing Comparable ├── .gitignore └── src │ └── application │ └── App.java ├── 25.060 How Comparable Works ├── .gitignore └── src │ └── application │ └── App.java ├── 25.070 Comparable Example ├── .gitignore └── src │ └── application │ └── App.java ├── 25.080 Comparators ├── .gitignore └── src │ └── application │ └── App.java ├── 25.090 ArrayList Exercise ├── .gitignore └── src │ └── application │ └── App.java ├── 25.100 LinkedList ├── .gitignore └── src │ └── application │ └── App.java ├── 25.110 The List Interface ├── .gitignore └── src │ └── App.java ├── 25.120 Initializing Lists With Lists ├── .gitignore └── src │ └── application │ └── App.java ├── 25.130 Static Methods in Interfaces ├── .gitignore └── src │ └── application │ └── App.java ├── 25.140 Variable Arguments ├── .gitignore └── src │ └── application │ └── App.java ├── 25.150 Timing List Operations Exercise ├── .gitignore └── src │ └── application │ └── App.java ├── 25.160 Timing List Operations Solution ├── .gitignore └── src │ └── application │ └── App.java ├── 25.170 Time Complexity ├── .gitignore ├── src │ └── application │ │ └── App.java └── timings.txt ├── 25.180 Instanceof ├── .gitignore └── src │ └── application │ └── App.java ├── 25.190 Equals ├── .gitignore └── src │ └── application │ └── App.java ├── 25.200 Removing Items From Lists ├── .gitignore └── src │ └── application │ └── App.java ├── 25.210 ConcurrentModificationException ├── .gitignore └── src │ └── application │ └── App.java ├── 25.220 Iterators ├── .gitignore └── src │ └── application │ └── App.java ├── 25.230 Getting Creative With Iterators ├── .gitignore └── src │ └── application │ └── App.java ├── 25.240 Modifying Lists While Iterating ├── .gitignore └── src │ └── application │ └── App.java ├── 25.250 Ring Buffer Exercise ├── .gitignore └── src │ └── application │ └── App.java ├── 25.260 Ring Buffer Solution ├── .gitignore └── src │ └── application │ └── App.java ├── 25.270 Implementing Iterable ├── .gitignore └── src │ └── application │ └── App.java ├── 25.280 Circular Iterator Exercise ├── .gitignore └── src │ └── application │ └── App.java ├── 25.290 Circular Iterator Solution ├── .gitignore └── src │ └── application │ └── App.java ├── 25.300 ForEachAndIterators ├── .gitignore └── src │ └── application │ └── App.java ├── 25.310 HashSet ├── .gitignore └── src │ └── App.java ├── 25.320 Hashing Algorithms ├── .gitignore └── src │ └── application │ └── App.java ├── 25.330 The hashCode Method ├── .gitignore └── src │ └── app │ └── App.java ├── 25.340 UnionAndIntersection ├── .gitignore └── src │ └── app │ └── App.java ├── 25.350 RemoveAll ├── .gitignore └── src │ └── app │ └── App.java ├── 25.360 LinkedHashSet ├── .gitignore └── src │ └── app │ └── App.java ├── 25.370 TreeSet ├── .gitignore └── src │ └── app │ └── App.java ├── 25.380 Set and SortedSet ├── .gitignore └── src │ └── app │ └── App.java ├── 25.390 Collections Review ├── .gitignore └── src │ └── app │ └── App.java ├── 25.400 Sets And Lists Exercise ├── .gitignore └── src │ └── app │ └── App.java ├── 25.410 Sets And Lists Solution 1 ├── .gitignore ├── 1984.txt ├── animalfarm.txt └── src │ └── app │ └── App.java ├── 25.420 Sets and Lists Solution 2 ├── .gitignore ├── 1984.txt ├── animalfarm.txt └── src │ └── app │ └── App.java ├── 25.430 Sets And Lists Solution 3 ├── .gitignore ├── 1984.txt ├── animalfarm.txt └── src │ └── app │ └── App.java ├── 25.440 HashMaps ├── .gitignore └── src │ └── app │ └── App.java ├── 25.450 Static Imports ├── .gitignore └── src │ └── App.java ├── 25.460 Initializing Maps ├── .gitignore └── src │ └── app │ └── App.java ├── 25.470 Iterating Through Maps ├── .gitignore └── src │ └── app │ └── App.java ├── 25.480 Ordered Maps ├── .gitignore └── src │ └── app │ └── App.java ├── 25.490 Custom Objects in Maps Exercise ├── .gitignore └── src │ └── app │ └── App.java ├── 25.500 Custom Objects in Maps Solution ├── .gitignore └── src │ └── app │ └── App.java ├── 25.510 Lists of Sets ├── .gitignore └── src │ └── app │ └── App.java ├── 25.520 MapsOfLists ├── .gitignore └── src │ └── app │ └── App.java ├── 25.530 Complex Data Structures ├── .gitignore └── src │ └── app │ └── App.java ├── 25.540 CollectionsAndInheritance ├── .gitignore └── src │ └── app │ └── App.java ├── 26.010 Playing a Note ├── .gitignore └── src │ └── app │ └── App.java ├── 26.020 Playing Chords ├── .gitignore └── src │ └── app │ └── App.java ├── 26.030 MidiExerciseSolution ├── .gitignore └── src │ └── app │ ├── App.java │ └── Chord.java ├── 27.010 Collections Rota Exercise ├── .gitignore └── src │ ├── app │ └── App.java │ └── solution │ ├── App.java │ ├── Person.java │ ├── Rota.java │ └── VitalSkillSet.java ├── 27.020 PersonClass ├── .gitignore └── src │ └── app │ ├── App.java │ ├── Person.java │ └── Skill.java ├── 27.030 LoadingTheData ├── .gitignore └── src │ └── app │ ├── App.java │ ├── Person.java │ └── Skill.java ├── 27.040 Rota Class ├── .gitignore └── src │ └── app │ ├── App.java │ ├── Person.java │ ├── Rota.java │ └── Skill.java ├── 27.050 Implementing the Rota ├── .gitignore └── src │ └── app │ ├── App.java │ ├── Days.java │ ├── Person.java │ ├── Rota.java │ └── Skill.java ├── 27.060 Vital Skill Set ├── .gitignore └── src │ └── app │ ├── App.java │ ├── Days.java │ ├── Person.java │ ├── Rota.java │ ├── Skill.java │ └── VitalSkillSet.java ├── 27.070 Rota Algorithm ├── .gitignore └── src │ └── app │ ├── App.java │ ├── Days.java │ ├── Person.java │ ├── Rota.java │ ├── Skill.java │ └── VitalSkillSet.java ├── 27.100 Adding People ├── .gitignore └── src │ └── app │ ├── App.java │ ├── Days.java │ ├── Person.java │ ├── Rota.java │ ├── Skill.java │ └── VitalSkillSet.java ├── 28.010 Lambda Expression Example ├── .gitignore └── src │ └── app │ └── App.java ├── 28.020 Functional Interfaces ├── .gitignore └── src │ └── app │ └── App.java ├── 28.030 A Lambda Expression From Scratch ├── .gitignore └── src │ └── app │ └── App.java ├── 28.040 Lambda Expressions With Single Parameters ├── .gitignore └── src │ └── app │ └── App.java ├── 28.050 Multiple Parameter Lambdas ├── .gitignore └── src │ └── app │ └── App.java ├── 28.060 Return Values in Lambdas ├── .gitignore └── src │ └── app │ └── App.java ├── 28.070 LambdasAndCapture ├── .gitignore └── src │ └── app │ └── App.java ├── 28.100 Unmodifiable Lists ├── .gitignore └── src │ └── app │ ├── App.java │ └── People.java ├── 28.110 Predicates ├── .gitignore └── src │ └── app │ └── App.java ├── 28.120 Filtering Lists ├── .gitignore └── src │ └── app │ └── App.java ├── 28.130 Function ├── .gitignore └── src │ └── app │ └── App.java ├── 28.140 ReplaceAll ├── .gitignore └── src │ └── app │ └── App.java ├── 28.150 LambdaExercise ├── .gitignore └── src │ └── app │ └── App.java ├── 28.160 Multithreading ├── .gitignore └── src │ └── app │ └── App.java ├── 28.170 Incrementing via Threads ├── .gitignore └── src │ └── app │ └── App.java ├── 28.180 Synchronized ├── .gitignore └── src │ └── app │ └── App.java ├── 29.010 Method References ├── .gitignore └── src │ └── app │ └── App.java ├── 29.020 Breaking Down Method References ├── .gitignore └── src │ └── app │ └── App.java ├── 29.030 Method Reference Examples ├── .gitignore └── src │ └── app │ └── App.java ├── 29.040 References to Methods of Particular Objects ├── .gitignore └── src │ └── app │ └── App.java ├── 29.050 References to Methods of Arbitary Objects ├── .gitignore └── src │ └── app │ └── App.java ├── 29.060 Compare To Method Reference ├── .gitignore └── src │ └── app │ └── App.java ├── 29.070 References to Constructors ├── .gitignore └── src │ └── app │ └── App.java ├── 30.010 Streams ├── .gitignore └── src │ └── app │ └── App.java ├── 30.020 Generating Streams ├── .gitignore ├── greatexpectations.txt └── src │ └── app │ └── App.java ├── 30.030 Generating Streams from Files ├── .gitignore ├── greatexpectations.txt └── src │ └── app │ └── App.java ├── 30.040 Transforming Streams ├── .gitignore └── src │ └── app │ └── App.java ├── 30.050 Regular Expressions ├── .gitignore └── src │ └── app │ └── App.java ├── 30.060 Collectors ├── .gitignore ├── greatexpectations.txt └── src │ └── app │ └── App.java ├── 30.070 Peek ├── .gitignore ├── greatexpectations.txt └── src │ └── app │ └── App.java ├── 30.080 FlatMap ├── .gitignore └── src │ └── app │ └── App.java ├── 30.090 Stream Exercise 1 ├── .gitignore ├── greatexpectations.txt └── src │ └── app │ └── App.java ├── 30.100 Reduce ├── .gitignore └── src │ └── app │ └── App.java ├── 30.110 Combiners ├── .gitignore └── src │ └── app │ └── App.java ├── 30.120 Stream Exercise 2 ├── .gitignore └── src │ └── app │ └── App.java ├── 30.130 Implementing Collectors ├── .gitignore └── src │ └── app │ └── App.java ├── 30.140 Streams Exercise 3 ├── .gitignore ├── greatexpectations.txt └── src │ └── app │ └── App.java ├── 30.150 Combining Maps ├── .gitignore ├── greatexpectations.txt └── src │ └── app │ └── App.java ├── 30.160 Implementing the Solution ├── .gitignore ├── greatexpectations.txt └── src │ └── app │ └── App.java ├── 30.170 Filter ├── .gitignore ├── greatexpectations.txt └── src │ └── app │ └── App.java ├── 30.180 Map Exercise ├── .gitignore ├── greatexpectations.txt └── src │ └── app │ └── App.java ├── 30.190 Sorting Streams ├── .gitignore ├── greatexpectations.txt └── src │ └── app │ └── App.java ├── 30.200 Group By ├── .gitignore ├── greatexpectations.txt └── src │ └── app │ └── App.java ├── 30.210 Streams and Static Imports ├── .gitignore ├── greatexpectations.txt └── src │ └── app │ └── App.java ├── 30.230 Stream Exercise 4 ├── .gitignore └── src │ └── app │ └── App.java ├── 30.240 Multiplication Table With ForEach ├── .gitignore └── src │ └── app │ └── App.java ├── 30.250 Stream Multiplication in a Single String ├── .gitignore └── src │ └── app │ └── App.java ├── 32.010 Numbering Systems ├── .gitignore └── src │ └── app │ └── App.java ├── 32.020 Formatting Binary Numbers ├── .gitignore └── src │ └── app │ └── App.java ├── 32.030 Bitwise And Or ├── .gitignore └── src │ └── app │ └── App.java ├── 32.040 Bitwise Exclusive Or and Not ├── .gitignore └── src │ └── app │ └── App.java ├── 32.050 Bitwise Shift ├── .gitignore └── src │ └── app │ └── App.java ├── 32.060 Bitwise Hexadecimal ├── .gitignore └── src │ └── app │ └── App.java ├── 32.070 Bitwise Exercise Solution ├── .gitignore └── src │ └── app │ └── App.java ├── 33.010 Hello Again Swing ├── .gitignore └── src │ ├── app │ └── App.java │ ├── controller │ └── Controller.java │ └── gui │ ├── ArtPanel.java │ └── MainFrame.java ├── 33.020 Setting Pixels ├── .gitignore └── src │ ├── app │ └── App.java │ ├── controller │ └── Controller.java │ └── gui │ ├── ArtPanel.java │ └── MainFrame.java ├── 33.030 Wolfram Code ├── .gitignore └── src │ ├── app │ └── App.java │ ├── controller │ ├── Controller.java │ └── Rule.java │ └── gui │ ├── ArtPanel.java │ └── MainFrame.java ├── 33.040 Using the Wolfram Code ├── .gitignore └── src │ ├── app │ └── App.java │ ├── controller │ ├── Controller.java │ └── Rule.java │ └── gui │ ├── ArtPanel.java │ └── MainFrame.java ├── 33.050 Getting Colors ├── .gitignore └── src │ ├── app │ └── App.java │ ├── controller │ ├── Controller.java │ └── Rule.java │ └── gui │ ├── ArtPanel.java │ └── MainFrame.java ├── 33.060 Forming the Index ├── .gitignore └── src │ ├── app │ └── App.java │ ├── controller │ ├── Controller.java │ └── Rule.java │ └── gui │ ├── ArtPanel.java │ └── MainFrame.java ├── 33.070 Implementing the Rule ├── .gitignore └── src │ ├── app │ └── App.java │ ├── controller │ ├── Controller.java │ └── Rule.java │ └── gui │ ├── ArtPanel.java │ └── MainFrame.java ├── 34.020 Creating a Module ├── .gitignore └── src │ ├── cellular │ └── Rule.java │ └── module-info.java ├── 34.030 Using Modules ├── .gitignore └── src │ ├── app │ └── App.java │ ├── controller │ └── Controller.java │ ├── gui │ ├── ArtPanel.java │ └── MainFrame.java │ └── module-info.java ├── 36.020 Factorial Solution ├── .gitignore └── src │ └── app │ └── App.java ├── 36.030 Recursion ├── .gitignore └── src │ └── app │ └── App.java ├── 36.040 UsingRecursion ├── .gitignore └── src │ └── app │ └── App.java ├── 36.050 Recursive Factorial Solution ├── .gitignore └── src │ └── app │ └── App.java ├── GenerateWave ├── .gitignore └── src │ └── application │ ├── App.java │ ├── Wav.java │ └── WaveHeader.java ├── JarExport ├── .gitignore └── src │ └── model │ └── World.java ├── JarImport ├── .gitignore ├── lib │ ├── gameoflife-1.0.jar │ └── model.jar └── src │ ├── application │ └── App.java │ └── gui │ ├── GamePanel.java │ └── MainFrame.java ├── README.md ├── ReactionTimes ├── .gitignore ├── output │ └── john.csv ├── reactiontimes.csv └── src │ ├── application │ ├── App.java │ ├── Controller.java │ └── MainFrame.java │ ├── entity │ └── ReactionTime.java │ ├── interfaces │ ├── FileListener.java │ ├── QuitListener.java │ ├── SpacebarListener.java │ └── TestListener.java │ └── panels │ ├── DetailsPanel.java │ ├── MessagePanel.java │ ├── ReactionPanel.java │ └── StartPanel.java ├── cellular-1.0.jar ├── orphaned ├── .gitignore ├── CollectionsExercise │ ├── .gitignore │ └── src │ │ ├── app │ │ └── App.java │ │ └── solution │ │ ├── App.java │ │ ├── Person.java │ │ ├── Rota.java │ │ └── VitalSkillSet.java ├── DefaultMethods │ ├── .gitignore │ └── src │ │ └── application │ │ ├── App.java │ │ ├── Computer.java │ │ ├── Describable.java │ │ └── Person.java ├── DisplayingBlanks │ ├── .gitignore │ └── src │ │ ├── App.java │ │ ├── GuessWord.java │ │ └── Hangman.java ├── DisplayingWords │ ├── .gitignore │ └── src │ │ ├── App.java │ │ ├── GuessWord.java │ │ └── Hangman.java ├── FloatingPointVariables │ ├── .gitignore │ └── src │ │ └── application │ │ └── App.java ├── HandlingResize │ ├── .gitignore │ └── src │ │ ├── application │ │ └── App.java │ │ ├── gui │ │ ├── GamePanel.java │ │ └── MainFrame.java │ │ └── model │ │ └── World.java ├── MainRevisited │ ├── .gitignore │ └── src │ │ └── application │ │ └── App.java ├── README.md ├── SwingExample │ ├── .gitignore │ └── src │ │ └── App.java ├── TheGuessWordClass │ ├── .gitignore │ └── src │ │ └── application │ │ ├── App.java │ │ └── GuessWord.java └── Threads │ ├── .gitignore │ └── src │ └── application │ └── App.java └── sectionnames.txt /.gitignore: -------------------------------------------------------------------------------- 1 | **/bin/** 2 | **/.git/** 3 | **/.metadata/** 4 | **/.DS_Store/** 5 | **/.settings/** 6 | **/.DS_Store 7 | **/.classpath 8 | **/.project 9 | */.classpath 10 | */.project 11 | Test* 12 | Test*/* 13 | 14 | /.metadata/ 15 | -------------------------------------------------------------------------------- /01.040 Running Your First Program/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /01.040 Running Your First Program/src/hello/App.java: -------------------------------------------------------------------------------- 1 | package hello; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | System.out.println("Hello World!"); 7 | 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /01.070 The Main Method/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /01.070 The Main Method/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | System.out.println("Hello World!"); 7 | System.out.println("This is another line of text."); 8 | System.out.println("Final line of text."); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /01.080 Formatting and Code Blocks/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /01.080 Formatting and Code Blocks/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | System.out.println("Hello."); 7 | 8 | System.out.println("How are you?"); 9 | System.out.println("I am a computer."); 10 | System.out.println("OK."); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /02.100 Integer Variables/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /02.100 Integer Variables/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | int cats; 8 | cats = 7; 9 | 10 | System.out.println(cats); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /02.110 Addition/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /02.110 Addition/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | int cats = 7; 8 | int dogs = 5; 9 | 10 | int total = cats + dogs; 11 | 12 | System.out.println(total); 13 | 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /02.120 Outputting Variables and Text/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /02.130 Doubles/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /02.130 Doubles/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | double height = 1.8; 7 | 8 | System.out.println("Height is: " + height); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /02.140 Arithmetic/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /02.150 Variable Assignment/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /02.160 Calculations/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /02.190 Converting Temperatures/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /02.190 Converting Temperatures/src/App.java: -------------------------------------------------------------------------------- 1 | 2 | public class App { 3 | 4 | public static void main(String[] args) { 5 | 6 | double fahrenheit = 91; 7 | 8 | double celsius = (fahrenheit - 32) * 5.0/9.0; 9 | 10 | System.out.println(fahrenheit + " degrees Fahrenheit is " + celsius + " degrees celsius."); 11 | 12 | // TODO Make formatting nicer 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /03.010 Strings/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /03.010 Strings/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | String name = "John"; 8 | 9 | System.out.println(name); 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /03.020 Joining Strings/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /03.020 Joining Strings/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | String name = "John"; 7 | 8 | System.out.println("My name is " + name); 9 | 10 | String text = "I am called: "; 11 | String endOfSentence = "."; 12 | 13 | System.out.println(text + name + endOfSentence); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /03.030 Control Characters/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /03.040 Outputting a Menu/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /03.050 Format Specifiers/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /03.060 Format Specifiers Example/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /03.060 Format Specifiers Example/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | double fahrenheit = 91; 8 | 9 | double celsius = (fahrenheit - 32) * 5.0 / 9.0; 10 | 11 | System.out.printf("%.1f degrees Fahrenheit is %.1f degrees celsius.\n", fahrenheit, celsius); 12 | } 13 | } -------------------------------------------------------------------------------- /03.070 User Input/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.010 While Loops/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.010 While Loops/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | while (true) { 8 | System.out.println("Hello"); 9 | } 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /04.020 Loop Conditions/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.020 Loop Conditions/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | public static void main(String[] args) { 5 | 6 | int counter = 0; 7 | 8 | while(counter < 10) { 9 | 10 | System.out.printf("Counter: %d\n", counter); 11 | 12 | counter = counter + 1; 13 | } 14 | 15 | 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /04.040 Increment and Decrement/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.050 PostfixAndPrefix/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.060 Postfix and Prefix Expressions/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.090 More While Loops/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.090 More While Loops/src/App.java: -------------------------------------------------------------------------------- 1 | 2 | public class App { 3 | 4 | public static void main(String[] args) { 5 | 6 | int count = 7; 7 | 8 | while(count > 2) { 9 | System.out.printf("count is %d\n", count); 10 | --count; 11 | } 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /04.100 For loops/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.100 For loops/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | for(int i=0; i < 10; i++) { 8 | System.out.println("i: " + i); 9 | } 10 | 11 | // Infinite 'for' loop 12 | 13 | /* 14 | for(;;) { 15 | System.out.println("Hello"); 16 | } 17 | */ 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /04.110 Boolean/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.120 Equality/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.130 If/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.130 If/src/App.java: -------------------------------------------------------------------------------- 1 | 2 | public class App { 3 | 4 | public static void main(String[] args) { 5 | 6 | int apples = 10; 7 | int bananas = 5; 8 | 9 | if(apples > bananas) { 10 | System.out.println("More apples than bananas"); 11 | } 12 | 13 | System.out.println("End of program."); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /04.140 Using If/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.150 If Else/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.160 If Else If/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.170 More If Else If/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.180 One Line If/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.180 One Line If/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | boolean isRaining = false; 8 | 9 | if (isRaining) 10 | System.out.println("It's raining!"); 11 | else 12 | System.out.println("It's not raining"); 13 | 14 | System.out.println("Take an umbrella."); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /04.190 Converting If Else to Switch/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.190 Switch/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.200 Switch Fallthrough/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.210 The String Equals Method/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.210 The String Equals Method/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | String text1 = "apple"; 8 | String text2 = "orange"; 9 | 10 | System.out.println("Strings are identical: " + text2.equals(text1)); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /04.220 The Final Keyword/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.220 The Final Keyword/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | final int VALUE = 9; 8 | 9 | System.out.println(VALUE); 10 | 11 | final String USER_PASSWORD = "abc"; 12 | 13 | System.out.println(USER_PASSWORD); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /04.230 Break/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.240 Checking Passwords/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.250 Password Loops/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.260 Do While Loops/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.270 Not/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.280 Not Equal/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.290 Variable Scope/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.300 Checking Passwords with Do While/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.310 Flags/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.420 Limited Attempts/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.430 String Methods/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.440 Case Insensitivity Exercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.450 Case Insensitivity Exercise Solution/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.450 Case Insensitivity Exercise Solution/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | // TODO Auto-generated method stub 7 | 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /04.460 Stream Loops/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /04.460 Stream Loops/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import java.util.stream.IntStream; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | IntStream.range(0, 5).forEach(i -> { 9 | System.out.println(i); 10 | }); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /05.010 Arrays/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /05.020 Arrays of Strings/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /05.030 Iterating Over Arrays/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /05.030 Iterating Over Arrays/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | String[] animals = {"cat", "dog", "sloth", "elephant"}; 8 | 9 | for(int i=0; i { 12 | System.out.println(animal); 13 | }); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /05.100 Non-Primitive Arrays/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /05.110 Multidimensional Arrays/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /05.120 Working With Multidimensional Arrays/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /05.130 Multidimensional Array Exercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /05.140 Multidimensional Arrays Exercise Solution/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /05.150 Multiplication Tables/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.010 Classes and Objects/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.020 Instance Variables/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.020 Instance Variables/src/application/Person.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Person { 4 | String name; 5 | int age; 6 | } 7 | -------------------------------------------------------------------------------- /06.030 Methods/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.030 Methods/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | Person person1 = new Person(); 8 | person1.name = "Joe"; 9 | 10 | System.out.println(person1.name); 11 | person1.sayHello(); 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /06.030 Methods/src/application/Person.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Person { 4 | String name; 5 | 6 | void sayHello() { 7 | System.out.println("Hello"); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /06.040 Accessing Instance Variables/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.040 Accessing Instance Variables/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | Person person1 = new Person(); 8 | person1.name = "Joe"; 9 | 10 | System.out.println(person1.name); 11 | person1.sayHello(); 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /06.040 Accessing Instance Variables/src/application/Person.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Person { 4 | String name; 5 | 6 | void sayHello() { 7 | System.out.println("My name is: " + name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /06.050 Menu Example/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.060 Menu Example Implementation/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.070 Return Values/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.070 Return Values/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | ReturnValues values1 = new ReturnValues(); 7 | 8 | String animal = values1.getAnimal(); 9 | 10 | System.out.println(animal); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /06.070 Return Values/src/application/ReturnValues.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class ReturnValues { 4 | 5 | String getAnimal() { 6 | System.out.println("Returning an animal ...!"); 7 | 8 | return "cat"; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /06.080 Menu Returning String/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.090 Method Parameters/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.090 Method Parameters/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | Calculator calc = new Calculator(); 8 | int squared = calc.square(9); 9 | 10 | System.out.println(squared); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /06.090 Method Parameters/src/application/Calculator.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Calculator extends App { 4 | 5 | int square(int value) { 6 | System.out.println("Received the value: " + value); 7 | return value * value; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /06.100 Multiple Parameters/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.110 Getters and Setters/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.110 Getters and Setters/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Person person1 = new Person(); 7 | person1.setName("Joe"); 8 | person1.setAge(92); 9 | 10 | System.out.println(person1.getName()); 11 | System.out.println(person1.getAge()); 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /06.110 Getters and Setters/src/application/Person.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Person { 4 | String name; 5 | int age; 6 | 7 | void setName(String theName) { 8 | name = theName; 9 | } 10 | 11 | void setAge(int theAge) { 12 | age = theAge; 13 | } 14 | 15 | String getName() { 16 | return name; 17 | } 18 | 19 | int getAge() { 20 | return age; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /06.120 This/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.120 This/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Person person1 = new Person(); 7 | person1.setName("Joe"); 8 | person1.setAge(92); 9 | 10 | System.out.println(person1.getName()); 11 | System.out.println(person1.getAge()); 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /06.120 This/src/application/Person.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Person { 4 | String name; 5 | int age; 6 | 7 | void setName(String name) { 8 | this.name = name; 9 | } 10 | 11 | void setAge(int age) { 12 | this.age = age; 13 | } 14 | 15 | String getName() { 16 | return name; 17 | } 18 | 19 | int getAge() { 20 | return age; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /06.130 Public and Private/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.130 Public and Private/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Person person1 = new Person(); 7 | person1.setName("Joe"); 8 | person1.setAge(92); 9 | 10 | System.out.println(person1.getName()); 11 | System.out.println(person1.getAge()); 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /06.140 Window Example/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.140 Window Example/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Window window = new Window(); 7 | 8 | window.setWidth(300); 9 | 10 | System.out.println(window.getWidth()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /06.160 Constructors/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.170 Constructors with Parameters/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.180 toString/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.190 Automatically Generating Classes/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /06.190 Automatically Generating Classes/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | var mountain1 = new Mountain(8100, 5, "K58"); 7 | var mountain2 = new Mountain(7500, 6, "Rio Grande"); 8 | 9 | System.out.println(mountain1); 10 | System.out.println(mountain2); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /07.010 Hangman/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /07.010 Hangman/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Hangman game = new Hangman(); 7 | game.run(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /07.030 A RandomWord Class/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /07.030 A RandomWord Class/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Hangman game = new Hangman(); 7 | game.run(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /07.040 Random/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /07.040 Random/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Hangman game = new Hangman(); 7 | game.run(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /07.050 The char Type/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /07.050 The char Type/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Hangman game = new Hangman(); 7 | game.run(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /07.060 Char Arrays/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /07.060 Char Arrays/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Hangman game = new Hangman(); 7 | game.run(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /07.070 StringBuilder/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /07.080 Using StringBuilder/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /07.080 Using StringBuilder/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Hangman game = new Hangman(); 7 | game.run(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /07.090 The Ternary Operator/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /07.100 Using the Ternary Operator/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /07.100 Using the Ternary Operator/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Hangman game = new Hangman(); 7 | game.run(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /07.110 Filling in Characters/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /07.110 Filling in Characters/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Hangman game = new Hangman(); 7 | game.run(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /07.120 Closing the Scanner/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /07.120 Closing the Scanner/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Hangman game = new Hangman(); 7 | game.run(); 8 | game.close(); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /07.130 Checking User Input/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /07.130 Checking User Input/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Hangman game = new Hangman(); 7 | game.run(); 8 | game.close(); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /07.140 Limited Tries/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /07.140 Limited Tries/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Hangman game = new Hangman(); 7 | game.run(); 8 | game.close(); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /08.010 Boolean And/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /08.020 Boolean Or/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /08.030 Complex Boolean Conditions/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /09.010 Static and Final/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /09.010 Static and Final/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Cat cat1 = new Cat("Horace"); 7 | Cat cat2 = new Cat("Matilda"); 8 | 9 | System.out.println(cat1); 10 | System.out.println(cat2); 11 | 12 | System.out.println(Cat.FOOD); 13 | 14 | System.out.println(Math.PI); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /09.020 Static Variables/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /09.030 Static Methods/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /09.040 Assigning IDs/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /09.050 Static Initialization Blocks/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /10.010 Inheritance/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /10.010 Inheritance/src/application/Animal.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Animal { 4 | public void eat() { 5 | System.out.println("Eating ..."); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /10.010 Inheritance/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Animal animal1 = new Animal(); 7 | animal1.eat(); 8 | 9 | Bird bird1 = new Bird(); 10 | bird1.eat(); 11 | bird1.layEgg(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /10.010 Inheritance/src/application/Bird.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Bird extends Animal { 4 | public void layEgg() { 5 | System.out.println("Laying an egg ...."); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /10.020 Overriding Methods/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /10.020 Overriding Methods/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | HouseCat cat1 = new HouseCat(); 7 | cat1.vocalize(); 8 | cat1.hunt(); 9 | 10 | Tiger cat2 = new Tiger(); 11 | cat2.vocalize(); 12 | cat2.hunt(); 13 | 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /10.020 Overriding Methods/src/application/Cat.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Cat { 4 | public void vocalize() { 5 | System.out.println("Roar!"); 6 | } 7 | 8 | public void hunt() { 9 | System.out.println("Hunting!"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /10.020 Overriding Methods/src/application/HouseCat.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class HouseCat extends Cat { 4 | public void vocalize() { 5 | System.out.println("Meeouww!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /10.020 Overriding Methods/src/application/Tiger.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Tiger extends Cat { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /10.030 The Override Annotation/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /10.030 The Override Annotation/src/application/Cat.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Cat { 4 | public void vocalize() { 5 | System.out.println("Roar!"); 6 | } 7 | 8 | public void hunt() { 9 | System.out.println("Hunting!"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /10.030 The Override Annotation/src/application/HouseCat.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class HouseCat extends Cat { 4 | 5 | @Override 6 | public void vocalize() { 7 | System.out.println("Meeouww!"); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /10.030 The Override Annotation/src/application/Lion.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Lion extends Cat { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /10.030 The Override Annotation/src/application/Tiger.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Tiger extends Cat { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /10.040 Subtype Polymorphism/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /10.040 Subtype Polymorphism/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | Cat[] cats = {new HouseCat(), new Tiger(), new Lion()}; 8 | 9 | for(Cat cat: cats) { 10 | cat.vocalize(); 11 | cat.hunt(); 12 | } 13 | 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /10.040 Subtype Polymorphism/src/application/Cat.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Cat { 4 | public void vocalize() { 5 | System.out.println("Roar!"); 6 | } 7 | 8 | public void hunt() { 9 | System.out.println("Hunting!"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /10.040 Subtype Polymorphism/src/application/HouseCat.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class HouseCat extends Cat { 4 | 5 | @Override 6 | public void vocalize() { 7 | System.out.println("Meeouww!"); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /10.040 Subtype Polymorphism/src/application/Lion.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Lion extends Cat { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /10.040 Subtype Polymorphism/src/application/Tiger.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Tiger extends Cat { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /10.050 Casting and Runtime Errors/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /10.050 Casting and Runtime Errors/src/application/Cat.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Cat { 4 | 5 | public void vocalize() { 6 | System.out.println("Roar!"); 7 | } 8 | 9 | public void hunt() { 10 | System.out.println("Hunting!"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /10.050 Casting and Runtime Errors/src/application/HouseCat.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class HouseCat extends Cat { 4 | 5 | @Override 6 | public void vocalize() { 7 | System.out.println("Meeouww!"); 8 | } 9 | 10 | public void purr() { 11 | System.out.println("Purrrrrrr!"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /10.050 Casting and Runtime Errors/src/application/Lion.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Lion extends Cat { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /10.050 Casting and Runtime Errors/src/application/Tiger.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Tiger extends Cat { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /10.060 Protected/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /10.060 Protected/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import entities.Apple; 4 | import entities.Banana; 5 | import entities.Fruit; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | Fruit fruit1 = new Apple(); 11 | System.out.println(fruit1); 12 | 13 | Fruit fruit2 = new Banana(); 14 | System.out.println(fruit2); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /10.060 Protected/src/entities/Apple.java: -------------------------------------------------------------------------------- 1 | package entities; 2 | 3 | public class Apple extends Fruit { 4 | 5 | public Apple() { 6 | id = 0; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /10.060 Protected/src/entities/Banana.java: -------------------------------------------------------------------------------- 1 | package entities; 2 | 3 | public class Banana extends Fruit { 4 | public Banana() { 5 | id = 1; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /10.060 Protected/src/entities/Fruit.java: -------------------------------------------------------------------------------- 1 | package entities; 2 | 3 | public class Fruit { 4 | protected int id; 5 | 6 | @Override 7 | public String toString() { 8 | return "Fruit [id=" + id + "]"; 9 | } 10 | 11 | 12 | } 13 | -------------------------------------------------------------------------------- /10.070 Final Classes/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /10.070 Final Classes/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | // TODO Auto-generated method stub 7 | 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /11.010 Rock Paper Scissors/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /11.010 Rock Paper Scissors/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | new Game().run(); 8 | 9 | 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /11.010 Rock Paper Scissors/src/application/Paper.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Paper extends GameObject { 4 | public Paper() { 5 | setName("paper"); 6 | setId(1); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.010 Rock Paper Scissors/src/application/Rock.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Rock extends GameObject { 4 | public Rock() { 5 | setName("rock"); 6 | setId(0); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.010 Rock Paper Scissors/src/application/Scissors.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Scissors extends GameObject { 4 | public Scissors() { 5 | setName("scissors"); 6 | setId(2); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.020 A Game Object/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /11.020 A Game Object/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import game.Game; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | new Game().run(); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /11.020 A Game Object/src/game/Game.java: -------------------------------------------------------------------------------- 1 | package game; 2 | 3 | public class Game { 4 | 5 | 6 | 7 | public void run() { 8 | System.out.println("Game running"); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /11.030 Game Objects/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /11.030 Game Objects/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import game.Game; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | new Game().run(); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /11.030 Game Objects/src/game/objects/GameObject.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class GameObject { 4 | 5 | 6 | 7 | } 8 | -------------------------------------------------------------------------------- /11.030 Game Objects/src/game/objects/Paper.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Paper extends GameObject { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /11.030 Game Objects/src/game/objects/Rock.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Rock extends GameObject { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /11.030 Game Objects/src/game/objects/Scissors.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Scissors extends GameObject { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /11.040 Naming Objects/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /11.040 Naming Objects/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import game.Game; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | new Game().run(); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /11.040 Naming Objects/src/game/objects/Paper.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Paper extends GameObject { 4 | public Paper() { 5 | setId(1); 6 | setName("paper"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.040 Naming Objects/src/game/objects/Rock.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Rock extends GameObject { 4 | public Rock() { 5 | setId(0); 6 | setName("rock"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.040 Naming Objects/src/game/objects/Scissors.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Scissors extends GameObject { 4 | public Scissors() { 5 | setId(2); 6 | setName("scissor"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.050 Choosing Objects/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /11.050 Choosing Objects/src/game/objects/Paper.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Paper extends GameObject { 4 | public Paper() { 5 | setId(1); 6 | setName("paper"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.050 Choosing Objects/src/game/objects/Rock.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Rock extends GameObject { 4 | public Rock() { 5 | setId(0); 6 | setName("rock"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.050 Choosing Objects/src/game/objects/Scissors.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Scissors extends GameObject { 4 | public Scissors() { 5 | setId(2); 6 | setName("scissor"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.060 Comparing Objects/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /11.060 Comparing Objects/src/game/objects/Paper.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Paper extends GameObject { 4 | public Paper() { 5 | setId(1); 6 | setName("paper"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.060 Comparing Objects/src/game/objects/Rock.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Rock extends GameObject { 4 | public Rock() { 5 | setId(0); 6 | setName("rock"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.060 Comparing Objects/src/game/objects/Scissors.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Scissors extends GameObject { 4 | public Scissors() { 5 | setId(2); 6 | setName("scissor"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.070 CompareTo/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /11.070 CompareTo/src/game/objects/Paper.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Paper extends GameObject { 4 | public Paper() { 5 | setId(1); 6 | setName("paper"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.070 CompareTo/src/game/objects/Rock.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Rock extends GameObject { 4 | public Rock() { 5 | setId(0); 6 | setName("rock"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.070 CompareTo/src/game/objects/Scissors.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Scissors extends GameObject { 4 | public Scissors() { 5 | setId(2); 6 | setName("scissor"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.080 The Comparable Interface/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /11.080 The Comparable Interface/src/game/objects/Paper.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Paper extends GameObject { 4 | public Paper() { 5 | setId(1); 6 | setName("paper"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.080 The Comparable Interface/src/game/objects/Rock.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Rock extends GameObject { 4 | public Rock() { 5 | setId(0); 6 | setName("rock"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.080 The Comparable Interface/src/game/objects/Scissors.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Scissors extends GameObject { 4 | public Scissors() { 5 | setId(2); 6 | setName("scissor"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.090 UserPicksAnObject/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /11.090 UserPicksAnObject/src/game/objects/Paper.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Paper extends GameObject { 4 | public Paper() { 5 | setId(1); 6 | setName("paper"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.090 UserPicksAnObject/src/game/objects/Rock.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Rock extends GameObject { 4 | public Rock() { 5 | setId(0); 6 | setName("rock"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.090 UserPicksAnObject/src/game/objects/Scissors.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Scissors extends GameObject { 4 | public Scissors() { 5 | setId(2); 6 | setName("scissor"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.100 WinDrawLose/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /11.100 WinDrawLose/src/game/objects/Paper.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Paper extends GameObject { 4 | public Paper() { 5 | setId(1); 6 | setName("paper"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.100 WinDrawLose/src/game/objects/Rock.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Rock extends GameObject { 4 | public Rock() { 5 | setId(0); 6 | setName("rock"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.100 WinDrawLose/src/game/objects/Scissors.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Scissors extends GameObject { 4 | public Scissors() { 5 | setId(2); 6 | setName("scissor"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.110 GameLoop/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /11.110 GameLoop/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import game.Game; 4 | 5 | // TODO Assign names and ids to subclasses 6 | // TODO Pick on subclass at random and create object from it in run() 7 | 8 | // TODO Show that objects package really is a subpackage 9 | 10 | 11 | public class App { 12 | 13 | public static void main(String[] args) { 14 | new Game().run(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /11.110 GameLoop/src/game/objects/Paper.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Paper extends GameObject { 4 | public Paper() { 5 | setId(1); 6 | setName("paper"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.110 GameLoop/src/game/objects/Rock.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Rock extends GameObject { 4 | public Rock() { 5 | setId(0); 6 | setName("rock"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.110 GameLoop/src/game/objects/Scissors.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Scissors extends GameObject { 4 | public Scissors() { 5 | setId(2); 6 | setName("scissor"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.120 Accouncing the Winner/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /11.120 Accouncing the Winner/src/game/objects/Paper.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Paper extends GameObject { 4 | public Paper() { 5 | setId(1); 6 | setName("paper"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.120 Accouncing the Winner/src/game/objects/Rock.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Rock extends GameObject { 4 | public Rock() { 5 | setId(0); 6 | setName("rock"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /11.120 Accouncing the Winner/src/game/objects/Scissors.java: -------------------------------------------------------------------------------- 1 | package game.objects; 2 | 3 | public class Scissors extends GameObject { 4 | public Scissors() { 5 | setId(2); 6 | setName("scissor"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /12.010 Method Overloading/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /12.010 Method Overloading/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Person person = new Person(); 7 | person.greet(); 8 | 9 | person.greet("Joe"); 10 | person.greet(190); 11 | person.greet("Sue", 189); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /12.020 Default Constructors/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /12.020 Default Constructors/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Person person1 = new Person("Claire"); 7 | System.out.println(person1); 8 | 9 | Person person2 = new Person(); 10 | System.out.println(person2); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /12.030 Constructor Chaining/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /12.030 Constructor Chaining/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Person person = new Person(42); 7 | 8 | System.out.println(person); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /12.040 Super/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /12.040 Super/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Employee emp1 = new Employee("Raj"); 7 | 8 | System.out.println(emp1); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /12.040 Super/src/application/Employee.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Employee extends Person { 4 | public Employee(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /12.040 Super/src/application/Person.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Person { 4 | private String name; 5 | 6 | public Person(String name) { 7 | this.name = name; 8 | } 9 | 10 | public String getName() { 11 | return name; 12 | } 13 | 14 | public void setName(String name) { 15 | this.name = name; 16 | } 17 | 18 | public String toString() { 19 | return name; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /13.010 Hello World Swing/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /13.010 Hello World Swing/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.JFrame; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | JFrame mainFrame = new JFrame(); 9 | 10 | mainFrame.setSize(600, 400); 11 | mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 12 | 13 | mainFrame.setVisible(true); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /13.020 SwingUtilities/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /13.020 SwingUtilities/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | 11 | SwingUtilities.invokeLater(() -> { 12 | new MainFrame("Test Swing App"); 13 | }); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /13.020 SwingUtilities/src/gui/MainFrame.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import javax.swing.JFrame; 4 | 5 | public class MainFrame extends JFrame { 6 | 7 | private static final long serialVersionUID = 1L; 8 | 9 | public MainFrame(String title) { 10 | super(title); 11 | 12 | setSize(600, 400); 13 | setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 14 | setVisible(true); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /13.030 Swing Custom Components/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /13.030 Swing Custom Components/src/application/MainPanel.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import java.awt.Color; 4 | 5 | import javax.swing.JPanel; 6 | 7 | public class MainPanel extends JPanel { 8 | 9 | private static final long serialVersionUID = 1L; 10 | 11 | public MainPanel() { 12 | setBackground(Color.green); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /13.030 Swing Custom Components/src/application/Toolbar.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.JButton; 4 | import javax.swing.JToolBar; 5 | 6 | public class Toolbar extends JToolBar { 7 | 8 | private static final long serialVersionUID = 1L; 9 | 10 | public Toolbar() { 11 | add(new JButton("One")); 12 | add(new JButton("Two")); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /13.040 Panels and Layouts/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /13.040 Panels and Layouts/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | 11 | SwingUtilities.invokeLater(() -> { 12 | new MainFrame("Test Swing App"); 13 | }); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /13.050 Toolbars/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /13.050 Toolbars/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | 11 | SwingUtilities.invokeLater(() -> { 12 | new MainFrame("Test Swing App"); 13 | }); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /13.050 Toolbars/src/gui/MainPanel.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import java.awt.Color; 4 | 5 | import javax.swing.JPanel; 6 | 7 | public class MainPanel extends JPanel { 8 | 9 | private static final long serialVersionUID = 1L; 10 | 11 | public MainPanel() { 12 | setBackground(Color.green); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /13.050 Toolbars/src/gui/Toolbar.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import javax.swing.JButton; 4 | import javax.swing.JToolBar; 5 | 6 | public class Toolbar extends JToolBar { 7 | 8 | private static final long serialVersionUID = 1L; 9 | 10 | public Toolbar() { 11 | add(new JButton("One")); 12 | add(new JButton("Two")); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /14.010 Packages/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /14.010 Packages/src/com/caveofprogramming/swingtest/application/App.java: -------------------------------------------------------------------------------- 1 | package com.caveofprogramming.swingtest.application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | // TODO Auto-generated method stub 7 | 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /14.020 AccessModifiers/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /14.020 AccessModifiers/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import package1.Person; 4 | 5 | @SuppressWarnings("unused") 6 | public class App { 7 | 8 | public static void main(String[] args) { 9 | Person person1 = new Person("Joe"); 10 | 11 | //System.out.println(person1.name); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /14.020 AccessModifiers/src/package1/Employee.java: -------------------------------------------------------------------------------- 1 | package package1; 2 | 3 | public class Employee extends Person { 4 | public Employee(String name) { 5 | super(name); 6 | 7 | System.out.println(this.name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /14.020 AccessModifiers/src/package1/Person.java: -------------------------------------------------------------------------------- 1 | package package1; 2 | 3 | public class Person { 4 | String name; 5 | 6 | public Person(String name) { 7 | this.name = name; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /14.040 Main Methods/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /14.040 Main Methods/src/App.java: -------------------------------------------------------------------------------- 1 | 2 | public class App { 3 | 4 | public static void main(String[] args) { 5 | System.out.println("Hello"); 6 | 7 | for(var arg: args) { 8 | System.out.println(arg); 9 | } 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /14.050 Upcasting/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /14.050 Upcasting/src/application/Animal.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Animal { 4 | public String toString() { 5 | return "animal"; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /14.050 Upcasting/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Cat a1 = new Cat(); 7 | Animal a2 = a1; 8 | 9 | System.out.println(a2); 10 | System.out.println(a2 == a1); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /14.050 Upcasting/src/application/Cat.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Cat extends Animal { 4 | public String toString() { 5 | return "cat"; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /14.060 Downcasting/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /14.060 Downcasting/src/application/Animal.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | 4 | public class Animal { 5 | public String toString() { 6 | return "animal"; 7 | } 8 | 9 | public void speak() { 10 | System.out.println("Grrrrr!"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /14.060 Downcasting/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | 4 | public class App { 5 | 6 | public static void main(String[] args) { 7 | Animal a1 = new Cat(); 8 | Cat a2 = (Cat)a1; 9 | 10 | System.out.println(a2); 11 | a2.speak(); 12 | a2.jump(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /14.060 Downcasting/src/application/Cat.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | 4 | public class Cat extends Animal { 5 | public String toString() { 6 | return "cat"; 7 | } 8 | 9 | public void jump() { 10 | System.out.println("Jumping!"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /14.070 Object/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /14.070 Object/src/application/Animal.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Animal { 4 | public String toString() { 5 | return "animal"; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /14.070 Object/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | Cat o1 = (Cat)getAnimal(); 8 | System.out.println(o1); 9 | } 10 | 11 | public static Object getAnimal() { 12 | return new Cat(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /14.070 Object/src/application/Cat.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Cat extends Animal { 4 | public String toString() { 5 | return "cat"; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /14.080 Abstract Classes/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /14.080 Abstract Classes/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | // Does not work! 8 | // new GameObject(); 9 | 10 | GameObject[] objs = {new Player(), new Monster()}; 11 | 12 | for(var obj: objs) { 13 | System.out.println(obj); 14 | obj.describe(); 15 | } 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /14.080 Abstract Classes/src/application/GameObject.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public abstract class GameObject { 4 | public abstract void describe(); 5 | } 6 | -------------------------------------------------------------------------------- /14.080 Abstract Classes/src/application/Monster.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Monster extends GameObject { 4 | 5 | @Override 6 | public void describe() { 7 | System.out.println("I am a monster."); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /14.080 Abstract Classes/src/application/Player.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Player extends GameObject { 4 | 5 | @Override 6 | public void describe() { 7 | System.out.println("I am the player."); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /14.090 Interfaces/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /14.090 Interfaces/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | Describable[] objs = {new Person(), new Computer()}; 8 | 9 | for(Describable obj: objs) { 10 | System.out.println(obj.getDescription()); 11 | } 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /14.090 Interfaces/src/application/Computer.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Computer implements Describable { 4 | public String getDescription() { 5 | return "This is a computer"; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /14.090 Interfaces/src/application/Describable.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public interface Describable { 4 | public String getDescription(); 5 | } 6 | -------------------------------------------------------------------------------- /14.090 Interfaces/src/application/Person.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Person implements Describable { 4 | 5 | @Override 6 | public String getDescription() { 7 | return "I am a person"; 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /14.091 Interface Inheritance/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /14.091 Interface Inheritance/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | DefaultRunnable m1 = new Machine(); 7 | m1.run(); 8 | m1.displayDetails(); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /14.091 Interface Inheritance/src/application/DefaultRunnable.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public interface DefaultRunnable extends Runnable { 4 | void displayDetails(); 5 | } 6 | -------------------------------------------------------------------------------- /14.091 Interface Inheritance/src/application/Machine.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Machine implements DefaultRunnable { 4 | 5 | @Override 6 | public void run() { 7 | System.out.println("Machine running"); 8 | } 9 | 10 | @Override 11 | public void displayDetails() { 12 | System.out.println("No details to display"); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /14.092 Interface Default Methods/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /14.092 Interface Default Methods/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | DefaultRunnable m1 = new Machine(); 7 | m1.run(); 8 | m1.displayDetails(); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /14.092 Interface Default Methods/src/application/DefaultRunnable.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public interface DefaultRunnable extends Runnable { 4 | default void displayDetails() { 5 | System.out.println("No details to display"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /14.092 Interface Default Methods/src/application/Machine.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Machine implements DefaultRunnable { 4 | 5 | @Override 6 | public void run() { 7 | System.out.println("Machine running"); 8 | } 9 | 10 | 11 | } 12 | -------------------------------------------------------------------------------- /14.093 Multiple Inheritance/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /14.093 Multiple Inheritance/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Person p1 = new Person(); 7 | p1.speak(); 8 | p1.greet(); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /14.093 Multiple Inheritance/src/application/Greeter.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public interface Greeter { 4 | void greet(); 5 | } 6 | -------------------------------------------------------------------------------- /14.093 Multiple Inheritance/src/application/Person.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Person implements Speaker, Greeter { 4 | 5 | @Override 6 | public void greet() { 7 | System.out.println("Hello!"); 8 | 9 | } 10 | 11 | @Override 12 | public void speak() { 13 | System.out.println("I am a person!"); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /14.093 Multiple Inheritance/src/application/Speaker.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public interface Speaker { 4 | void speak(); 5 | } 6 | -------------------------------------------------------------------------------- /14.100 Abstract Class Example/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /14.110 Interface Example/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /14.130 An Egg Timer/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /14.130 An Egg Timer/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.JOptionPane; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | JOptionPane.showMessageDialog(null, "Egg cooked!"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /15.030 Button Clicks/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /15.030 Button Clicks/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | 11 | SwingUtilities.invokeLater(() -> { 12 | new MainFrame("Test Swing App"); 13 | }); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /15.030 Button Clicks/src/gui/MainPanel.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import java.awt.Color; 4 | 5 | import javax.swing.JPanel; 6 | 7 | public class MainPanel extends JPanel { 8 | 9 | private static final long serialVersionUID = 1L; 10 | 11 | public MainPanel() { 12 | setBackground(Color.green); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /15.040 Changing Color/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /15.040 Changing Color/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | 11 | SwingUtilities.invokeLater(() -> { 12 | new MainFrame("Test Swing App"); 13 | }); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /15.040 Changing Color/src/gui/MainPanel.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import java.awt.Color; 4 | 5 | import javax.swing.JPanel; 6 | 7 | public class MainPanel extends JPanel { 8 | 9 | private static final long serialVersionUID = 1L; 10 | 11 | public MainPanel() { 12 | setBackground(Color.green); 13 | } 14 | 15 | public void changeColor(Color color) { 16 | setBackground(color); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /15.050 Naive App Control/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /15.050 Naive App Control/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | 11 | SwingUtilities.invokeLater(() -> { 12 | new MainFrame("Test Swing App"); 13 | }); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /15.060 About References/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /15.060 About References/src/application/Person.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Person { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /15.080 Color Button Listener/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /15.080 Color Button Listener/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | 11 | SwingUtilities.invokeLater(() -> { 12 | new MainFrame("Test Swing App"); 13 | }); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /15.100 Decoupling Using Interfaces/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /15.100 Decoupling Using Interfaces/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | 11 | SwingUtilities.invokeLater(() -> { 12 | new MainFrame("Test Swing App"); 13 | }); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /15.100 Decoupling Using Interfaces/src/gui/ColorChangeListener.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import java.awt.Color; 4 | 5 | public interface ColorChangeListener { 6 | void changeColor(Color color); 7 | } 8 | -------------------------------------------------------------------------------- /16.010 HashCode and This/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /16.010 HashCode and This/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | Fox fox = new Fox(); 8 | System.out.println(fox); 9 | System.out.printf("%x\n", fox.hashCode()); 10 | 11 | Fox foxxx = fox; 12 | System.out.println(foxxx); 13 | 14 | System.out.println(fox.name); 15 | 16 | } 17 | 18 | 19 | 20 | } 21 | -------------------------------------------------------------------------------- /16.010 HashCode and This/src/application/Fox.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Fox { 4 | 5 | public String name; 6 | 7 | public Fox() { 8 | System.out.println(this); 9 | this.name = "Ferdinald"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /16.020 Local Inner Classes/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /16.030 Local Inner Classes Example/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /16.040 Effectively Final/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /16.050 Static Inner Classes/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /16.050 Static Inner Classes/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Person p1 = new Person(); 7 | p1.print(); 8 | 9 | Person.Head head = new Person.Head(); 10 | head.print(); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /16.060 Non-static Inner Classes/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /16.060 Non-static Inner Classes/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | Person p1 = new Person("Sigmund"); 7 | p1.display(); 8 | 9 | Person.Printer printer = p1.new Printer(); 10 | printer.print(); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /16.070 Anonymous Classes/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /16.080 Inner Class Review/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /17.010 Handling Button Clicks With Inner Classes/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /17.010 Handling Button Clicks With Inner Classes/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | 11 | SwingUtilities.invokeLater(() -> { 12 | new MainFrame("Test Swing App"); 13 | }); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /17.010 Handling Button Clicks With Inner Classes/src/gui/ColorChangeListener.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import java.awt.Color; 4 | 5 | public interface ColorChangeListener { 6 | void changeColor(Color color); 7 | } 8 | -------------------------------------------------------------------------------- /17.020 Handling Button Clicks With Lambda Expressions/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /17.020 Handling Button Clicks With Lambda Expressions/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | 11 | SwingUtilities.invokeLater(() -> { 12 | new MainFrame("Test Swing App"); 13 | }); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /17.020 Handling Button Clicks With Lambda Expressions/src/gui/ColorChangeListener.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import java.awt.Color; 4 | 5 | public interface ColorChangeListener { 6 | void changeColor(Color color); 7 | } 8 | -------------------------------------------------------------------------------- /18.010 Enum/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /18.010 Enum/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | Fruit fruit1 = Fruit.APPLE; 8 | Fruit fruit2 = Fruit.ORANGE; 9 | 10 | System.out.println(fruit1 == fruit2); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /18.010 Enum/src/application/Fruit.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public enum Fruit { 4 | APPLE, BANANA, ORANGE 5 | } 6 | -------------------------------------------------------------------------------- /18.020 Enum Useful Methods/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /18.020 Enum Useful Methods/src/application/Fruit.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public enum Fruit { 4 | APPLE, BANANA, ORANGE 5 | } 6 | -------------------------------------------------------------------------------- /18.030 Enum Constructors/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /18.030 Enum Constructors/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | System.out.println(Fruit.APPLE); 8 | System.out.println(Fruit.BANANA); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /18.030 Enum Constructors/src/application/Fruit.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public enum Fruit { 4 | APPLE("green"), BANANA("yellow"), ORANGE("orange"); 5 | 6 | private String color; 7 | 8 | Fruit(String color) { 9 | this.color = color; 10 | } 11 | 12 | public String toString() { 13 | return super.toString().toLowerCase() + " (" + color + ")"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /18.040 Enum and Switch/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /18.040 Enum and Switch/src/application/Fruit.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public enum Fruit { 4 | APPLE, BANANA, ORANGE 5 | } 6 | -------------------------------------------------------------------------------- /18.050 Enum Exercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /18.050 Enum Exercise/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | new Game().run(); 8 | 9 | 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /18.060 Enum Exercise Solution/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /18.060 Enum Exercise Solution/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | new Game().run(); 8 | 9 | 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /18.060 Enum Exercise Solution/src/application/Test.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Test { 4 | 5 | public static void main(String[] args) { 6 | System.out.println(GameObject.ROCK.beats(GameObject.SCISSORS)); 7 | System.out.println(GameObject.ROCK.beats(GameObject.PAPER)); 8 | System.out.println(GameObject.PAPER.beats(GameObject.ROCK)); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /18.070 Improving Rock Paper Scissors/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /18.070 Improving Rock Paper Scissors/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | new Game().run(); 8 | 9 | 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /18.080 Implementing the Beats Method/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /18.080 Implementing the Beats Method/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | new Game().run(); 8 | 9 | 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /18.080 Implementing the Beats Method/src/application/Test.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Test { 4 | 5 | public static void main(String[] args) { 6 | System.out.println(GameObject.ROCK.beats(GameObject.SCISSORS)); 7 | System.out.println(GameObject.ROCK.beats(GameObject.PAPER)); 8 | System.out.println(GameObject.PAPER.beats(GameObject.ROCK)); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /18.090 Using Beats/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /18.090 Using Beats/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | new Game().run(); 8 | 9 | 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /18.090 Using Beats/src/application/Test.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Test { 4 | 5 | public static void main(String[] args) { 6 | System.out.println(GameObject.ROCK.beats(GameObject.SCISSORS)); 7 | System.out.println(GameObject.ROCK.beats(GameObject.PAPER)); 8 | System.out.println(GameObject.PAPER.beats(GameObject.ROCK)); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /18.100 Eliminating Unecessary Code/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /18.100 Eliminating Unecessary Code/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | new Game().run(); 8 | 9 | 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /18.100 Eliminating Unecessary Code/src/application/GameObject.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public enum GameObject { 4 | 5 | ROCK, PAPER, SCISSORS; 6 | 7 | private GameObject beats; 8 | 9 | static { 10 | ROCK.beats = SCISSORS; 11 | PAPER.beats = ROCK; 12 | SCISSORS.beats = PAPER; 13 | } 14 | 15 | boolean beats(GameObject other) { 16 | return this.beats == other; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /18.100 Eliminating Unecessary Code/src/application/Test.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Test { 4 | 5 | public static void main(String[] args) { 6 | System.out.println(GameObject.ROCK.beats(GameObject.SCISSORS)); 7 | System.out.println(GameObject.ROCK.beats(GameObject.PAPER)); 8 | System.out.println(GameObject.PAPER.beats(GameObject.ROCK)); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /19.010 IntroducingExceptions/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.010 IntroducingExceptions/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) throws InterruptedException { 6 | 7 | System.out.println("One"); 8 | Thread.sleep(2000); 9 | System.out.println("Two"); 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /19.020 Try Catch/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.030 Some Exception Exercises/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.040 Throwing Exceptions/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.040 Throwing Exceptions/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) throws Exception { 6 | Thermostat stat = new Thermostat(); 7 | 8 | stat.setTemperature(70); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /19.050 The Call Stack/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.060 Throwing Runtime Exceptions/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.070 Custom Exceptions/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.070 Custom Exceptions/src/application/exceptions/TemperatureOutOfRangeException.java: -------------------------------------------------------------------------------- 1 | package application.exceptions; 2 | 3 | public class TemperatureOutOfRangeException extends Exception { 4 | 5 | private static final long serialVersionUID = 1L; 6 | 7 | public TemperatureOutOfRangeException(String message) { 8 | super(message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /19.080 Handling Multiple Exceptions/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.080 Handling Multiple Exceptions/src/application/exceptions/TemperatureOutOfRangeException.java: -------------------------------------------------------------------------------- 1 | package application.exceptions; 2 | 3 | public class TemperatureOutOfRangeException extends Exception { 4 | 5 | private static final long serialVersionUID = 1L; 6 | 7 | public TemperatureOutOfRangeException(String message) { 8 | super(message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /19.080 Handling Multiple Exceptions/src/application/exceptions/TemperatureTooHighException.java: -------------------------------------------------------------------------------- 1 | package application.exceptions; 2 | 3 | public class TemperatureTooHighException extends TemperatureOutOfRangeException { 4 | 5 | private static final long serialVersionUID = 1L; 6 | 7 | public TemperatureTooHighException(String message) { 8 | super(message); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /19.080 Handling Multiple Exceptions/src/application/exceptions/TemperatureTooLowException.java: -------------------------------------------------------------------------------- 1 | package application.exceptions; 2 | 3 | public class TemperatureTooLowException extends TemperatureOutOfRangeException { 4 | private static final long serialVersionUID = 1L; 5 | 6 | public TemperatureTooLowException(String message) { 7 | super(message); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /19.090 Catching Multiple Exceptions/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.090 Catching Multiple Exceptions/src/application/exceptions/TemperatureOutOfRangeException.java: -------------------------------------------------------------------------------- 1 | package application.exceptions; 2 | 3 | public class TemperatureOutOfRangeException extends Exception { 4 | 5 | private static final long serialVersionUID = 1L; 6 | 7 | public TemperatureOutOfRangeException(String message) { 8 | super(message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /19.090 Catching Multiple Exceptions/src/application/exceptions/TemperatureTooHighException.java: -------------------------------------------------------------------------------- 1 | package application.exceptions; 2 | 3 | public class TemperatureTooHighException extends TemperatureOutOfRangeException { 4 | 5 | private static final long serialVersionUID = 1L; 6 | 7 | public TemperatureTooHighException(String message) { 8 | super(message); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /19.090 Catching Multiple Exceptions/src/application/exceptions/TemperatureTooLowException.java: -------------------------------------------------------------------------------- 1 | package application.exceptions; 2 | 3 | public class TemperatureTooLowException extends TemperatureOutOfRangeException { 4 | private static final long serialVersionUID = 1L; 5 | 6 | public TemperatureTooLowException(String message) { 7 | super(message); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /19.100 Exception Flow Control/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.100 Exception Flow Control/src/application/Person.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Person { 4 | 5 | void setName(String name) throws Exception { 6 | if(name == null) { 7 | throw new Exception("Name cannot be null"); 8 | } 9 | 10 | System.out.println("Name is set to " + name); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /19.110 NullPointerException/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.110 NullPointerException/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import java.util.Scanner; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | 9 | Scanner scanner = null; 10 | 11 | scanner.nextLine(); 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /19.120 AutoCloseable/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.120 AutoCloseable/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | Database db = new Database("localhost:3306"); 8 | 9 | db.getData(); 10 | 11 | db.close(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /19.130 Constructor Exceptions and Close/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.130 Constructor Exceptions and Close/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | Database db; 8 | 9 | try { 10 | db = new Database("db"); 11 | db.getData(); 12 | db.close(); 13 | } catch (Exception e) { 14 | System.out.println(e.getMessage()); 15 | } 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /19.140 HandlingConstructorAndCloseExceptions/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.150 TryWithResources/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /19.150 TryWithResources/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | 8 | try(Database db = new Database("ab43")) { 9 | db.getData(); 10 | } catch (Exception e) { 11 | System.out.println("Catching exception ..."); 12 | System.out.println(e.getMessage()); 13 | } 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /19.160 TryWithResourcesExample/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /20.010 Integer Types/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /20.010 Integer Types/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | @SuppressWarnings("unused") 6 | public static void main(String[] args) { 7 | 8 | // byte, short, integer, long 9 | byte byteValue = 123; 10 | short shortValue = 30000; 11 | int intValue = 423434; 12 | long longValue = 3423543233454L; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /20.020 MinimumAndMaximumValues/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /20.030 Floating Point Types/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /20.040 Class Equivalents of Primitive Types/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /20.060 Widening and Narrowing Conversions/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /20.070 Numeric Literals/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /20.080 The Mod Operator/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.005 Introducing the Game of Life/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.005 Introducing the Game of Life/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | SwingUtilities.invokeLater(()->new MainFrame()); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /21.010 Basic Swing App - Again/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.010 Basic Swing App - Again/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | SwingUtilities.invokeLater(()->new MainFrame()); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /21.010 Basic Swing App - Again/src/application/MainFrame.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.JFrame; 4 | 5 | public class MainFrame extends JFrame { 6 | private static final long serialVersionUID = 1L; 7 | 8 | public MainFrame() { 9 | super("Game of Life"); 10 | 11 | setSize(800, 600); 12 | setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 13 | setVisible(true); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /21.020 Painting and Drawing/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.020 Painting and Drawing/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | SwingUtilities.invokeLater(()->new MainFrame()); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /21.040 Calculating Margins/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.040 Calculating Margins/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | SwingUtilities.invokeLater(()->new MainFrame()); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /21.050 Drawing the Grid/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.050 Drawing the Grid/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | SwingUtilities.invokeLater(()->new MainFrame()); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /21.050 Numeric Class Methods/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.060 Filling Cells/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.060 Filling Cells/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | SwingUtilities.invokeLater(()->new MainFrame()); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /21.070 Front End vs Back End/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.070 Front End vs Back End/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /21.080 The Model/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.080 The Model/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /21.090 Displaying the Model/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.090 Displaying the Model/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /21.100 Handling Mouse Clicks/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.100 Handling Mouse Clicks/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /21.110 Converting Mouse Coordinates/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.110 Converting Mouse Coordinates/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /21.120 Handling Key Presses/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.120 Handling Key Presses/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /21.130 Randomizing the Grid/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.130 Randomizing the Grid/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /21.140 Clearing the Grid/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.140 Clearing the Grid/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /21.150 Iterating Over Cells/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.150 Iterating Over Cells/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /21.160 Counting Neighbours/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.160 Counting Neighbours/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /21.170 Life and Death/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.170 Life and Death/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /21.180 Implementing the Game of Life Algorithm/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.180 Implementing the Game of Life Algorithm/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /21.190 Fixing Resize/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /21.190 Fixing Resize/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /22.010 The File Class/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /22.010 The File Class/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import java.io.IOException; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) throws IOException { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /22.020 Reading and Writing Text Files/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /22.030 File Locations/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /22.040 Reading Text Files Line By Line/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /22.050 Writing Text Files Line By Line/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /22.060 Serializing Objects/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /22.070 Deserializing Objects/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /22.080 Transient/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /22.090 Serial Version UIDs/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /22.100 Serializing Multiple Objects/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /22.110 Writing Binary Files/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /22.120 Reading Binary Files/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /22.130 Reading Java Class Files/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /22.140 Endianness/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /22.160 File Parsing Exercise Solution/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /23.010 Swing Menus/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /23.010 Swing Menus/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /23.020 Save Dialogs/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /23.020 Save Dialogs/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /23.030 Getting the Selected File/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /23.030 Getting the Selected File/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /23.040 Saving the Grid/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /23.040 Saving the Grid/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /23.050 File Open Dialogs/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /23.050 File Open Dialogs/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /23.060 Loading Files/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /23.060 Loading Files/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /23.070 Error and Warning Messages/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /23.070 Error and Warning Messages/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /23.070 Error and Warning Messages/src/exceptions/MismatchedSizeException.java: -------------------------------------------------------------------------------- 1 | package exceptions; 2 | 3 | public class MismatchedSizeException extends Exception { 4 | private static final long serialVersionUID = 1L; 5 | 6 | } 7 | -------------------------------------------------------------------------------- /24.010 A Simple Hierarchy/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /24.010 A Simple Hierarchy/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | // TODO Auto-generated method stub 7 | 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /24.010 A Simple Hierarchy/src/heirarchy/Cat.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Cat extends Mammal { 4 | public Cat(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.010 A Simple Hierarchy/src/heirarchy/Creature.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Creature { 4 | private String name; 5 | 6 | public Creature(String name) { 7 | this.name = name; 8 | } 9 | 10 | @Override 11 | public String toString() { 12 | return name; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /24.010 A Simple Hierarchy/src/heirarchy/Mammal.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Mammal extends Creature { 4 | public Mammal(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.020 A Wrapper Class/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /24.020 A Wrapper Class/src/collections/Wrapper.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | public class Wrapper { 4 | private Object object; 5 | 6 | public void set(Object object) { 7 | this.object = object; 8 | } 9 | 10 | public Object get() { 11 | return object; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /24.020 A Wrapper Class/src/heirarchy/Cat.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Cat extends Mammal { 4 | public Cat(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.020 A Wrapper Class/src/heirarchy/Creature.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Creature { 4 | private String name; 5 | 6 | public Creature(String name) { 7 | this.name = name; 8 | } 9 | 10 | @Override 11 | public String toString() { 12 | return name; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /24.020 A Wrapper Class/src/heirarchy/Mammal.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Mammal extends Creature { 4 | public Mammal(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.030 Introducing Generics/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /24.030 Introducing Generics/src/collections/Wrapper.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | public class Wrapper { 4 | private E object; 5 | 6 | public void set(E object) { 7 | this.object = object; 8 | } 9 | 10 | public E get() { 11 | return object; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /24.030 Introducing Generics/src/heirarchy/Cat.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Cat extends Mammal { 4 | public Cat(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.030 Introducing Generics/src/heirarchy/Creature.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Creature { 4 | private String name; 5 | 6 | public Creature(String name) { 7 | this.name = name; 8 | } 9 | 10 | @Override 11 | public String toString() { 12 | return name; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /24.030 Introducing Generics/src/heirarchy/Mammal.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Mammal extends Creature { 4 | public Mammal(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.050 A Pair Class/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /24.050 A Pair Class/src/collections/Wrapper.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | public class Wrapper { 4 | private E object; 5 | 6 | public void set(E object) { 7 | this.object = object; 8 | } 9 | 10 | public E get() { 11 | return object; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /24.050 A Pair Class/src/heirarchy/Cat.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Cat extends Mammal { 4 | public Cat(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.050 A Pair Class/src/heirarchy/Creature.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Creature { 4 | private String name; 5 | 6 | public Creature(String name) { 7 | this.name = name; 8 | } 9 | 10 | @Override 11 | public String toString() { 12 | return name; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /24.050 A Pair Class/src/heirarchy/Mammal.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Mammal extends Creature { 4 | public Mammal(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.060 An Array Class/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /24.060 An Array Class/src/collections/Wrapper.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | public class Wrapper { 4 | private E object; 5 | 6 | public void set(E object) { 7 | this.object = object; 8 | } 9 | 10 | public E get() { 11 | return object; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /24.060 An Array Class/src/heirarchy/Cat.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Cat extends Mammal { 4 | public Cat(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.060 An Array Class/src/heirarchy/Creature.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Creature { 4 | private String name; 5 | 6 | public Creature(String name) { 7 | this.name = name; 8 | } 9 | 10 | @Override 11 | public String toString() { 12 | return name; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /24.060 An Array Class/src/heirarchy/Mammal.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Mammal extends Creature { 4 | public Mammal(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.070 Generic Methods/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /24.070 Generic Methods/src/collections/Wrapper.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | public class Wrapper { 4 | private E object; 5 | 6 | public void set(E object) { 7 | this.object = object; 8 | } 9 | 10 | public E get() { 11 | return object; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /24.070 Generic Methods/src/heirarchy/Cat.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Cat extends Mammal { 4 | public Cat(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.070 Generic Methods/src/heirarchy/Creature.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Creature { 4 | private String name; 5 | 6 | public Creature(String name) { 7 | this.name = name; 8 | } 9 | 10 | @Override 11 | public String toString() { 12 | return name; 13 | } 14 | 15 | public void feed() { 16 | System.out.println("Creature feeding"); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /24.070 Generic Methods/src/heirarchy/Mammal.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Mammal extends Creature { 4 | public Mammal(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.080 Generic Bounds/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /24.080 Generic Bounds/src/collections/Wrapper.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | public class Wrapper { 4 | private E object; 5 | 6 | public void set(E object) { 7 | this.object = object; 8 | } 9 | 10 | public E get() { 11 | return object; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /24.080 Generic Bounds/src/heirarchy/Cat.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Cat extends Mammal { 4 | public Cat(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.080 Generic Bounds/src/heirarchy/Creature.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Creature { 4 | private String name; 5 | 6 | public Creature(String name) { 7 | this.name = name; 8 | } 9 | 10 | @Override 11 | public String toString() { 12 | return name; 13 | } 14 | 15 | public void feed() { 16 | System.out.println(name + " feeding"); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /24.080 Generic Bounds/src/heirarchy/Mammal.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Mammal extends Creature { 4 | public Mammal(String name) { 5 | super(name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /24.090 Super and PECS I/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /24.090 Super and PECS I/src/collections/Wrapper.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | public class Wrapper { 4 | private E object; 5 | 6 | public void set(E object) { 7 | this.object = object; 8 | } 9 | 10 | public E get() { 11 | return object; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /24.090 Super and PECS I/src/heirarchy/Cat.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Cat extends Mammal { 4 | public Cat(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.090 Super and PECS I/src/heirarchy/Creature.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Creature { 4 | private String name; 5 | 6 | public Creature(String name) { 7 | this.name = name; 8 | } 9 | 10 | @Override 11 | public String toString() { 12 | return name; 13 | } 14 | 15 | public void feed() { 16 | System.out.println(name + " feeding"); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /24.090 Super and PECS I/src/heirarchy/Mammal.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Mammal extends Creature { 4 | public Mammal(String name) { 5 | super(name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /24.100 Super and PECS 2/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /24.100 Super and PECS 2/src/collections/Wrapper.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | public class Wrapper { 4 | private E object; 5 | 6 | public void set(E object) { 7 | this.object = object; 8 | } 9 | 10 | public E get() { 11 | return object; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /24.100 Super and PECS 2/src/heirarchy/Cat.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Cat extends Mammal { 4 | public Cat(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.100 Super and PECS 2/src/heirarchy/Creature.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Creature { 4 | private String name; 5 | 6 | public Creature(String name) { 7 | this.name = name; 8 | } 9 | 10 | @Override 11 | public String toString() { 12 | return name; 13 | } 14 | 15 | public void feed() { 16 | System.out.println(name + " feeding"); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /24.100 Super and PECS 2/src/heirarchy/Mammal.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Mammal extends Creature { 4 | public Mammal(String name) { 5 | super(name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /24.110 Util Copy Exercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /24.110 Util Copy Exercise/src/collections/Util.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | import heirarchy.Mammal; 4 | 5 | public class Util { 6 | public static void copy(Array source, Array dest) { 7 | 8 | for(int i = 0; i < source.size(); i++) { 9 | Mammal m = source.get(i); 10 | dest.add(m); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /24.110 Util Copy Exercise/src/collections/Wrapper.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | public class Wrapper { 4 | private E object; 5 | 6 | public void set(E object) { 7 | this.object = object; 8 | } 9 | 10 | public E get() { 11 | return object; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /24.110 Util Copy Exercise/src/heirarchy/Cat.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Cat extends Mammal { 4 | public Cat(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.110 Util Copy Exercise/src/heirarchy/Creature.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Creature { 4 | private String name; 5 | 6 | public Creature(String name) { 7 | this.name = name; 8 | } 9 | 10 | @Override 11 | public String toString() { 12 | return name; 13 | } 14 | 15 | public void feed() { 16 | System.out.println(name + " feeding"); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /24.110 Util Copy Exercise/src/heirarchy/Mammal.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Mammal extends Creature { 4 | public Mammal(String name) { 5 | super(name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /24.120 Add All Exercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /24.120 Add All Exercise/src/collections/Util.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | import heirarchy.Mammal; 4 | 5 | public class Util { 6 | public static void copy(Array source, Array dest) { 7 | 8 | for(int i = 0; i < source.size(); i++) { 9 | Mammal m = source.get(i); 10 | dest.add(m); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /24.120 Add All Exercise/src/collections/Wrapper.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | public class Wrapper { 4 | private E object; 5 | 6 | public void set(E object) { 7 | this.object = object; 8 | } 9 | 10 | public E get() { 11 | return object; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /24.120 Add All Exercise/src/heirarchy/Cat.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Cat extends Mammal { 4 | public Cat(String name) { 5 | super(name); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /24.120 Add All Exercise/src/heirarchy/Creature.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Creature { 4 | private String name; 5 | 6 | public Creature(String name) { 7 | this.name = name; 8 | } 9 | 10 | @Override 11 | public String toString() { 12 | return name; 13 | } 14 | 15 | public void feed() { 16 | System.out.println(name + " feeding"); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /24.120 Add All Exercise/src/heirarchy/Mammal.java: -------------------------------------------------------------------------------- 1 | package heirarchy; 2 | 3 | public class Mammal extends Creature { 4 | public Mammal(String name) { 5 | super(name); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /25.010 ArrayList/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.020 Iterating through ArrayList/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.030 Custom Objects in ArrayLists/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.040 Sorting Lists/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.050 Implementing Comparable/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.060 How Comparable Works/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.070 Comparable Example/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.080 Comparators/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.090 ArrayList Exercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.100 LinkedList/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.110 The List Interface/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.120 Initializing Lists With Lists/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.130 Static Methods in Interfaces/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.130 Static Methods in Interfaces/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | 8 | 9 | Test.run(); 10 | } 11 | 12 | 13 | 14 | } 15 | -------------------------------------------------------------------------------- /25.140 Variable Arguments/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.140 Variable Arguments/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | new App().run(4, "hello", "how", "are", "you"); 7 | } 8 | 9 | public void run(int value, String... texts) { 10 | 11 | System.out.println(value); 12 | 13 | for(var t: texts) { 14 | System.out.println(t); 15 | } 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /25.150 Timing List Operations Exercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.160 Timing List Operations Solution/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.170 Time Complexity/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.170 Time Complexity/timings.txt: -------------------------------------------------------------------------------- 1 | 0 0 2 | 50000 3 3 | 100000 3 4 | 150000 2 5 | 200000 8 6 | 250000 12 7 | 300000 11 8 | 350000 11 9 | 400000 17 10 | 450000 18 11 | 500000 22 12 | 550000 30 13 | 600000 31 14 | 650000 41 15 | 700000 41 16 | 750000 50 17 | 800000 51 18 | 850000 63 19 | 900000 68 20 | 950000 73 21 | -------------------------------------------------------------------------------- /25.180 Instanceof/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.190 Equals/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.200 Removing Items From Lists/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.210 ConcurrentModificationException/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.210 ConcurrentModificationException/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class App { 7 | 8 | public static void main(String[] args) { 9 | 10 | ArrayList list = new ArrayList<>(List.of(1,2,3)); 11 | 12 | for(var n: list) { 13 | list.remove(n); 14 | } 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /25.220 Iterators/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.230 Getting Creative With Iterators/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.240 Modifying Lists While Iterating/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.250 Ring Buffer Exercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.260 Ring Buffer Solution/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.270 Implementing Iterable/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.280 Circular Iterator Exercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.290 Circular Iterator Solution/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.300 ForEachAndIterators/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.310 HashSet/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.320 Hashing Algorithms/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.330 The hashCode Method/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.340 UnionAndIntersection/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.350 RemoveAll/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.360 LinkedHashSet/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.370 TreeSet/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.380 Set and SortedSet/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.390 Collections Review/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.400 Sets And Lists Exercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.410 Sets And Lists Solution 1/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.420 Sets and Lists Solution 2/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.430 Sets And Lists Solution 3/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.440 HashMaps/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.450 Static Imports/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.450 Static Imports/src/App.java: -------------------------------------------------------------------------------- 1 | 2 | import static java.lang.Math.PI; 3 | import static java.lang.Math.abs; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | System.out.println(PI); 9 | 10 | System.out.println(abs(-8)); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /25.460 Initializing Maps/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.470 Iterating Through Maps/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.480 Ordered Maps/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.490 Custom Objects in Maps Exercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.500 Custom Objects in Maps Solution/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.510 Lists of Sets/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.520 MapsOfLists/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.530 Complex Data Structures/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /25.540 CollectionsAndInheritance/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /26.010 Playing a Note/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /26.020 Playing Chords/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /26.030 MidiExerciseSolution/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /27.010 Collections Rota Exercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /27.020 PersonClass/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /27.020 PersonClass/src/app/Skill.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public enum Skill { 4 | PROGRAMMING, ELECTRONICS, RECEPTION, ENGINEERING, MANAGEMENT 5 | } 6 | -------------------------------------------------------------------------------- /27.030 LoadingTheData/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /27.030 LoadingTheData/src/app/Skill.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public enum Skill { 4 | PROGRAMMING, ELECTRONICS, RECEPTION, ENGINEERING, MANAGEMENT 5 | } 6 | -------------------------------------------------------------------------------- /27.040 Rota Class/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /27.040 Rota Class/src/app/Skill.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public enum Skill { 4 | PROGRAMMING, ELECTRONICS, RECEPTION, ENGINEERING, MANAGEMENT 5 | } 6 | -------------------------------------------------------------------------------- /27.050 Implementing the Rota/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /27.050 Implementing the Rota/src/app/Days.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public enum Days { 4 | MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; 5 | } 6 | -------------------------------------------------------------------------------- /27.050 Implementing the Rota/src/app/Skill.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public enum Skill { 4 | PROGRAMMING, ELECTRONICS, RECEPTION, ENGINEERING, MANAGEMENT 5 | } 6 | -------------------------------------------------------------------------------- /27.060 Vital Skill Set/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /27.060 Vital Skill Set/src/app/Days.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public enum Days { 4 | MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; 5 | } 6 | -------------------------------------------------------------------------------- /27.060 Vital Skill Set/src/app/Skill.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public enum Skill { 4 | PROGRAMMING, ELECTRONICS, RECEPTION, ENGINEERING, MANAGEMENT 5 | } 6 | -------------------------------------------------------------------------------- /27.070 Rota Algorithm/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /27.070 Rota Algorithm/src/app/Days.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public enum Days { 4 | MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; 5 | } 6 | -------------------------------------------------------------------------------- /27.070 Rota Algorithm/src/app/Skill.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public enum Skill { 4 | PROGRAMMING, ELECTRONICS, RECEPTION, ENGINEERING, MANAGEMENT 5 | } 6 | -------------------------------------------------------------------------------- /27.100 Adding People/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /27.100 Adding People/src/app/Days.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public enum Days { 4 | MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; 5 | } 6 | -------------------------------------------------------------------------------- /27.100 Adding People/src/app/Skill.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public enum Skill { 4 | PROGRAMMING, ELECTRONICS, RECEPTION, ENGINEERING, MANAGEMENT 5 | } 6 | -------------------------------------------------------------------------------- /28.010 Lambda Expression Example/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.020 Functional Interfaces/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.020 Functional Interfaces/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | import java.util.List; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | 9 | var list = List.of("one", "two", "three"); 10 | 11 | list.forEach((s)->{ 12 | System.out.print(s); 13 | }); 14 | 15 | } 16 | 17 | 18 | 19 | } 20 | -------------------------------------------------------------------------------- /28.030 A Lambda Expression From Scratch/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.040 Lambda Expressions With Single Parameters/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.050 Multiple Parameter Lambdas/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.060 Return Values in Lambdas/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.070 LambdasAndCapture/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.100 Unmodifiable Lists/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.100 Unmodifiable Lists/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | People people = new People(); 7 | 8 | var peopleList1 = people.get(); 9 | 10 | //peopleList1.remove(1); 11 | 12 | var peopleList2 = people.get(); 13 | 14 | peopleList2.forEach(System.out::println); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /28.110 Predicates/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.120 Filtering Lists/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.120 Filtering Lists/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class App { 7 | public static void main(String[] args) { 8 | 9 | var numbers = new ArrayList<>(List.of(3, 5, 7, 2, 9, 10, 4)); 10 | 11 | numbers.removeIf(n -> n < 6); 12 | 13 | numbers.forEach(System.out::println); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /28.130 Function/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.140 ReplaceAll/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.150 LambdaExercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.160 Multithreading/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.170 Incrementing via Threads/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /28.180 Synchronized/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /29.010 Method References/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /29.020 Breaking Down Method References/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /29.020 Breaking Down Method References/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | @FunctionalInterface 4 | interface Greeter { 5 | void greet(); 6 | } 7 | 8 | public class App { 9 | 10 | public static void main(String[] args) { 11 | 12 | Greeter g = App::sayHello; 13 | 14 | g.greet(); 15 | } 16 | 17 | private static void sayHello() { 18 | System.out.println("Hello there"); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /29.030 Method Reference Examples/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /29.040 References to Methods of Particular Objects/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /29.050 References to Methods of Arbitary Objects/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /29.060 Compare To Method Reference/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /29.070 References to Constructors/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.010 Streams/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.010 Streams/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class App { 7 | 8 | public static void main(String[] args) { 9 | 10 | ArrayList numbers = new ArrayList<>(List.of(1, 6, 4, 6, 4, 8, 6)); 11 | 12 | numbers.stream().forEach(n -> { 13 | System.out.println(n); 14 | }); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /30.020 Generating Streams/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.030 Generating Streams from Files/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.030 Generating Streams from Files/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | import java.io.IOException; 4 | import java.nio.file.Files; 5 | import java.nio.file.Paths; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) throws IOException { 10 | 11 | Files.lines(Paths.get("greatexpectations.txt")).forEach(System.out::println); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /30.040 Transforming Streams/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.050 Regular Expressions/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.050 Regular Expressions/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | String line = "This is a sentence. It contains some words, and some punctuation."; 8 | 9 | String[] words = line.split("[^a-zA-Z]"); 10 | 11 | 12 | for(var word: words) { 13 | System.out.println(word); 14 | } 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /30.060 Collectors/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.070 Peek/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.080 FlatMap/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.080 FlatMap/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | import java.util.List; 4 | import java.util.Set; 5 | 6 | public class App { 7 | 8 | public static void main(String[] args) { 9 | 10 | List> list = List.of(Set.of(1, 2, 3), Set.of(4, 5, 6), Set.of(7, 8, 9)); 11 | 12 | list.stream() 13 | .flatMap(s -> s.stream()) 14 | .forEach(System.out::println); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /30.090 Stream Exercise 1/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.100 Reduce/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.110 Combiners/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.110 Combiners/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | import java.util.stream.Stream; 4 | 5 | public class App { 6 | 7 | public static void main(String[] args) { 8 | 9 | var result = Stream.of("hello", "how", "are", "you").parallel().reduce("", 10 | (partial, item) -> partial + " " + item, (partial1, partial2) -> partial1 + partial2); 11 | 12 | System.out.println(result); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /30.120 Stream Exercise 2/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.130 Implementing Collectors/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.140 Streams Exercise 3/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.150 Combining Maps/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.160 Implementing the Solution/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.170 Filter/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.180 Map Exercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.190 Sorting Streams/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.200 Group By/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.210 Streams and Static Imports/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.230 Stream Exercise 4/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.230 Stream Exercise 4/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | /* 8 | * 1 2 3 4 .... 9 | * 2 4 6 8 .... 10 | * 3 6 9 12 .... 11 | * .... 12 | * 12 24 36 .... 144 13 | */ 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /30.240 Multiplication Table With ForEach/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /30.250 Stream Multiplication in a Single String/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /32.010 Numbering Systems/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /32.020 Formatting Binary Numbers/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /32.020 Formatting Binary Numbers/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | int value = 0b101011; 8 | 9 | System.out.println(toBinary(value)); 10 | } 11 | 12 | public static String toBinary(int value) { 13 | return String.format("%8s", Integer.toBinaryString(value)).replace(" ", "0"); 14 | } 15 | 16 | 17 | } 18 | -------------------------------------------------------------------------------- /32.030 Bitwise And Or/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /32.040 Bitwise Exclusive Or and Not/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /32.050 Bitwise Shift/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /32.060 Bitwise Hexadecimal/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /32.070 Bitwise Exercise Solution/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /33.010 Hello Again Swing/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /33.010 Hello Again Swing/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import controller.Controller; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(Controller::new); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /33.010 Hello Again Swing/src/gui/MainFrame.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import javax.swing.JFrame; 4 | 5 | public class MainFrame extends JFrame { 6 | private static final long serialVersionUID = 1L; 7 | 8 | public MainFrame() { 9 | 10 | setDefaultCloseOperation(EXIT_ON_CLOSE); 11 | setSize(1000, 800); 12 | setVisible(true); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /33.020 Setting Pixels/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /33.020 Setting Pixels/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import controller.Controller; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(Controller::new); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /33.020 Setting Pixels/src/gui/MainFrame.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import javax.swing.JFrame; 4 | 5 | public class MainFrame extends JFrame { 6 | private static final long serialVersionUID = 1L; 7 | 8 | public MainFrame() { 9 | 10 | setDefaultCloseOperation(EXIT_ON_CLOSE); 11 | setSize(1000, 800); 12 | setVisible(true); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /33.030 Wolfram Code/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /33.030 Wolfram Code/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import controller.Controller; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(Controller::new); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /33.030 Wolfram Code/src/controller/Rule.java: -------------------------------------------------------------------------------- 1 | package controller; 2 | 3 | public class Rule { 4 | 5 | private int rule; 6 | 7 | public Rule(int rule) { 8 | this.rule = rule; 9 | } 10 | 11 | public int get(int i) { 12 | return (rule >> i) & 1; 13 | } 14 | 15 | public String toString() { 16 | return String.format("%8s", Integer.toBinaryString(rule)).replace(" ", "0"); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /33.030 Wolfram Code/src/gui/MainFrame.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import javax.swing.JFrame; 4 | 5 | public class MainFrame extends JFrame { 6 | private static final long serialVersionUID = 1L; 7 | 8 | public MainFrame() { 9 | 10 | setDefaultCloseOperation(EXIT_ON_CLOSE); 11 | setSize(1000, 800); 12 | setVisible(true); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /33.040 Using the Wolfram Code/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /33.040 Using the Wolfram Code/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import controller.Controller; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(Controller::new); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /33.040 Using the Wolfram Code/src/gui/MainFrame.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import javax.swing.JFrame; 4 | 5 | public class MainFrame extends JFrame { 6 | private static final long serialVersionUID = 1L; 7 | 8 | public MainFrame() { 9 | 10 | setDefaultCloseOperation(EXIT_ON_CLOSE); 11 | setSize(1000, 800); 12 | setVisible(true); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /33.050 Getting Colors/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /33.050 Getting Colors/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import controller.Controller; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(Controller::new); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /33.050 Getting Colors/src/controller/Rule.java: -------------------------------------------------------------------------------- 1 | package controller; 2 | 3 | public class Rule { 4 | 5 | private int rule; 6 | 7 | public Rule(int rule) { 8 | this.rule = rule; 9 | } 10 | 11 | public int get(int i) { 12 | return (rule >> i) & 1; 13 | } 14 | 15 | public String toString() { 16 | return String.format("%8s", Integer.toBinaryString(rule)).replace(" ", "0"); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /33.050 Getting Colors/src/gui/MainFrame.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import javax.swing.JFrame; 4 | 5 | public class MainFrame extends JFrame { 6 | private static final long serialVersionUID = 1L; 7 | 8 | public MainFrame() { 9 | 10 | setDefaultCloseOperation(EXIT_ON_CLOSE); 11 | setSize(1000, 800); 12 | setVisible(true); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /33.060 Forming the Index/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /33.060 Forming the Index/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import controller.Controller; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(Controller::new); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /33.060 Forming the Index/src/gui/MainFrame.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import javax.swing.JFrame; 4 | 5 | public class MainFrame extends JFrame { 6 | private static final long serialVersionUID = 1L; 7 | 8 | public MainFrame() { 9 | 10 | setDefaultCloseOperation(EXIT_ON_CLOSE); 11 | setSize(1000, 800); 12 | setVisible(true); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /33.070 Implementing the Rule/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /33.070 Implementing the Rule/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import controller.Controller; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(Controller::new); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /33.070 Implementing the Rule/src/gui/MainFrame.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import javax.swing.JFrame; 4 | 5 | public class MainFrame extends JFrame { 6 | private static final long serialVersionUID = 1L; 7 | 8 | public MainFrame() { 9 | 10 | setDefaultCloseOperation(EXIT_ON_CLOSE); 11 | setSize(1000, 800); 12 | setVisible(true); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /34.020 Creating a Module/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /34.020 Creating a Module/src/cellular/Rule.java: -------------------------------------------------------------------------------- 1 | package cellular; 2 | 3 | public class Rule { 4 | 5 | private int rule; 6 | 7 | public Rule(int rule) { 8 | this.rule = rule; 9 | } 10 | 11 | public int get(int i) { 12 | return (rule >> i) & 1; 13 | } 14 | 15 | public String toString() { 16 | return String.format("%8s", Integer.toBinaryString(rule)).replace(" ", "0"); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /34.020 Creating a Module/src/module-info.java: -------------------------------------------------------------------------------- 1 | module com.caveofprogramming.cellular { 2 | exports cellular; 3 | } -------------------------------------------------------------------------------- /34.030 Using Modules/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /34.030 Using Modules/src/app/App.java: -------------------------------------------------------------------------------- 1 | package app; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import controller.Controller; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(Controller::new); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /34.030 Using Modules/src/gui/MainFrame.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import javax.swing.JFrame; 4 | 5 | public class MainFrame extends JFrame { 6 | private static final long serialVersionUID = 1L; 7 | 8 | public MainFrame() { 9 | 10 | setDefaultCloseOperation(EXIT_ON_CLOSE); 11 | setSize(1000, 800); 12 | setVisible(true); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /34.030 Using Modules/src/module-info.java: -------------------------------------------------------------------------------- 1 | module cellular { 2 | requires java.desktop; 3 | requires com.caveofprogramming.cellular; 4 | } -------------------------------------------------------------------------------- /36.020 Factorial Solution/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /36.030 Recursion/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /36.040 UsingRecursion/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /36.050 Recursive Factorial Solution/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /GenerateWave/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /GenerateWave/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import java.io.UnsupportedEncodingException; 4 | 5 | public class App { 6 | public static void main(String[] args) throws UnsupportedEncodingException { 7 | 8 | String filename = "test.wav"; 9 | 10 | Wav wav = new Wav("test.wav", 3.0); 11 | wav.write(); 12 | 13 | System.out.println("Written " + filename); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /JarExport/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /JarImport/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /JarImport/lib/gameoflife-1.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caveofprogramming/java-beginners-11/84179e776532cc47a93737257da210b956026148/JarImport/lib/gameoflife-1.0.jar -------------------------------------------------------------------------------- /JarImport/lib/model.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caveofprogramming/java-beginners-11/84179e776532cc47a93737257da210b956026148/JarImport/lib/model.jar -------------------------------------------------------------------------------- /JarImport/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # java-beginners-11 2 | Code for Java 11 for Complete Beginners tutorial 3 | 4 | https://www.udemy.com/course/java-11-complete-beginners 5 | 6 | 7 | -------------------------------------------------------------------------------- /ReactionTimes/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /ReactionTimes/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | public class App { 6 | public static void main(String[] args) { 7 | 8 | // Create a "Controller" in a Swing thread. 9 | SwingUtilities.invokeLater(() -> new Controller()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ReactionTimes/src/interfaces/FileListener.java: -------------------------------------------------------------------------------- 1 | package interfaces; 2 | 3 | import java.io.File; 4 | 5 | public interface FileListener { 6 | void save(File file); 7 | } 8 | -------------------------------------------------------------------------------- /ReactionTimes/src/interfaces/QuitListener.java: -------------------------------------------------------------------------------- 1 | package interfaces; 2 | 3 | public interface QuitListener { 4 | 5 | void quit(); 6 | } 7 | -------------------------------------------------------------------------------- /ReactionTimes/src/interfaces/SpacebarListener.java: -------------------------------------------------------------------------------- 1 | package interfaces; 2 | 3 | public interface SpacebarListener { 4 | public void onSpacebar(); 5 | } 6 | -------------------------------------------------------------------------------- /ReactionTimes/src/interfaces/TestListener.java: -------------------------------------------------------------------------------- 1 | package interfaces; 2 | 3 | public interface TestListener { 4 | void testComplete(); 5 | } 6 | -------------------------------------------------------------------------------- /cellular-1.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caveofprogramming/java-beginners-11/84179e776532cc47a93737257da210b956026148/cellular-1.0.jar -------------------------------------------------------------------------------- /orphaned/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /orphaned/CollectionsExercise/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /orphaned/DefaultMethods/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /orphaned/DefaultMethods/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | Describable[] objs = {new Person(), new Computer()}; 8 | 9 | for(Describable obj: objs) { 10 | System.out.println(obj.getDescription()); 11 | } 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /orphaned/DefaultMethods/src/application/Computer.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Computer implements Describable { 4 | public String getDescription() { 5 | return "This is a computer"; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /orphaned/DefaultMethods/src/application/Describable.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public interface Describable { 4 | public String getDescription(); 5 | } 6 | -------------------------------------------------------------------------------- /orphaned/DefaultMethods/src/application/Person.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class Person implements Describable { 4 | 5 | @Override 6 | public String getDescription() { 7 | return "I am a person"; 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /orphaned/DisplayingBlanks/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /orphaned/DisplayingBlanks/src/App.java: -------------------------------------------------------------------------------- 1 | 2 | public class App { 3 | 4 | public static void main(String[] args) { 5 | 6 | Hangman hangman = new Hangman(); 7 | 8 | hangman.newGame(); 9 | 10 | do { 11 | hangman.displayWord(); 12 | hangman.guessLetter(); 13 | } while(hangman.isRunning()); 14 | 15 | 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /orphaned/DisplayingWords/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /orphaned/DisplayingWords/src/App.java: -------------------------------------------------------------------------------- 1 | 2 | public class App { 3 | 4 | public static void main(String[] args) { 5 | 6 | Hangman hangman = new Hangman(); 7 | 8 | hangman.newGame(); 9 | 10 | do { 11 | hangman.displayWord(); 12 | hangman.guessLetter(); 13 | } while(hangman.isRunning()); 14 | 15 | 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /orphaned/FloatingPointVariables/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /orphaned/FloatingPointVariables/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | int cats; 8 | cats = 7; 9 | 10 | System.out.println(cats); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /orphaned/HandlingResize/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /orphaned/HandlingResize/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import gui.MainFrame; 6 | 7 | public class App { 8 | 9 | public static void main(String[] args) { 10 | SwingUtilities.invokeLater(()->new MainFrame()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /orphaned/MainRevisited/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /orphaned/MainRevisited/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | public class App { 4 | 5 | public static void main(String[] args) { 6 | 7 | 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /orphaned/README.md: -------------------------------------------------------------------------------- 1 | This is random stuff that I think is useless, but I'm not 100% sure. 2 | 3 | -------------------------------------------------------------------------------- /orphaned/SwingExample/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /orphaned/TheGuessWordClass/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /orphaned/TheGuessWordClass/src/application/App.java: -------------------------------------------------------------------------------- 1 | package application; 2 | 3 | 4 | public class App { 5 | 6 | public static void main(String[] args) { 7 | 8 | for(int i = 0; i < 5; i++) { 9 | GuessWord guessWord = new GuessWord(); 10 | System.out.println(guessWord); 11 | } 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /orphaned/Threads/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | --------------------------------------------------------------------------------