From e9a51a62bb60dc072e578e4913c567a790632755 Mon Sep 17 00:00:00 2001 From: Apress Date: Tue, 18 Oct 2016 16:54:23 +0100 Subject: [PATCH] First commit --- BeginningJava8Fundamentals/build.xml | 73 + .../build/built-jar.properties | 4 + .../classes/com/jdojo/array/ArrayBounds.class | Bin 0 -> 728 bytes .../classes/com/jdojo/array/ArrayClass.class | Bin 0 -> 1631 bytes .../com/jdojo/array/ArrayCopyTest.class | Bin 0 -> 1653 bytes .../classes/com/jdojo/array/ArrayInit.class | Bin 0 -> 1396 bytes .../com/jdojo/array/ArrayListToArray.class | Bin 0 -> 1765 bytes .../build/classes/com/jdojo/array/Calc.class | Bin 0 -> 2203 bytes .../classes/com/jdojo/array/CommandLine.class | Bin 0 -> 913 bytes .../build/classes/com/jdojo/array/Item.class | Bin 0 -> 914 bytes .../classes/com/jdojo/array/MDAccess.class | Bin 0 -> 1066 bytes .../jdojo/array/ModifyArrayElementState.class | Bin 0 -> 1417 bytes .../com/jdojo/array/ModifyArrayElements.class | Bin 0 -> 1497 bytes .../com/jdojo/array/ModifyArrayParam.class | Bin 0 -> 1152 bytes .../com/jdojo/array/NameIterator.class | Bin 0 -> 1273 bytes .../classes/com/jdojo/array/RaggedArray.class | Bin 0 -> 995 bytes .../build/classes/com/jdojo/array/Swap.class | Bin 0 -> 1129 bytes .../com/jdojo/assertion/AssertTest.class | Bin 0 -> 952 bytes .../jdojo/assertion/AssertionStatusTest.class | Bin 0 -> 959 bytes .../classes/com/jdojo/cls/AccessLevel.class | Bin 0 -> 1432 bytes .../classes/com/jdojo/cls/AccessLevel2.class | Bin 0 -> 372 bytes .../com/jdojo/cls/AccessLevelTest1.class | Bin 0 -> 1201 bytes .../build/classes/com/jdojo/cls/Account.class | Bin 0 -> 1377 bytes .../classes/com/jdojo/cls/AccountTest.class | Bin 0 -> 1198 bytes .../classes/com/jdojo/cls/BadSwapTest.class | Bin 0 -> 1143 bytes .../build/classes/com/jdojo/cls/Car.class | Bin 0 -> 411 bytes .../build/classes/com/jdojo/cls/Cat.class | Bin 0 -> 422 bytes .../build/classes/com/jdojo/cls/CatTest.class | Bin 0 -> 480 bytes .../classes/com/jdojo/cls/DefaultInit.class | Bin 0 -> 1634 bytes .../build/classes/com/jdojo/cls/Dog.class | Bin 0 -> 750 bytes .../build/classes/com/jdojo/cls/DogTest.class | Bin 0 -> 543 bytes .../com/jdojo/cls/FieldAccessTest.class | Bin 0 -> 1293 bytes .../build/classes/com/jdojo/cls/Human.class | Bin 0 -> 341 bytes .../com/jdojo/cls/InstanceInitializer.class | Bin 0 -> 736 bytes .../classes/com/jdojo/cls/MainTest1.class | Bin 0 -> 591 bytes .../classes/com/jdojo/cls/MainTest2.class | Bin 0 -> 445 bytes .../classes/com/jdojo/cls/MathUtil5.class | Bin 0 -> 1151 bytes .../classes/com/jdojo/cls/MethodType.class | Bin 0 -> 988 bytes .../com/jdojo/cls/MethodTypeTest.class | Bin 0 -> 856 bytes .../jdojo/cls/PassByConstantValueTest.class | Bin 0 -> 1152 bytes .../jdojo/cls/PassByReferenceValueTest.class | Bin 0 -> 1472 bytes .../jdojo/cls/PassByReferenceValueTest2.class | Bin 0 -> 1080 bytes .../classes/com/jdojo/cls/SmartDog.class | Bin 0 -> 1641 bytes .../classes/com/jdojo/cls/SmartDogTest.class | Bin 0 -> 800 bytes .../com/jdojo/cls/StaticImportTest.class | Bin 0 -> 588 bytes .../com/jdojo/cls/StaticImportTest2.class | Bin 0 -> 1085 bytes .../com/jdojo/cls/StaticInitializer.class | Bin 0 -> 1167 bytes .../classes/com/jdojo/cls/ThisTest4.class | Bin 0 -> 934 bytes .../classes/com/jdojo/cls/ThisTest5.class | Bin 0 -> 1001 bytes .../classes/com/jdojo/cls/ThisTest6.class | Bin 0 -> 1004 bytes .../build/classes/com/jdojo/cls/Wrapper.class | Bin 0 -> 786 bytes .../classes/com/jdojo/cls/WrapperTest.class | Bin 0 -> 1232 bytes .../com/jdojo/cls/p1/AccessLevelTest2.class | Bin 0 -> 996 bytes .../classes/com/jdojo/concepts/Person.class | Bin 0 -> 755 bytes .../classes/com/jdojo/concepts/Person2.class | Bin 0 -> 758 bytes .../classes/com/jdojo/datatype/NumTest.class | Bin 0 -> 1775 bytes .../com/jdojo/datetime/AdjustDates.class | Bin 0 -> 2473 bytes .../com/jdojo/datetime/ChristmasDay.class | Bin 0 -> 1728 bytes .../com/jdojo/datetime/CurrentDateTime.class | Bin 0 -> 1817 bytes .../jdojo/datetime/CurrentLegacyDate.class | Bin 0 -> 1053 bytes .../jdojo/datetime/CustomAdjusterTest.class | Bin 0 -> 1973 bytes .../com/jdojo/datetime/CustomAdjusters.class | Bin 0 -> 1852 bytes .../com/jdojo/datetime/CustomQueries.class | Bin 0 -> 1144 bytes .../com/jdojo/datetime/DateAndInstant.class | Bin 0 -> 1116 bytes .../datetime/DateTimeZoneConversion.class | Bin 0 -> 1685 bytes .../jdojo/datetime/FormattingDateTime.class | Bin 0 -> 2558 bytes .../com/jdojo/datetime/Friday13Query.class | Bin 0 -> 1521 bytes .../GregorianCalendarAndNewDateTime.class | Bin 0 -> 2534 bytes .../com/jdojo/datetime/GregorianDate.class | Bin 0 -> 1882 bytes .../jdojo/datetime/InstantDurationTest.class | Bin 0 -> 1838 bytes .../jdojo/datetime/InterCalendarDates.class | Bin 0 -> 1546 bytes .../jdojo/datetime/LocalDateTimeTest.class | Bin 0 -> 1951 bytes .../datetime/LocalTimeFromZonedDateTime.class | Bin 0 -> 2405 bytes .../com/jdojo/datetime/LocalizedFormats.class | Bin 0 -> 2774 bytes .../com/jdojo/datetime/MonthTest.class | Bin 0 -> 1259 bytes .../jdojo/datetime/OffsetDateTimeTest.class | Bin 0 -> 2379 bytes .../jdojo/datetime/OptionalSectionTest.class | Bin 0 -> 1476 bytes .../com/jdojo/datetime/ParseBestTest.class | Bin 0 -> 3110 bytes .../classes/com/jdojo/datetime/Partials.class | Bin 0 -> 2108 bytes .../com/jdojo/datetime/PeriodTest.class | Bin 0 -> 1825 bytes .../com/jdojo/datetime/PrintAllZoneIds.class | Bin 0 -> 1065 bytes .../com/jdojo/datetime/QueryTest.class | Bin 0 -> 2148 bytes .../com/jdojo/datetime/TimeBetween.class | Bin 0 -> 1981 bytes .../com/jdojo/datetime/ZoneOffsetTest.class | Bin 0 -> 1495 bytes .../com/jdojo/datetime/ZoneRulesTest.class | Bin 0 -> 2129 bytes .../jdojo/datetime/ZonedDateTimeTest.class | Bin 0 -> 2379 bytes .../classes/com/jdojo/enums/Command.class | Bin 0 -> 135 bytes .../com/jdojo/enums/CommandList$1.class | Bin 0 -> 674 bytes .../com/jdojo/enums/CommandList$2.class | Bin 0 -> 717 bytes .../classes/com/jdojo/enums/CommandList.class | Bin 0 -> 1373 bytes .../classes/com/jdojo/enums/CommandTest.class | Bin 0 -> 703 bytes .../build/classes/com/jdojo/enums/Day.class | Bin 0 -> 1179 bytes .../classes/com/jdojo/enums/EnumSetTest.class | Bin 0 -> 1910 bytes .../com/jdojo/enums/ListEnumConstants.class | Bin 0 -> 1132 bytes .../com/jdojo/enums/Person$Gender.class | Bin 0 -> 1048 bytes .../classes/com/jdojo/enums/Person.class | Bin 0 -> 354 bytes .../classes/com/jdojo/enums/Severity.class | Bin 0 -> 1051 bytes .../com/jdojo/enums/SmartSeverity.class | Bin 0 -> 1298 bytes .../com/jdojo/enums/SmartSeverityTest.class | Bin 0 -> 1255 bytes .../jdojo/enums/SuperSmartSeverity$1.class | Bin 0 -> 697 bytes .../jdojo/enums/SuperSmartSeverity$2.class | Bin 0 -> 747 bytes .../jdojo/enums/SuperSmartSeverity$3.class | Bin 0 -> 747 bytes .../jdojo/enums/SuperSmartSeverity$4.class | Bin 0 -> 747 bytes .../com/jdojo/enums/SuperSmartSeverity.class | Bin 0 -> 2130 bytes .../jdojo/enums/SuperSmartSeverityTest.class | Bin 0 -> 1533 bytes .../com/jdojo/exception/DivideByZero.class | Bin 0 -> 838 bytes .../exception/DivideByZeroWithTryCatch.class | Bin 0 -> 1212 bytes .../com/jdojo/exception/FinallyTest.class | Bin 0 -> 1770 bytes .../com/jdojo/exception/MyException.class | Bin 0 -> 733 bytes .../com/jdojo/exception/MyResource.class | Bin 0 -> 1237 bytes .../com/jdojo/exception/ReadInput.class | Bin 0 -> 831 bytes .../com/jdojo/exception/ReadInput2.class | Bin 0 -> 625 bytes .../com/jdojo/exception/ReadInput2Test2.class | Bin 0 -> 1169 bytes .../com/jdojo/exception/ReadInput2Test3.class | Bin 0 -> 1017 bytes .../com/jdojo/exception/ReadInputTest.class | Bin 0 -> 967 bytes .../com/jdojo/exception/RethrowTest.class | Bin 0 -> 938 bytes .../exception/SimpleTryWithResource.class | Bin 0 -> 913 bytes .../com/jdojo/exception/StackFrameTest.class | Bin 0 -> 1997 bytes .../exception/StackTraceAsStringTest.class | Bin 0 -> 1492 bytes .../com/jdojo/exception/StackTraceTest.class | Bin 0 -> 828 bytes .../com/jdojo/format/DecimalFormatter.class | Bin 0 -> 1877 bytes .../format/DefaultNumberFormatters.class | Bin 0 -> 1654 bytes .../com/jdojo/format/FormattablePerson.class | Bin 0 -> 1333 bytes .../com/jdojo/format/ParseTimeStamp.class | Bin 0 -> 1588 bytes .../jdojo/format/PredefinedDateFormats.class | Bin 0 -> 2114 bytes .../classes/com/jdojo/format/PrintfTest.class | Bin 0 -> 1210 bytes .../classes/com/jdojo/inheritance/AOSub.class | Bin 0 -> 635 bytes .../com/jdojo/inheritance/AOSuper.class | Bin 0 -> 526 bytes .../com/jdojo/inheritance/AOTest.class | Bin 0 -> 570 bytes .../classes/com/jdojo/inheritance/Adder.class | Bin 0 -> 484 bytes .../classes/com/jdojo/inheritance/CSub.class | Bin 0 -> 472 bytes .../com/jdojo/inheritance/CSuper.class | Bin 0 -> 468 bytes .../classes/com/jdojo/inheritance/CTest.class | Bin 0 -> 497 bytes .../com/jdojo/inheritance/Circle.class | Bin 0 -> 809 bytes .../jdojo/inheritance/EarlyBindingSub.class | Bin 0 -> 725 bytes .../jdojo/inheritance/EarlyBindingSuper.class | Bin 0 -> 711 bytes .../jdojo/inheritance/EarlyBindingTest.class | Bin 0 -> 1163 bytes .../com/jdojo/inheritance/EmpUtil.class | Bin 0 -> 706 bytes .../com/jdojo/inheritance/Employee.class | Bin 0 -> 566 bytes .../com/jdojo/inheritance/Employee2.class | Bin 0 -> 592 bytes .../com/jdojo/inheritance/FHidingSub.class | Bin 0 -> 844 bytes .../com/jdojo/inheritance/FHidingSub2.class | Bin 0 -> 901 bytes .../com/jdojo/inheritance/FHidingSub3.class | Bin 0 -> 1010 bytes .../com/jdojo/inheritance/FHidingSuper.class | Bin 0 -> 416 bytes .../com/jdojo/inheritance/FHidingTest.class | Bin 0 -> 556 bytes .../com/jdojo/inheritance/FHidingTest2.class | Bin 0 -> 562 bytes .../com/jdojo/inheritance/FHidingTest3.class | Bin 0 -> 562 bytes .../com/jdojo/inheritance/GenericSuper.class | Bin 0 -> 859 bytes .../jdojo/inheritance/LateBindingSub.class | Bin 0 -> 576 bytes .../jdojo/inheritance/LateBindingSuper.class | Bin 0 -> 562 bytes .../jdojo/inheritance/LateBindingTest.class | Bin 0 -> 735 bytes .../com/jdojo/inheritance/MHidingSub.class | Bin 0 -> 538 bytes .../com/jdojo/inheritance/MHidingSuper.class | Bin 0 -> 528 bytes .../com/jdojo/inheritance/MHidingTest.class | Bin 0 -> 923 bytes .../com/jdojo/inheritance/Manager.class | Bin 0 -> 304 bytes .../com/jdojo/inheritance/Manager2.class | Bin 0 -> 369 bytes .../com/jdojo/inheritance/Manager2Test.class | Bin 0 -> 943 bytes .../jdojo/inheritance/OverloadingTest.class | Bin 0 -> 1805 bytes .../com/jdojo/inheritance/Rectangle.class | Bin 0 -> 842 bytes .../classes/com/jdojo/inheritance/Shape.class | Bin 0 -> 713 bytes .../com/jdojo/inheritance/ShapeUtil.class | Bin 0 -> 1329 bytes .../com/jdojo/inheritance/ShapeUtilTest.class | Bin 0 -> 835 bytes .../inheritance/SimplestInheritanceTest.class | Bin 0 -> 1003 bytes .../com/jdojo/inheritance/UpcastTest.class | Bin 0 -> 831 bytes .../classes/com/jdojo/interfaces/Cat.class | Bin 0 -> 780 bytes .../com/jdojo/interfaces/CharitySinger.class | Bin 0 -> 424 bytes .../interfaces/CharitySingerPlayer.class | Bin 0 -> 427 bytes .../com/jdojo/interfaces/Choices.class | Bin 0 -> 189 bytes .../com/jdojo/interfaces/ChoicesTest.class | Bin 0 -> 648 bytes .../jdojo/interfaces/ComparablePerson.class | Bin 0 -> 1611 bytes .../interfaces/ComparablePersonTest.class | Bin 0 -> 1294 bytes .../interfaces/ComparablePersonTest2.class | Bin 0 -> 2426 bytes .../classes/com/jdojo/interfaces/Duck.class | Bin 0 -> 784 bytes .../interfaces/FirstNameComparator.class | Bin 0 -> 1080 bytes .../classes/com/jdojo/interfaces/Fish.class | Bin 0 -> 786 bytes .../com/jdojo/interfaces/Generous.class | Bin 0 -> 139 bytes .../com/jdojo/interfaces/GenerousGiver.class | Bin 0 -> 417 bytes .../classes/com/jdojo/interfaces/Giver.class | Bin 0 -> 282 bytes .../classes/com/jdojo/interfaces/Job$1.class | Bin 0 -> 199 bytes .../com/jdojo/interfaces/Job$EmptyJob.class | Bin 0 -> 798 bytes .../classes/com/jdojo/interfaces/Job.class | Bin 0 -> 450 bytes .../com/jdojo/interfaces/JobTest.class | Bin 0 -> 643 bytes .../jdojo/interfaces/LastNameComparator.class | Bin 0 -> 1099 bytes .../com/jdojo/interfaces/Melodist.class | Bin 0 -> 1124 bytes .../com/jdojo/interfaces/Movable.class | Bin 0 -> 515 bytes .../com/jdojo/interfaces/MovableTest.class | Bin 0 -> 846 bytes .../com/jdojo/interfaces/Munificent.class | Bin 0 -> 184 bytes .../jdojo/interfaces/MunificentGiver.class | Bin 0 -> 493 bytes .../classes/com/jdojo/interfaces/Named.class | Bin 0 -> 616 bytes .../classes/com/jdojo/interfaces/Pen.class | Bin 0 -> 1097 bytes .../classes/com/jdojo/interfaces/Person.class | Bin 0 -> 792 bytes .../classes/com/jdojo/interfaces/Player.class | Bin 0 -> 330 bytes .../classes/com/jdojo/interfaces/Singer.class | Bin 0 -> 184 bytes .../com/jdojo/interfaces/SingerPlayer.class | Bin 0 -> 455 bytes .../com/jdojo/interfaces/SingerWriter.class | Bin 0 -> 196 bytes .../com/jdojo/interfaces/StingyGiver.class | Bin 0 -> 381 bytes .../com/jdojo/interfaces/Swimmable.class | Bin 0 -> 141 bytes .../com/jdojo/interfaces/SwimmableTest.class | Bin 0 -> 839 bytes .../classes/com/jdojo/interfaces/Turtle.class | Bin 0 -> 1080 bytes .../com/jdojo/interfaces/TurtleTest.class | Bin 0 -> 1159 bytes .../com/jdojo/interfaces/Walkable.class | Bin 0 -> 429 bytes .../com/jdojo/interfaces/Walkables.class | Bin 0 -> 625 bytes .../com/jdojo/interfaces/WalkablesTest.class | Bin 0 -> 804 bytes .../classes/com/jdojo/interfaces/Writer.class | Bin 0 -> 185 bytes .../classes/com/jdojo/intro/Welcome.class | Bin 0 -> 571 bytes .../com/jdojo/object/BadImmutableTest.class | Bin 0 -> 1206 bytes .../build/classes/com/jdojo/object/Book.class | Bin 0 -> 869 bytes .../com/jdojo/object/CloningTest.class | Bin 0 -> 1169 bytes .../classes/com/jdojo/object/DeepClone.class | Bin 0 -> 1028 bytes .../com/jdojo/object/DeepCloneTest.class | Bin 0 -> 1149 bytes .../com/jdojo/object/DoubleHolder.class | Bin 0 -> 881 bytes .../classes/com/jdojo/object/Finalize.class | Bin 0 -> 773 bytes .../com/jdojo/object/FinalizeTest.class | Bin 0 -> 546 bytes .../classes/com/jdojo/object/IntHolder.class | Bin 0 -> 511 bytes .../com/jdojo/object/IntHolderWrapper.class | Bin 0 -> 661 bytes .../com/jdojo/object/IntHolderWrapper2.class | Bin 0 -> 717 bytes .../com/jdojo/object/IntHolderWrapper3.class | Bin 0 -> 628 bytes .../classes/com/jdojo/object/IntWrapper.class | Bin 0 -> 427 bytes .../com/jdojo/object/IntWrapper2.class | Bin 0 -> 626 bytes .../com/jdojo/object/ObjectsTest.class | Bin 0 -> 3441 bytes .../classes/com/jdojo/object/Point.class | Bin 0 -> 719 bytes .../com/jdojo/object/ShallowClone.class | Bin 0 -> 1014 bytes .../com/jdojo/object/ShallowCloneTest.class | Bin 0 -> 1164 bytes .../classes/com/jdojo/object/SmartCat.class | Bin 0 -> 888 bytes .../com/jdojo/object/SmartIntHolder.class | Bin 0 -> 733 bytes .../classes/com/jdojo/object/SmartPoint.class | Bin 0 -> 829 bytes .../com/jdojo/object/SmartPointTest.class | Bin 0 -> 1695 bytes .../com/jdojo/operator/ArithOperator.class | Bin 0 -> 1584 bytes .../com/jdojo/profiles/HelloCompact1.class | Bin 0 -> 592 bytes .../com/jdojo/profiles/RowSetTest.class | Bin 0 -> 889 bytes .../com/jdojo/profiles/SwingTest.class | Bin 0 -> 624 bytes .../com/jdojo/regex/AdvanceFindReplace.class | Bin 0 -> 2070 bytes .../com/jdojo/regex/MatchAndreplace.class | Bin 0 -> 1394 bytes .../com/jdojo/regex/MatchBoundary.class | Bin 0 -> 1208 bytes .../classes/com/jdojo/regex/NamedGroups.class | Bin 0 -> 1431 bytes .../com/jdojo/regex/PatternMatcher.class | Bin 0 -> 1854 bytes .../com/jdojo/regex/PhoneMatcher.class | Bin 0 -> 1432 bytes .../classes/com/jdojo/regex/RegexMatch.class | Bin 0 -> 1203 bytes .../com/jdojo/statement/PrintMatrix.class | Bin 0 -> 951 bytes .../string/CollatorStringComparison.class | Bin 0 -> 1778 bytes .../classes/com/jdojo/string/Palindrome.class | Bin 0 -> 1529 bytes .../com/jdojo/string/StringBuilderTest.class | Bin 0 -> 1522 bytes .../com/jdojo/string/StringComparison.class | Bin 0 -> 1006 bytes .../com/jdojo/string/StringInSwitch.class | Bin 0 -> 1189 bytes .../com/jdojo/string/StringLength.class | Bin 0 -> 1045 bytes .../classes/com/jdojo/utility/Calc.class | Bin 0 -> 756 bytes .../com/jdojo/utility/package-info.class | Bin 0 -> 123 bytes .../jdojo/wrapper/CachedWrapperObjects.class | Bin 0 -> 1662 bytes .../classes/com/jdojo/wrapper/MathUtil.class | Bin 0 -> 1333 bytes .../dist/BeginningJava8Fundamentals.jar | Bin 0 -> 304104 bytes BeginningJava8Fundamentals/dist/README.TXT | 32 + BeginningJava8Fundamentals/manifest.mf | 3 + .../nbproject/build-impl.xml | 1413 +++++++++++++++++ .../nbproject/genfiles.properties | 8 + .../nbproject/private/config.properties | 0 .../nbproject/private/private.properties | 6 + .../nbproject/private/private.xml | 7 + .../nbproject/project.properties | 90 ++ .../nbproject/project.xml | 15 + .../src/com/jdojo/array/ArrayBounds.java | 18 + .../src/com/jdojo/array/ArrayClass.java | 33 + .../src/com/jdojo/array/ArrayCopyTest.java | 52 + .../src/com/jdojo/array/ArrayInit.java | 32 + .../src/com/jdojo/array/ArrayListToArray.java | 46 + .../src/com/jdojo/array/Calc.java | 73 + .../src/com/jdojo/array/CommandLine.java | 14 + .../src/com/jdojo/array/Item.java | 24 + .../src/com/jdojo/array/MDAccess.java | 28 + .../jdojo/array/ModifyArrayElementState.java | 23 + .../com/jdojo/array/ModifyArrayElements.java | 35 + .../src/com/jdojo/array/ModifyArrayParam.java | 25 + .../src/com/jdojo/array/NameIterator.java | 39 + .../src/com/jdojo/array/RaggedArray.java | 31 + .../src/com/jdojo/array/Swap.java | 30 + .../src/com/jdojo/assertion/AssertTest.java | 9 + .../jdojo/assertion/AssertionStatusTest.java | 15 + .../src/com/jdojo/cls/AccessLevel.java | 33 + .../cls/AccessLevel/AccessLevelTest2.java | 32 + .../src/com/jdojo/cls/AccessLevel2.java | 6 + .../src/com/jdojo/cls/AccessLevelTest1.java | 31 + .../src/com/jdojo/cls/Account.java | 43 + .../src/com/jdojo/cls/AccountTest.java | 30 + .../src/com/jdojo/cls/BadSwapTest.java | 26 + .../src/com/jdojo/cls/Car.java | 8 + .../src/com/jdojo/cls/Cat.java | 8 + .../src/com/jdojo/cls/CatTest.java | 12 + .../src/com/jdojo/cls/DefaultInit.java | 28 + .../src/com/jdojo/cls/Dog.java | 14 + .../src/com/jdojo/cls/DogTest.java | 9 + .../src/com/jdojo/cls/FieldAccessTest.java | 32 + .../src/com/jdojo/cls/Human.java | 8 + .../com/jdojo/cls/InstanceInitializer.java | 20 + .../src/com/jdojo/cls/MainTest1.java | 8 + .../src/com/jdojo/cls/MainTest2.java | 8 + .../src/com/jdojo/cls/MathUtil5.java | 22 + .../src/com/jdojo/cls/MethodType.java | 25 + .../src/com/jdojo/cls/MethodTypeTest.java | 24 + .../jdojo/cls/PassByConstantValueTest.java | 24 + .../jdojo/cls/PassByReferenceValueTest.java | 37 + .../jdojo/cls/PassByReferenceValueTest2.java | 17 + .../src/com/jdojo/cls/SmartDog.java | 54 + .../src/com/jdojo/cls/SmartDogTest.java | 30 + .../src/com/jdojo/cls/StaticImportTest.java | 10 + .../src/com/jdojo/cls/StaticImportTest2.java | 18 + .../src/com/jdojo/cls/StaticInitializer.java | 39 + .../src/com/jdojo/cls/ThisTest4.java | 15 + .../src/com/jdojo/cls/ThisTest5.java | 16 + .../src/com/jdojo/cls/ThisTest6.java | 16 + .../src/com/jdojo/cls/Wrapper.java | 18 + .../src/com/jdojo/cls/WrapperTest.java | 18 + .../com/jdojo/cls/p1/AccessLevelTest3.java | 10 + .../src/com/jdojo/concepts/MathUtil.java | 15 + .../src/com/jdojo/concepts/Person.java | 49 + .../src/com/jdojo/concepts/Person2.java | 22 + .../src/com/jdojo/datatype/NumTest.java | 32 + .../src/com/jdojo/datetime/AdjustDates.java | 28 + .../src/com/jdojo/datetime/ChristmasDay.java | 25 + .../com/jdojo/datetime/CurrentDateTime.java | 29 + .../com/jdojo/datetime/CurrentLegacyDate.java | 15 + .../jdojo/datetime/CustomAdjusterTest.java | 31 + .../com/jdojo/datetime/CustomAdjusters.java | 31 + .../src/com/jdojo/datetime/CustomQueries.java | 22 + .../com/jdojo/datetime/DateAndInstant.java | 21 + .../datetime/DateTimeZoneConversion.java | 24 + .../jdojo/datetime/FormattingDateTime.java | 44 + .../src/com/jdojo/datetime/Friday13Query.java | 29 + .../GregorianCalendarAndNewDateTime.java | 55 + .../src/com/jdojo/datetime/GregorianDate.java | 39 + .../jdojo/datetime/InstantDurationTest.java | 33 + .../jdojo/datetime/InterCalendarDates.java | 20 + .../com/jdojo/datetime/LocalDateTimeTest.java | 32 + .../datetime/LocalTimeFromZonedDateTime.java | 38 + .../com/jdojo/datetime/LocalizedFormats.java | 60 + .../src/com/jdojo/datetime/MonthTest.java | 29 + .../jdojo/datetime/OffsetDateTimeTest.java | 50 + .../jdojo/datetime/OptionalSectionTest.java | 29 + .../src/com/jdojo/datetime/ParseBestTest.java | 43 + .../src/com/jdojo/datetime/Partials.java | 44 + .../src/com/jdojo/datetime/PeriodTest.java | 27 + .../com/jdojo/datetime/PrintAllZoneIds.java | 14 + .../src/com/jdojo/datetime/QueryTest.java | 38 + .../src/com/jdojo/datetime/TimeBetween.java | 35 + .../com/jdojo/datetime/ZoneOffsetTest.java | 26 + .../src/com/jdojo/datetime/ZoneRulesTest.java | 39 + .../com/jdojo/datetime/ZonedDateTimeTest.java | 48 + .../src/com/jdojo/enums/Command.java | 6 + .../src/com/jdojo/enums/CommandList.java | 18 + .../src/com/jdojo/enums/CommandTest.java | 11 + .../src/com/jdojo/enums/Day.java | 6 + .../src/com/jdojo/enums/EnumSetTest.java | 29 + .../com/jdojo/enums/ListEnumConstants.java | 12 + .../src/com/jdojo/enums/Person.java | 6 + .../src/com/jdojo/enums/Severity.java | 6 + .../src/com/jdojo/enums/SmartSeverity.java | 19 + .../com/jdojo/enums/SmartSeverityTest.java | 14 + .../com/jdojo/enums/SuperSmartSeverity.java | 51 + .../jdojo/enums/SuperSmartSeverityTest.java | 19 + .../src/com/jdojo/exception/DivideByZero.java | 10 + .../exception/DivideByZeroWithTryCatch.java | 21 + .../src/com/jdojo/exception/FinallyTest.java | 55 + .../src/com/jdojo/exception/MyException.java | 20 + .../src/com/jdojo/exception/MyResource.java | 29 + .../src/com/jdojo/exception/ReadInput.java | 21 + .../src/com/jdojo/exception/ReadInput2.java | 16 + .../com/jdojo/exception/ReadInput2Test2.java | 18 + .../com/jdojo/exception/ReadInput2Test3.java | 13 + .../com/jdojo/exception/ReadInputTest.java | 10 + .../src/com/jdojo/exception/RethrowTest.java | 28 + .../exception/SimpleTryWithResource.java | 13 + .../com/jdojo/exception/StackFrameTest.java | 49 + .../exception/StackTraceAsStringTest.java | 38 + .../com/jdojo/exception/StackTraceTest.java | 21 + .../com/jdojo/format/DecimalFormatter.java | 43 + .../jdojo/format/DefaultNumberFormatters.java | 30 + .../com/jdojo/format/FormattablePerson.java | 38 + .../src/com/jdojo/format/ParseTimeStamp.java | 35 + .../jdojo/format/PredefinedDateFormats.java | 62 + .../src/com/jdojo/format/PrintfTest.java | 24 + .../src/com/jdojo/inheritance/AOSub.java | 17 + .../src/com/jdojo/inheritance/AOSuper.java | 8 + .../src/com/jdojo/inheritance/AOTest.java | 10 + .../src/com/jdojo/inheritance/Adder.java | 12 + .../src/com/jdojo/inheritance/AdderTest.java | 9 + .../src/com/jdojo/inheritance/CSub.java | 9 + .../src/com/jdojo/inheritance/CSuper.java | 9 + .../src/com/jdojo/inheritance/CTest.java | 8 + .../src/com/jdojo/inheritance/Circle.java | 26 + .../jdojo/inheritance/EarlyBindingSub.java | 14 + .../jdojo/inheritance/EarlyBindingSuper.java | 14 + .../jdojo/inheritance/EarlyBindingTest.java | 59 + .../src/com/jdojo/inheritance/EmpUtil.java | 12 + .../src/com/jdojo/inheritance/Employee.java | 14 + .../src/com/jdojo/inheritance/Employee2.java | 18 + .../src/com/jdojo/inheritance/FHidingSub.java | 9 + .../com/jdojo/inheritance/FHidingSub2.java | 15 + .../com/jdojo/inheritance/FHidingSub3.java | 24 + .../com/jdojo/inheritance/FHidingSuper.java | 7 + .../com/jdojo/inheritance/FHidingTest.java | 9 + .../com/jdojo/inheritance/FHidingTest2.java | 9 + .../com/jdojo/inheritance/FHidingTest3.java | 9 + .../com/jdojo/inheritance/GenericSuper.java | 12 + .../com/jdojo/inheritance/LateBindingSub.java | 8 + .../jdojo/inheritance/LateBindingSuper.java | 8 + .../jdojo/inheritance/LateBindingTest.java | 25 + .../src/com/jdojo/inheritance/MHidingSub.java | 8 + .../com/jdojo/inheritance/MHidingSuper.java | 8 + .../com/jdojo/inheritance/MHidingTest.java | 29 + .../src/com/jdojo/inheritance/Manager.java | 6 + .../src/com/jdojo/inheritance/Manager2.java | 8 + .../com/jdojo/inheritance/Manager2Test.java | 10 + .../jdojo/inheritance/OverloadingTest.java | 52 + .../src/com/jdojo/inheritance/Rectangle.java | 29 + .../src/com/jdojo/inheritance/Shape.java | 27 + .../src/com/jdojo/inheritance/ShapeUtil.java | 25 + .../com/jdojo/inheritance/ShapeUtilTest.java | 17 + .../inheritance/SimplestInheritanceTest.java | 18 + .../src/com/jdojo/inheritance/UpcastTest.java | 16 + .../src/com/jdojo/interfaces/Cat.java | 14 + .../com/jdojo/interfaces/CharitySinger.java | 14 + .../jdojo/interfaces/CharitySingerPlayer.java | 15 + .../src/com/jdojo/interfaces/Choices.java | 7 + .../src/com/jdojo/interfaces/ChoicesTest.java | 9 + .../jdojo/interfaces/ComparablePerson.java | 43 + .../interfaces/ComparablePersonTest.java | 28 + .../interfaces/ComparablePersonTest2.java | 64 + .../src/com/jdojo/interfaces/Duck.java | 14 + .../jdojo/interfaces/FirstNameComparator.java | 13 + .../src/com/jdojo/interfaces/Fish.java | 14 + .../src/com/jdojo/interfaces/Generous.java | 6 + .../com/jdojo/interfaces/GenerousGiver.java | 7 + .../src/com/jdojo/interfaces/Giver.java | 5 + .../src/com/jdojo/interfaces/Job.java | 21 + .../src/com/jdojo/interfaces/JobTest.java | 12 + .../jdojo/interfaces/LastNameComparator.java | 13 + .../src/com/jdojo/interfaces/Melodist.java | 31 + .../src/com/jdojo/interfaces/Movable.java | 17 + .../src/com/jdojo/interfaces/MovableTest.java | 19 + .../src/com/jdojo/interfaces/Munificent.java | 6 + .../com/jdojo/interfaces/MunificentGiver.java | 10 + .../src/com/jdojo/interfaces/Named.java | 18 + .../src/com/jdojo/interfaces/Pen.java | 36 + .../src/com/jdojo/interfaces/Person.java | 14 + .../src/com/jdojo/interfaces/Player.java | 11 + .../src/com/jdojo/interfaces/Singer.java | 8 + .../com/jdojo/interfaces/SingerPlayer.java | 13 + .../com/jdojo/interfaces/SingerWriter.java | 6 + .../src/com/jdojo/interfaces/StingyGiver.java | 7 + .../src/com/jdojo/interfaces/Swimmable.java | 6 + .../com/jdojo/interfaces/SwimmableTest.java | 33 + .../src/com/jdojo/interfaces/Turtle.java | 25 + .../src/com/jdojo/interfaces/TurtleTest.java | 25 + .../src/com/jdojo/interfaces/Walkable.java | 14 + .../src/com/jdojo/interfaces/Walkables.java | 10 + .../com/jdojo/interfaces/WalkablesTest.java | 14 + .../src/com/jdojo/interfaces/Writer.java | 8 + .../src/com/jdojo/intro/Welcome.java | 8 + .../com/jdojo/object/BadImmutableTest.java | 17 + .../src/com/jdojo/object/Book.java | 42 + .../src/com/jdojo/object/CloningTest.java | 23 + .../src/com/jdojo/object/DeepClone.java | 33 + .../src/com/jdojo/object/DeepCloneTest.java | 21 + .../src/com/jdojo/object/DoubleHolder.java | 32 + .../src/com/jdojo/object/Finalize.java | 16 + .../src/com/jdojo/object/FinalizeTest.java | 11 + .../src/com/jdojo/object/IntHolder.java | 18 + .../com/jdojo/object/IntHolderWrapper.java | 18 + .../com/jdojo/object/IntHolderWrapper2.java | 23 + .../com/jdojo/object/IntHolderWrapper3.java | 21 + .../src/com/jdojo/object/IntWrapper.java | 14 + .../src/com/jdojo/object/IntWrapper2.java | 24 + .../src/com/jdojo/object/ObjectsTest.java | 62 + .../src/com/jdojo/object/Point.java | 18 + .../src/com/jdojo/object/ShallowClone.java | 29 + .../com/jdojo/object/ShallowCloneTest.java | 21 + .../src/com/jdojo/object/SmartCat.java | 43 + .../src/com/jdojo/object/SmartIntHolder.java | 25 + .../src/com/jdojo/object/SmartPoint.java | 44 + .../src/com/jdojo/object/SmartPointTest.java | 23 + .../src/com/jdojo/operator/ArithOperator.java | 52 + .../src/com/jdojo/profiles/HelloCompact1.java | 8 + .../src/com/jdojo/profiles/RowSetTest.java | 21 + .../src/com/jdojo/profiles/SwingTest.java | 12 + .../com/jdojo/regex/AdvanceFindReplace.java | 47 + .../src/com/jdojo/regex/MatchAndreplace.java | 26 + .../src/com/jdojo/regex/MatchBoundary.java | 17 + .../src/com/jdojo/regex/NamedGroups.java | 30 + .../src/com/jdojo/regex/PatternMatcher.java | 51 + .../src/com/jdojo/regex/PhoneMatcher.java | 28 + .../src/com/jdojo/regex/RegexMatch.java | 26 + .../src/com/jdojo/statement/PrintMatrix.java | 22 + .../string/CollatorStringComparison.java | 38 + .../src/com/jdojo/string/Palindrome.java | 53 + .../com/jdojo/string/StringBuilderTest.java | 43 + .../com/jdojo/string/StringComparison.java | 16 + .../src/com/jdojo/string/StringInSwitch.java | 36 + .../src/com/jdojo/string/StringLength.java | 18 + .../src/com/jdojo/utility/Calc.java | 88 + .../src/com/jdojo/utility/package-info.java | 7 + .../jdojo/wrapper/CachedWrapperObjects.java | 32 + .../src/com/jdojo/wrapper/MathUtil.java | 31 + 500 files changed, 7379 insertions(+) create mode 100644 BeginningJava8Fundamentals/build.xml create mode 100644 BeginningJava8Fundamentals/build/built-jar.properties create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/ArrayBounds.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/ArrayClass.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/ArrayCopyTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/ArrayInit.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/ArrayListToArray.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/Calc.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/CommandLine.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/Item.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/MDAccess.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/ModifyArrayElementState.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/ModifyArrayElements.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/ModifyArrayParam.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/NameIterator.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/RaggedArray.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/array/Swap.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/assertion/AssertTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/assertion/AssertionStatusTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/AccessLevel.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/AccessLevel2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/AccessLevelTest1.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Account.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/AccountTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/BadSwapTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Car.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Cat.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/CatTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/DefaultInit.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Dog.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/DogTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/FieldAccessTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Human.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/InstanceInitializer.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/MainTest1.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/MainTest2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/MathUtil5.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/MethodType.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/MethodTypeTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/PassByConstantValueTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/PassByReferenceValueTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/PassByReferenceValueTest2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/SmartDog.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/SmartDogTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/StaticImportTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/StaticImportTest2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/StaticInitializer.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/ThisTest4.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/ThisTest5.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/ThisTest6.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Wrapper.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/WrapperTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/cls/p1/AccessLevelTest2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/concepts/Person.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/concepts/Person2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datatype/NumTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/AdjustDates.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/ChristmasDay.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/CurrentDateTime.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/CurrentLegacyDate.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/CustomAdjusterTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/CustomAdjusters.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/CustomQueries.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/DateAndInstant.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/DateTimeZoneConversion.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/FormattingDateTime.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/Friday13Query.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/GregorianCalendarAndNewDateTime.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/GregorianDate.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/InstantDurationTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/InterCalendarDates.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/LocalDateTimeTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/LocalTimeFromZonedDateTime.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/LocalizedFormats.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/MonthTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/OffsetDateTimeTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/OptionalSectionTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/ParseBestTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/Partials.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/PeriodTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/PrintAllZoneIds.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/QueryTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/TimeBetween.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/ZoneOffsetTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/ZoneRulesTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/ZonedDateTimeTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/Command.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/CommandList$1.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/CommandList$2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/CommandList.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/CommandTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/Day.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/EnumSetTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/ListEnumConstants.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/Person$Gender.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/Person.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/Severity.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SmartSeverity.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SmartSeverityTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SuperSmartSeverity$1.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SuperSmartSeverity$2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SuperSmartSeverity$3.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SuperSmartSeverity$4.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SuperSmartSeverity.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SuperSmartSeverityTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/DivideByZero.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/DivideByZeroWithTryCatch.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/FinallyTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/MyException.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/MyResource.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInput.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInput2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInput2Test2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInput2Test3.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInputTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/RethrowTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/SimpleTryWithResource.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/StackFrameTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/StackTraceAsStringTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/exception/StackTraceTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/format/DecimalFormatter.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/format/DefaultNumberFormatters.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/format/FormattablePerson.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/format/ParseTimeStamp.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/format/PredefinedDateFormats.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/format/PrintfTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/AOSub.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/AOSuper.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/AOTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Adder.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/CSub.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/CSuper.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/CTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Circle.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/EarlyBindingSub.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/EarlyBindingSuper.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/EarlyBindingTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/EmpUtil.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Employee.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Employee2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingSub.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingSub2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingSub3.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingSuper.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingTest2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingTest3.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/GenericSuper.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/LateBindingSub.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/LateBindingSuper.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/LateBindingTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/MHidingSub.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/MHidingSuper.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/MHidingTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Manager.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Manager2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Manager2Test.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/OverloadingTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Rectangle.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Shape.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/ShapeUtil.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/ShapeUtilTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/SimplestInheritanceTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/UpcastTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Cat.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/CharitySinger.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/CharitySingerPlayer.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Choices.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/ChoicesTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/ComparablePerson.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/ComparablePersonTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/ComparablePersonTest2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Duck.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/FirstNameComparator.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Fish.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Generous.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/GenerousGiver.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Giver.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Job$1.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Job$EmptyJob.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Job.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/JobTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/LastNameComparator.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Melodist.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Movable.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/MovableTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Munificent.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/MunificentGiver.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Named.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Pen.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Person.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Player.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Singer.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/SingerPlayer.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/SingerWriter.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/StingyGiver.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Swimmable.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/SwimmableTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Turtle.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/TurtleTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Walkable.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Walkables.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/WalkablesTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Writer.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/intro/Welcome.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/BadImmutableTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/Book.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/CloningTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/DeepClone.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/DeepCloneTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/DoubleHolder.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/Finalize.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/FinalizeTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/IntHolder.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/IntHolderWrapper.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/IntHolderWrapper2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/IntHolderWrapper3.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/IntWrapper.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/IntWrapper2.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/ObjectsTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/Point.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/ShallowClone.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/ShallowCloneTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/SmartCat.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/SmartIntHolder.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/SmartPoint.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/object/SmartPointTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/operator/ArithOperator.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/profiles/HelloCompact1.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/profiles/RowSetTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/profiles/SwingTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/regex/AdvanceFindReplace.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/regex/MatchAndreplace.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/regex/MatchBoundary.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/regex/NamedGroups.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/regex/PatternMatcher.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/regex/PhoneMatcher.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/regex/RegexMatch.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/statement/PrintMatrix.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/string/CollatorStringComparison.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/string/Palindrome.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/string/StringBuilderTest.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/string/StringComparison.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/string/StringInSwitch.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/string/StringLength.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/utility/Calc.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/utility/package-info.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/wrapper/CachedWrapperObjects.class create mode 100644 BeginningJava8Fundamentals/build/classes/com/jdojo/wrapper/MathUtil.class create mode 100644 BeginningJava8Fundamentals/dist/BeginningJava8Fundamentals.jar create mode 100644 BeginningJava8Fundamentals/dist/README.TXT create mode 100644 BeginningJava8Fundamentals/manifest.mf create mode 100644 BeginningJava8Fundamentals/nbproject/build-impl.xml create mode 100644 BeginningJava8Fundamentals/nbproject/genfiles.properties create mode 100644 BeginningJava8Fundamentals/nbproject/private/config.properties create mode 100644 BeginningJava8Fundamentals/nbproject/private/private.properties create mode 100644 BeginningJava8Fundamentals/nbproject/private/private.xml create mode 100644 BeginningJava8Fundamentals/nbproject/project.properties create mode 100644 BeginningJava8Fundamentals/nbproject/project.xml create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/ArrayBounds.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/ArrayClass.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/ArrayCopyTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/ArrayInit.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/ArrayListToArray.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/Calc.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/CommandLine.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/Item.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/MDAccess.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/ModifyArrayElementState.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/ModifyArrayElements.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/ModifyArrayParam.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/NameIterator.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/RaggedArray.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/array/Swap.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/assertion/AssertTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/assertion/AssertionStatusTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevel.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevel/AccessLevelTest2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevel2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevelTest1.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/Account.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/AccountTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/BadSwapTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/Car.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/Cat.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/CatTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/DefaultInit.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/Dog.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/DogTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/FieldAccessTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/Human.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/InstanceInitializer.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/MainTest1.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/MainTest2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/MathUtil5.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/MethodType.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/MethodTypeTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/PassByConstantValueTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/PassByReferenceValueTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/PassByReferenceValueTest2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/SmartDog.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/SmartDogTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/StaticImportTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/StaticImportTest2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/StaticInitializer.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/ThisTest4.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/ThisTest5.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/ThisTest6.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/Wrapper.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/WrapperTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/cls/p1/AccessLevelTest3.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/concepts/MathUtil.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/concepts/Person.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/concepts/Person2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datatype/NumTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/AdjustDates.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/ChristmasDay.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/CurrentDateTime.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/CurrentLegacyDate.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/CustomAdjusterTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/CustomAdjusters.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/CustomQueries.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/DateAndInstant.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/DateTimeZoneConversion.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/FormattingDateTime.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/Friday13Query.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/GregorianCalendarAndNewDateTime.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/GregorianDate.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/InstantDurationTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/InterCalendarDates.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/LocalDateTimeTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/LocalTimeFromZonedDateTime.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/LocalizedFormats.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/MonthTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/OffsetDateTimeTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/OptionalSectionTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/ParseBestTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/Partials.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/PeriodTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/PrintAllZoneIds.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/QueryTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/TimeBetween.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/ZoneOffsetTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/ZoneRulesTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/datetime/ZonedDateTimeTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/enums/Command.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/enums/CommandList.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/enums/CommandTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/enums/Day.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/enums/EnumSetTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/enums/ListEnumConstants.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/enums/Person.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/enums/Severity.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/enums/SmartSeverity.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/enums/SmartSeverityTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/enums/SuperSmartSeverity.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/enums/SuperSmartSeverityTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/DivideByZero.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/DivideByZeroWithTryCatch.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/FinallyTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/MyException.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/MyResource.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput2Test2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput2Test3.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInputTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/RethrowTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/SimpleTryWithResource.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/StackFrameTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/StackTraceAsStringTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/exception/StackTraceTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/format/DecimalFormatter.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/format/DefaultNumberFormatters.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/format/FormattablePerson.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/format/ParseTimeStamp.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/format/PredefinedDateFormats.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/format/PrintfTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/AOSub.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/AOSuper.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/AOTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/Adder.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/AdderTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/CSub.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/CSuper.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/CTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/Circle.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/EarlyBindingSub.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/EarlyBindingSuper.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/EarlyBindingTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/EmpUtil.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/Employee.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/Employee2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSub.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSub2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSub3.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSuper.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingTest2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingTest3.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/GenericSuper.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/LateBindingSub.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/LateBindingSuper.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/LateBindingTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/MHidingSub.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/MHidingSuper.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/MHidingTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/Manager.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/Manager2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/Manager2Test.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/OverloadingTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/Rectangle.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/Shape.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/ShapeUtil.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/ShapeUtilTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/SimplestInheritanceTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/inheritance/UpcastTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Cat.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/CharitySinger.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/CharitySingerPlayer.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Choices.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/ChoicesTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/ComparablePerson.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/ComparablePersonTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/ComparablePersonTest2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Duck.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/FirstNameComparator.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Fish.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Generous.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/GenerousGiver.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Giver.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Job.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/JobTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/LastNameComparator.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Melodist.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Movable.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/MovableTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Munificent.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/MunificentGiver.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Named.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Pen.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Person.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Player.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Singer.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/SingerPlayer.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/SingerWriter.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/StingyGiver.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Swimmable.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/SwimmableTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Turtle.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/TurtleTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Walkable.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Walkables.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/WalkablesTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/interfaces/Writer.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/intro/Welcome.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/BadImmutableTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/Book.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/CloningTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/DeepClone.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/DeepCloneTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/DoubleHolder.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/Finalize.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/FinalizeTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/IntHolder.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/IntHolderWrapper.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/IntHolderWrapper2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/IntHolderWrapper3.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/IntWrapper.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/IntWrapper2.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/ObjectsTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/Point.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/ShallowClone.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/ShallowCloneTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/SmartCat.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/SmartIntHolder.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/SmartPoint.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/object/SmartPointTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/operator/ArithOperator.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/profiles/HelloCompact1.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/profiles/RowSetTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/profiles/SwingTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/regex/AdvanceFindReplace.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/regex/MatchAndreplace.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/regex/MatchBoundary.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/regex/NamedGroups.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/regex/PatternMatcher.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/regex/PhoneMatcher.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/regex/RegexMatch.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/statement/PrintMatrix.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/string/CollatorStringComparison.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/string/Palindrome.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/string/StringBuilderTest.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/string/StringComparison.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/string/StringInSwitch.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/string/StringLength.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/utility/Calc.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/utility/package-info.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/wrapper/CachedWrapperObjects.java create mode 100644 BeginningJava8Fundamentals/src/com/jdojo/wrapper/MathUtil.java diff --git a/BeginningJava8Fundamentals/build.xml b/BeginningJava8Fundamentals/build.xml new file mode 100644 index 0000000..9f8a978 --- /dev/null +++ b/BeginningJava8Fundamentals/build.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + Builds, tests, and runs the project BeginningJava8Fundamentals. + + + diff --git a/BeginningJava8Fundamentals/build/built-jar.properties b/BeginningJava8Fundamentals/build/built-jar.properties new file mode 100644 index 0000000..a6adf45 --- /dev/null +++ b/BeginningJava8Fundamentals/build/built-jar.properties @@ -0,0 +1,4 @@ +#Thu, 15 May 2014 21:12:02 -0500 + + +C\:\\kishori\\books\\Java_8\\Apress\\Beginning\ Java\ 8\ Fundamentals\\SourceCode\\BeginningJava8Fundamentals= diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/array/ArrayBounds.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/array/ArrayBounds.class new file mode 100644 index 0000000000000000000000000000000000000000..384d47548c05a9ff0ec63d22fb01deab7d7d0060 GIT binary patch literal 728 zcmaJQQtCsWCds&&u)8C>6H9-V zK3FK?5Aa8ccQ$G&6!+oIo;!EWx%bTc_<8Xiz!UU*)Nregb=q2i20_@l?%Xl^Ewe^7a0xJ+a! zGvi?=z%KR}widNdpZ%>RF*Es7%&_`i@>7*0Jky59((sAQsgI5S3{PDyChiZXazvwC zN)65mBU3V8&uF7Pw@2yl9eHEOAt_SwuT^sVn`ZDn+MTA=zu-~6^%PLS!LtiWp-BS-pY5onZPI%#l7d8?>z4P&bjd9-$%azcpD81b67L5 zXkgjE2PQ6<_|U+-iH}T_3>1sO7?{C6a|tABR|GUaR+O65bbp|#wMbWck*C&+_u1Ome0pzy=NR?> z^9a~GUKpKx({1zK^Z5~{tM#VW2v-+IOoMxnzo6cfG!3sf@D>mafte9tpO|DrG8ESt z4SbQ)a)P~X!@KCq4y1>qo|8pv9LEWP>0!Y*j`d3XmPuNPLZVzY@P&;n+!Q$SU+40k z-`e&_umKr;+tFM-+o*iL675)W1sFm`4A76&~yt|H%-xj$K)^#hsr=OI1pPGn+I zhRFHA%Y4>z{8<1L@WJ5(*OSx=+y!@S@d3oo6cRYaRga7+PE)pH2c|efEs3*ug%$>j z?_ux*{GYhE>$> zBlQdH>H|z=4)u{FN_iLFe)a>S0R6Trg~)FyyOB&d&qL#obW ziWKNjNks}Kvam=|3MCSE328JijqfmnACSRAqJLl(e`l7IgR;$#Orv2)sync#cjcL?h5nSi+#LQS?c5H v#_~_pY}j6g|)L>8YDIN!=ElI;N1~kJt{O1ZdholeS=RVx)vfR#p>xa3^0M2q1V(GNW33LlTb8$OZgq%^*W9Mr*)TmjI3IzszisygrfN;MTiI#3 zJ8s4FJae~lJ6M<9-tM~9_ZJwpYub*$#oT6X$Na#obWEpRS@S*HX)lCnO|Q*B6KAOD z+%kPrAhuZ*P^>%QLGdGb&ibflI;}9DfR@{=R`Y?Ku=!K!Zs%ATcdQR-Ng!vW7be+{HbCOaEkLX<&C+mM4&`A61$S zv)srg@CM%0P)*=1yd5kx8r=<9uv*7P%(m_goTllYURi}PwK62?O08J2#R8Jq}%}&si@_)TX~25_StpI>~bb1!WhFa zTi6SXIvkc%?(A7n&0f!PS^}lB44&{gVv-4?q6fa+iRP07r~7U+h2d;g^G|rw?LzKM zIQ}8>&`sXnMU?OltdxtrS(RtKUKz zm-nDheh;}Fr0+{i;y$k65E=YL zk6)1usV+oxB27JL|1)heBzp=!^3Sk2)A)h58Fn!qyz{6Lctk&y9&?4mTWPW&&C8SN zuMkhq%MYMV&dbugl2TIgeTz^v(!JogBzNVKHw!8p?`{#I?hK6fA<#>}k zbu+A_!d$Z`P|jj5taXtY)6_moA0^05zYJxtyGD!;k=D<17h}94qXkt5QS-!P#sV3V WA0s8G7O_7N6Tg!y!F<6Omi_{KAaDQx literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/array/ArrayInit.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/array/ArrayInit.class new file mode 100644 index 0000000000000000000000000000000000000000..d55995254ed172c8da7acddce434b8cfca3a0704 GIT binary patch literal 1396 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 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/array/Item.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/array/Item.class new file mode 100644 index 0000000000000000000000000000000000000000..306d7116a82c44a8a842e76af7455f2a6424fae8 GIT binary patch literal 914 zcmZuv+iuf95IyTSj^nybF(u_rN`X4=#oXRNeSiuHsRBe%r3&$|Nvz-~u_M<3@l}9C zQwbzKfR93)-MFEUYNeesvpZ+b%-+uylhzAblv08)U85 z8`xM^cB6vL3bq8w!z^w`0%AwNOyq#j+wI8@GVIHw8}8*9+`6+y! zM+4S#Rk>L9UrprM-6$_$$!}7teK-x6zOHX4(Z`e9c{&j;u;e#q^$Iw9=_qSQ&tfI8 zs%mbjrd@alT`c09iv`pKmj55clTqC7L>UM6*2P`i6EHR!3f*Vuor@c2u;^J$2`v64 zd)ewm?OcG(aCDX&4x^+auzALCXZ05vIHjv>eWtyWW32Ea%=32`T4XJM=xSUp2-zR570KHyrHWa>+CS19vM7ONcB3TKwQo%& zS-4Iid>i#L1=njbDUtpUmpYHC%I+57B$*4byR#mvWVZ}tGpV=;nmOsF^&#%Y{U zF&Tk^2^r3Ykd!$k!&C%moReW%#f%DFAh>ANEH^9QPo_2ml&HXf_%dPOKVMO<*`# z$d!%9hF&phTYBDgtlCya-YCj^R{2=O8qOBy4g3Wv;BySJEEI_C&bvnO(V9{Bc&LaA zMDljiDVnz|Nw)jv{WJ1P4ad;K^MzFv=QYe?PGICuE-Ou|QZgM47cfsUVY#@d;Sv^9 zT-I;}S2bkhn9+Y}73lpvbbYgI7TrUw{C2}NtCV0jxiQps!?N|ew8Et!rctF`L8D$b zYbAkLay50tu?|b(rjtiDGylVfT)S<$z+mzykP`g@jJ>RMX2Beo+J$)KZTB$-y{3YGuC+D*0~ll##t??t;bD>GORKQ=Jop~I zT-qOa7s;m;MaDpo(Z3W+@4Z06pN*$ub6oW?#bfaY>pOn&^81$^ALHi^YVj9p@-_T# zq1@j^K;maw2==Qjgjxu<5b=(FBBX^bZ@>ph+Yd>5#nTi-04ll=VlRvl3K*yM6jjeM zFR)&sn46TdPB9f`2T?p>?-`DJlCv}*L75{M<>V;8+9+2(+~&90?k!`v)1!Qh@f$x;(h6g{1UbQ78>lZuE@P?8|DL>wT<42p)qibYilT{Ou9I(E{r=~(6~T{{* zPqcAhfUMiTbm21XXwDhBC>2mgUYc;H>zcQ{hcBQjp6AFe~VlPQ;d6#bC+ zG4UCmBXpz=A$vQ^=o)dx%IGemr;OejmzTR-r>>DN@YT5ets?_RQAM zb)2HVtLNy%Yjoi)x^0fZ3J(n78es?V64xt<8 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/array/ModifyArrayElements.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/array/ModifyArrayElements.class new file mode 100644 index 0000000000000000000000000000000000000000..3b1e2e8b9f13890bd3ae70098747009821796db9 GIT binary patch literal 1497 zcma)5+fEZv6kVs&cBVsVOS#LffCeD)hO z@gMX7h_^={{3BnC`%H__Qj9O>oZ08Bwbx#I&(GhVzXQ09q>OfqiQ0^_;kcPm^INK=^Y3cVZSU)c48!q^Sx|CWGiNHQWvOK) zVP^H+@;pB;<+Xxl*oQMjUQl&|p(DB-&#A9eC9fKLO3Jo$V{gVuu3CFU*V^EkK{PFW zk0dd;wpST^&Zkch^c_9Q{!G<5#FwB>JhMxIdTeBMH zVd%T;)*&OSH(%?<0rzC+KN?%(OmZiuW$c=^7L9bD+9)$0Vk zxI$-t%4s1aC)4gwI+^x_#AMv_4X(5h7E)<<*qusz zg69jo>0^jt=?K2@6Uek3q3Ha*+_Fjj**0=w)=hvTaKLIRYO~D|>WyVq zZs?{hkjWhs>-sxgvvj+r?Rl#NZ9ssls%{ER*Wsv2T%91O#AIsBrqglUZsRj1x9+2HkzhYHC*y+7)Oq4WE+Ne z>{PSVz*!cLQcbW3j2(RQh|N5zd`9x?so#IUOZQ@K6^ zx#GGMgoA7~Z+fPs1q0^LWY1|$GMH~+;>u|rOXd2yhl8th({bJ>KC8v|lI};hk1;;x zLH+>X^Cl98_)XH%xC*Y(`~}2kZbBI5Hx@W!NO7;W5|BoQRvaU^L63j<6C%t9-o$<= z<#56%l_Nu9zEqATc1p!B2z^Jme1S+ZdXCuSS4dpWA)g~oL+OZL>y5WTGKjK)OprKc zh_b+Y?D8f)Sf*v^pYlmw%1eu*zW z>qAL2F+TeteuOdTI#W<8M4NQ>nSEJ%?R9qhb@$_E0GE)C;24HABqFH6u#ORB&*@0& zFxByVJw|as$HfSfFDuU#4Of-DrsKMXF%9DabrZH@`%?m;_|T$2c-qZb0?irQvF1vJ z70Y`hSMu~kGj3Mq7o}&b_dRFWU$=__eVMFVFgJ4UhHFaCliTK;ELdsZ@}%#2Y!WU= z+Y#u9FK0I7mNfIySu+=W&vw?vgRTzqRgXha0b%o-CWiFZ*sJvj2mxIIWbC3Z&|U#4 z`F7q+DKg4U4z*dg<1 z5@=CF#oX1Hn!A`xCN)eOxQ#moW^kABzlAg~t5CaAtGtz%XBFHniXYo=LIi=Hf8Amg z=EIc@D@!dyGMA&`@dF}NLgPbEd1FQUCAHvU@%j!j+AjK5fdRMl=e}&$oaa9H+zLw; zC~-xpYPW#4sgm+krK;SQe(Q9$NWqbAvD$7^A_ES-ZG3YXdDYO(8;2PHzD!v=eMA;X(_Q^()|AtMLG;c z`X1*}1a(qwMkC2Lp_fzllk6}vM(G*n7}Gqb(T#cZ;W3qY#*7?J!@&Tycz%V!VDMS+ zAA@M!=wXKuV)e2j#Jqjq^WQ#-fRl)^zm5_y`zcXBmWkR&kp}2jGFD<|cp9Xq4dGpk UXgDjxcl7)~yE2T$8LPq2FY3}8&j0`b literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/array/RaggedArray.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/array/RaggedArray.class new file mode 100644 index 0000000000000000000000000000000000000000..dee19958bfe3074dc06e9fae6ddf962bbbd59ab9 GIT binary patch literal 995 zcmaJ%*fGFSlyD=7 zU3uP=aLd4L+>v1EDCyW^&h_tkjVaih1Q4rml&4j1i$!_8@Rv8lQx{k7myVz&g z_`mG)vFG>P$V3G;153%vJrnm))$zcjfgVVB#ISXNGAcgjZFB~1H$LNP9v{W-kh%`X z6v)lAd!hZBgvTV`6+;@1CPpJS=rI(mdTD7sr;SqHzO@vrU6h}U!`X-#)~)44V$4pv zKid$4K9cSE^uKcFRg^nIjkd4@lXgyi2{1Wx!ZcYnos3R(?*#12G`vQrO`RMWx|_2E zWU)?G3OVG-LywtGOPV0xXYD5vPFYcZ7|k;05>-v2QdM|^kgJU{uPR!jtX36WB2P+G z(^}&zl<(m0PN2&4$^=?QpCBn;Nn?W41O_EZ0&=V@j^0bbf_?} zLi1Q785<<5NYZvmSc#o!uE6&`I%hG*d!hmA8`d&X&AJ5WG7Jg E3z{L*WB>pF literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/array/Swap.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/array/Swap.class new file mode 100644 index 0000000000000000000000000000000000000000..ac75d50958386bc23915f3e74cba047bb2da0a3e GIT binary patch literal 1129 zcmb7D-A)rh7(LV7cDKt?+5!ax6-97aq$`Mj6hSdDA*r@W4YA>BXcyet?l#-4hD%>S zU%^+4mT1dl&qE{4LsB^hQ&CRa9xF=VHu`^ z6%A1=s<jr+%Retbxq2)XSBL*!tOa9V`N5H$|=!efEmpp;Q3*7DkZh4_t@ z0$zFbls9|Sv{Kl3;t29_!6z#y=tv@^;I@uCxXUoIYae;OJumPT+|zL%n+#Kblih7Q z^{VX?k%hI*c^x@yiSR(jHg-gHT~sgP5`*^WD6stykYQq&FAT{(e&MiYSAv03>7+&a zNWa&n#$?wy$FquLTR`U7yg}BEhZuup2Bj&6>g4&PG2HSPZ#HeW%CI_Y;M|#>a=LKN z*jxTbTMfMKhb7g<`N15n(8C*}Cksd*y+~0^Q)bc1XpNeuU>|7{!8pZOSd=kAd%Zh= zNn|LCV+zw$5r=<5rg`9f^qW?elBq&jP8JLKPl%+Y4rE%tB3eF0EUk2)u1MJq;vHy% ztr5|Z`>mDF&;`Qi;Mjj4^kpm&T_Gj`mB`1j1`TD0F3fZH&o8P}IWQ>Idq@(5O?BC8!rHOE#}c+h7q|(iXGdvKueG zRuf2EqWAtLV?1vmV8XHs&Uw!V=XuUYfB*gQ6F>uxWh7BaUlU}A)*q;O|EZo zahnTOhJc!cx{Phyk+8#%tLnaQd4cUZ{!81}JAKP!U?&W*rtR3lQwBk;9WjXeu4yr( zTDD`o9Su5`cgT|&vMtxp`$xKGb9?3#gAcaPP;MFSK&AFx)(7PN>K^hqat4J{v7Vy(78p$iqb3KNQMQF<9rOR8F&`|IYj~LR6>hC%|%Lr)p`fzADw1^$`f~hRIW^`zpTk1jWl5jk5 zrwuTysmqB}VEuo}9Lw1Z$o0lJqHROl9ybek+);Nzv2 z0BRK(l3B7e(u{PpJ^}kmj|g%kW1&;T8oiZi0@jfyD}fCZ$ix5a(=A6xZ>Kk#-w-)N zwU{Iqe2l~d@-Ge{gb=HwIgkMQ5D*Wc^3!tI#Fa2lMG;#B vb~Vgoe^6(XS(>wNgw%jcc4Z9Z43hW-qVOG&B!renfR-kO#yqlXgg^yWDIle))Uui+qc9<{E89V0&rgsa z=$az65=gM;n-JoTV-iJV!NzkR$M>9jW`6$u`W-+6jU-aIop!hA@xa1EJYvYs)x7EqL^oI{wLkcQ7}0gPV`>zqCQ8?SO%4X+qu?WQxe(4+ zER%gF3N$49i`C`sXXe~{L+;Z>lzPIKp6Jc?o8D&lUXJO>CFmgnEL&DqQlx_^XX%@z z%%+pk8QZ=9`%Hm`9DP^9qJccc))asOE>V_15hbdqpFa{>qqD9z&!A0^Gme@Qq`pBv zx`6Rx{S(q>h~-z#VV)wT!Z?MBMGsllh(~d0FllBSYcze6_;yI3VlGXm<1)&WX>`$7 yXaz<%5L*9*5=)yDtrZ1g3EcL;nKp-__KR7&PmNGT>@B|JomDvDGaA literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/AccessLevel.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/AccessLevel.class new file mode 100644 index 0000000000000000000000000000000000000000..429501d686f646579352d59198bd1d0fc7163453 GIT binary patch literal 1432 zcmcJN*>2N76o&tCoY+ZC+ob!7*^|)LWMON%&=yJq5g-*+f;-o-iX$&o;zUBc1g`=j zsRR<&h=)R)v8y&!4R?{H|13T;=bJh6`_K2E0Lplo!X$D@Od!wYE|(=P%So(2lW{MF z0*Vq!DI}4TQRenOmj^N)%6KH>F^^VdRAj8lSeLLNVUt1V6c|{QJ4G%fE@g(qn&n#l z216{HJ75rZyt>ISQnOt1RogiYCd3+D*gUwfNSfef291y`w9b$AW?>Oe>h- zGRtKS(-NL2*upl0QgvHa-Bg`IHn%EaN5NA(W0>O0HCuO&w0*y6xkuY=%dVSEhIpr- zuB!@m@tn&ZgS4b}ij)hz(wSEd>Z*9r*QH2Z`ohx1upERl|GWe`;yKsr!-i@27gGBl zTfXVg2)s7^n5YHCmZ!a;6ZmuvQ+Mbd$0E|ie$0z(m)2#&g?*>5@R26;<73mUGb~3H zTv~H_W7KdyTh0CFx9of29W#t)FBevDjUMhKy=xHypCx(V;|wx1QL^-O0vjifMozj& z+4oe>$g24hu>5Gf3n8DzuP$QwG+XLIB=fn8_!p`XaFuitaZ-`KI8sO;4T<)Zp;A@} z_ad6>6bZO-*5?yq!N2NPBr;MDGT9$UzB@rGGt`5U{|2FlE1BWYk8yt_^hNHEhJKv< z9@4b_9B7!f28IYh!5)VDK&q!8z|Clo%m6^r1d<_;@dywRx1vGD1^_ZeAkzdg8v(*_ XI~rts03ZtlvPd9mB*>lMrDXpCq^$^! literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/AccessLevel2.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/AccessLevel2.class new file mode 100644 index 0000000000000000000000000000000000000000..4ee23fcaad72d34ca5fa0e61a0bc0defed0a911d GIT binary patch literal 372 zcmZ`!O-sW-5Pg&8t1;T9>O}-Sst1>fH;W*GAOt-q#p`Cf=!R_qO`88D9t02m0DqJ? ziABA5*qwQA-h0D*e7?N{IK_4Z7fByIi~?*1*djR1m_XMAe_{$#pA&iqhf{)kS!XeLfJ}OD5a|^)s40%XM}K~ z>}pALS1uPyUzs*C`Kvq5Wg}w*2xEBg2|NF15{9i>SXn%Z+bq|r#y(%?^0kD1>*vnl z$8jA42(HA8ck~K+?#2=Sen+}k<39cta9w83s2Kf6#njB-A1QlFdp)-KG3lN6`1(op@1Uj1Pp}4XkxmqV3&0zU76u$X=Egl z_yhb=#_x6{C=Zw1@1CA>?&kbY95d2*XYTVT+^uS7@jSkPn{9}v)vHTN~Y`R)rwnnb+gvc7fsV@G)h*} zs%={he{z;}9mB2*^yEI2sz%e$Yes!f-|{`XzBe1Z*YNgOsq2!kK**>G3|##Z))!^2 zH7=8@B9Pp24?NRau_gEHc|sGCgNk1C3G`pdUBz>Zs92P+gb@YHDqi5FK<{}8O9ytX zVtJHV*5)-8D|jVgmF*qVOu7Q262#Wg?%w?vmMEaGmyo2M2R&qyGuVeYbr91iEt<6Iq}u5c4k~ z0cBs(tMN8vFC)ZD9CD;$M=ExTxP>ggA^8h|vqK-TpHDh>!9AKkhWHwUZxCaFGlBuy zYC8dg7~)d`!?;Ng4~r4v1floG2$u@q5t%1M7YMPL$Tuh_h%=PPBwOehY(dSW zXbef?8jWm(Rtwi#NEce@x}La(gEo>>7|fF z1|3wG;zdnk6`j0h8Q!fdcG!cDR9`0jD#g_)%A>3%MML@; ZF~Z(uVBsFEFzbK9eOeL5bIcB5^bh-B|FQr8 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Account.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Account.class new file mode 100644 index 0000000000000000000000000000000000000000..0fe644509e2e12797b27fae2d0731334e70e9961 GIT binary patch literal 1377 zcmah}X;afs6g@B9YuHKwEsH^xE(&!)MT!ehk;RRdJs1PxEa7AL!c-dvZ-hcEX&|u)=k~M!{A9I zw;8-^mP(Pnyl!fn&1zArZ^=c2JdwPm$i}u@*ZH~a^x7}<2E#~Rv8w5cYE`VXVl>h# ziefcQJHrqzYxe5lb#w#2P^oLGZqrqXY%)h@xyq9ndJ49zynHCv+Rc5cR^)l%g4L`m z+PcnRi0$6<6?sP%F@#|egNO!jOT-c~B9@T};I@c6xJ$rzR+`wB(*?V(o8{G}Zm3$F zA~|zMHgr{T(MT?cB}v3RtZ=g`Vhz~(;J)e zrYr7q(oS#W%o3k4Y1ffnc-0^nG<2&;eTMQ*Z{12iCXsBCN|UQJJ-=M5X{O3BmvA#W zl*}YgxZ2`U;TVnfAK{>Fx#M7nCQc?&gTYe((aWuIc!o)cPXn}#N%}$}^u;g;{8iA- zOM7}GWJlX^HWc`lQi*vLW-2}uiN++U%ak6f);Kov)A$&Mi96Ggl z0_WSs@8N@oYPRCNdv7ri{|e6=glX}<#>6N1zQh0Q0D(xbg;2bOa0_Qz5QY7YP)}DV z#ZknSFA%)@)Ysz>i4hf`mzeiq4*kS8iVfobloa6PhKVp?Xp`eRi82`J#+4GHG1^}^ z!u+d^dG|ktj^%Xl>hB7*`i~um>R` literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/AccountTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/AccountTest.class new file mode 100644 index 0000000000000000000000000000000000000000..4cad8da099ec3088c5bba72466182dbbd1812e04 GIT binary patch literal 1198 zcma)5T~E_c7=F$e?I=aa#!v)ges|!gABZ1=Ibb4aMH2`}^z@ zLY}zh8G2_OHVm)s`pZ_$&l04g+b%<&@=z=5 zk9D=8yCrqWui9=Y8@AM|B?3vb2s1=8ylj};iCC9hsJtT~$#?%Bm+ zj5n4sh#`h#ORh3Wl4o<+y%Pyq~===1-v@tCL03V zo_e3u^+{t(cSt2c-`KERlOdzDxPpDI=B!jWs1(xw2*-S{agPkW%Kk(GNQCq6B}BKj z!Rb}#qe!+QM4zExR4vn{k)p(4fuY^BinfpAI7+_>Ul9;H43RxXCzW1*!wU% zOjZb;QKaZyZX^)I2|9J)BuHFCy6^$*+Ysn1#$y3GlmJqI z&H(agFS-JBuhQNVAijEFcA}Zx_g~pZ4$j&cFo$j;E+7UGU1ZOo6Js>$1P&ofv1P=u zjs#33VWSVv(T^9T;3jGJhSW<@bqZ~Kc$}tc5XNhqg+kJF;U&@-36&nDNCfBp01GP< A`v3p{ literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/BadSwapTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/BadSwapTest.class new file mode 100644 index 0000000000000000000000000000000000000000..22dd69fffca828fbcdc0f97fc691b5d2225f5da3 GIT binary patch literal 1143 zcmaKrYi|-k6o%gc%5HIMDfD6ib?tRq+pfKMYrzXOCMen_G);`37TDA!z!F%r{V{&= zALs{aH1P-cqm1t?XlaXnn3*%@ymQX8XJ&u?`t}3B7M?{ghQ(nRSW>VYK@f{7Zp(E= zPOB=`zSUMC4?Yd=KU^MU4?bq#E z(QY1C#VS3qyj!xWhgQ>(`<^r8y>nUu$$ZJJnU%6zam`Y-WoE5%;e*vUuv^{^Q?_Ue z3>mqctRRj#avUcNd3KGVP|b4c0+Ytue8qZinN_QPWEQ-pQ$O1Ap{(W+%fttSnaAQN z3PcKSyIHcIJCZiqhp;AdYKS4O;Gu?XkZI~-oow5wmhGm1I=iv0AL|)iLmC-5u{Yrr z{ls@Y#uEikHDs|XrJG%;G}pIvixOX3^tIDS$iUX0!1OtwzJHmjzah0d2hG>U}W}ri|Ruf5NKgcJD%9+_)@c zg1AqA9!NlGNW3a9c483FA#U+0j`1mjuaplAan9r1nOp_eq2*JE&oly<;2idyAxzTN zx&ln$8h68Buj!G8KQdX6>&q_)d`IxjDMGQK4#J5Jl$c5*Nuz_|4kC$6awnDU(_I;? zJ3~kiLW0ad#T?5nAj02I!wZb~SbDcKl1NcU2wbNns9nSjS^=K93B8Bx_{)PS#1RvSoX0m~3O0cb_*g!(9-sFzfS% P`9*U+ufRMb0WACm_YC9k literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Car.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Car.class new file mode 100644 index 0000000000000000000000000000000000000000..08632ef7974420f9e98798094c1ac731ce85c06e GIT binary patch literal 411 zcmZWlyH3ME5S&e%I1iJD1BACk2QF|!2cii=LNZVU(qEiYIAhvVzYp)0=8Z3xY#9BGBc4W!H*L0B*Ika zX*kTS($f=y^CE>M&?W00t%@b*=Y;C1(keeAln)L^tQxQdp&cnLujkoV+FLPBneihN zi*zKcD(YX-$?w&S(2HV|g~`MuCXCZrI1rWxHil+yV|k&9_8N0X#a13#XcOE!{h-aW z_E1CJLjz3@9##n5e^!Lf-#ItqM8-Mx`D~Z}qztx3oimuthxD~;n5~uKxf_isTt2jzxl(-;13l1Q0-~;$5 z#Jc5zz?RmY*%|MyKfm5T0G!~^K^>hYy683FIoLqo#-@!ehWe?@r9NY*4u%s3YpiC1 zp&iOxTrIMxC~o;QC8igun5Pq7NP~Y!OW(t&&56t7`lJnV(1uWkn(&UTu&1b>t9s#RBDmY z1ZqKvez+7%72Fgu*O4v+&!`>mADZgl8&R5*Z?G~htB_0P^U-jEBh={c%wn{ucZy9y t=cv#PXdSpr^#H*bPfKZVo6;tw@V`8fXyOm>M;YG& z2?yL{=k2_ic{4jdzn|X#ZgJtEgtm*02g_jB#krt-r&C?r3+&$2Sl|q@X(XrzI*p!| z^GTGC)FdI(3bIfoW0h;;??|V3*9$>62(!5#PqR4l!(`zPR56McMW1qWrBgwt_ZGxz zrTj#tGk;j*I-T`5?NmOa!0A6>frN}4N>kPwX3IQ`9<-UPx@&i1I#f}HD`*}JBxoOS zW=KI}KiTsnj=}<$aJVXSEO0|`X^-gnL?M>0*N~4*xI$arkPbY)tJ?$|^959Jf*Ki9 u{75m2*!+U^x`zF-!(cB|gUtk&=^h%CFoK>r&HD5dH#%rZoz-w55Pp?*)W3`{B_M{j*6gZ;P`0eTQ&Wa&mQp#p zs+*-z3GHLLsoQtylN?xL(6m+5By?nTQ=6+-@>+FK%^S3YvQ|Mgmei^)^c|zmUe{So zZ?<4nQstsmwo(P7mYUJl)Vg73n3yN{DynWuh$dH?&v%Ygt0g80d% %9kYsb5^}t z(9*i7q;pUD5%EO|Qn(}`eqa%PtSWekR}y0XcVMcn8%2%HiRCwKEuq&Eq8++w=pVFV z!nP6$UgM2|b2u-gw+d9`{U|6Xg0*zl)~%}T8FmV%MFfWu)lF}gGdRnG4a+QfWMJ|& z!&1E?FCZzBm-y91tImOVBv3GbLE*J7p-1e3rkb8^L%1m1xK43*Ej+!3F~Z*O_HRC4 z)(ZAMQ*N_nYZWoHI)R8gZrw^PaMx_6*3^pFICWz~Gr6S0NsonSGVM%=fqlu@fkR-~ zw%qb1bS0Y|nIP;`zrP>}{tZ!{!4-{o6~v#SFPUl1x3{kJ;qc7i@XEn368!!9c>~F$ zlhnk+&2l)`$Kl*fhjS?$&ape3b9Fc;N8Uo>e*y`Y9f>ysdE4L?q|Xj~h3|I9=)+aY zitE73?>e;rZs4XHEKS1ar2DgtmgOz9X1~C;##M?KWr-K{lh4^9Zy1 vU6??GH%k=n5yMAx;}hcei5~n$uhYb++bG<^ZN|y?g*$Ag==~`57L5G^KsSBP literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Dog.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Dog.class new file mode 100644 index 0000000000000000000000000000000000000000..3f76bb2a57c864e64aedcdc43bca45d88e3672e3 GIT binary patch literal 750 zcmZva+iKfD5QhJ?9ZOL*C)sYA^rR$BYUg0x^vrgVRc2y!jPU5~yzleTBirdwJh%QB{OkRkU z?7JE>)VhI={b8tw+7F_!f1w8*hDNhH6hDL?iDcmSvQ#C5PHvHiI0w$%GB`awNdx&o z8B3cuZBxXtj1>#}9BebJ@C}n3sNaE8MZC7I1W%}*mwv%o2V$1DFdH%8S~KN zIK&ZYcOe|dXcK*I7KXL|)KC4P46=Jt?`oXMm^P>lIOtk z!7bPgN^W_I%5`40MsWpYid9r#QM-+G$~d)B16f7ndBkFgEI4)uW-Ok}FogvH(IAb{vq85dJpBi$f}x@S literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/DogTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/DogTest.class new file mode 100644 index 0000000000000000000000000000000000000000..b78f8ca529a7b8db73d269ff9a7b78546e110f2a GIT binary patch literal 543 zcmZut%TB^T6g^W)3#IZX^6;%YbYY`$hjD{(RdoR&A+CnD!D&jHw8j5&MWTrx;71wn z6cQHDN$;I|?wxba%apSoicySQhZkXDS@oeO$S)b_U zTtp1*-kTHf4{nD%n%ToF5z(xl%kgAJ1kD|72F1If);2fsD&8%FF^m_9>puzU&s>XM zOC1v>lo=XZwit>79*I;AoHDew2BdF>`o`?*H1J)5TD@I2zy&mVUHK_sQk9}Xl}(vZ zE?zCcKJ#{kqLzayOxl~P0qmhlRT(wZ36X~W6ZlWkdMF#`s1x1IV2!i535{!v4emHauc6RNubzVOBiT~g? z{STtfL=%62Kg#%=6%n>IIp^(p@6Yp|_V=G3zW~f))50L83`|>S!&E1?850>LFPXTk zLNpPEE2bfo`OmOXXeS8CBquOcv-bHZY#kPi!C#_=ne70>na zi;m+~Do@->G|#j}=>-CVspq+Zd@VD+40bYGQP~T2=Ido;d54MmT9_GJkj^WCfrcs% zszn(vx2eniP8^b=6BYY2yJN+E~LQ134S(*dW#zM>Z*7Zyq3teIE;StJ0pkUtFMPDF&B}GYXtO z+I9m#f!_a3J>D+3P9)Ibgw=pj3+fc>JNrx?a@~4YiQFQuP*|noKs;hE%xrSL5vT0R zBIl&bQi-tw)2SAhph>k)hZ=Ac##eOTEM+q3Uz&+S384fnOX8J4ib#CSct#jHQI)B2VcUQu$p?iv}hMpRZ z9WwM%Io--|oXSD1hD02aPV}iVERfX?h4<5ISU-sWk1C5Ec5A@oucH^;B&3I^j$;f7 zTtFYvBx#x27bNHnPU1Zg?-K7vB34W+kQbsQnPZeDKHx0Qk&7{Up2s+;y@0n|<7j8D V3N9i=hISb{L7n1sl5uTF{{?)`C*c49 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Human.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Human.class new file mode 100644 index 0000000000000000000000000000000000000000..169bf0f3147ab35d6c369064fc4b7b775ee8facd GIT binary patch literal 341 zcmZusu};G<5Pg>>O$mWQOFw`O81TXd>Vkw2ieM<}?l@L(l-N@0@Lxw-PiZWCx9!gGEA^Yu}pD7h^_22VNo>lRf<;HT5No8Y<*3b*4kFOCnU-Z z))VM~#T#RdUlS&0=UevQx{Cet!dU${bfxZ}W!Z*Ar)0a8y&3th82cBqBdiMLI?+_F zaYD5_aX)m@^1y84hF4;EsKaln{!3pd~pbFMs;F~ac=(rQE7 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/InstanceInitializer.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/InstanceInitializer.class new file mode 100644 index 0000000000000000000000000000000000000000..00eb2d46a7c7f9fd81f6240a5289082c9f381f43 GIT binary patch literal 736 zcmah{?`zXg6g@BNnl$U|Y}Z7%}qYbY0kJ z+vo|D-|ASW?*x|myGH`04`!?cYQB!ur+G9|$yYfF8L9gwkl~R`bcTyyDgCZz0^5FI zB5yi2Q{x5U%sY%{sf+`4NM|bs(6W= zdkXgl0viQWY+hxnb^}AoWFDj@VYYX#1_EohKmK_%RY7_uG(4N7D&kF;ITOtrm9+7` zP@@SiRJ>GbQ?*gzuC9y(VB|6SA(Am3y_yw!J^c$tj zFBiT{|1)n}rEOuEb`>R*+3sQ;5BRWZv>+C=9ilb*3Lc_f40+EXRu=mU`{V+Se@p1* bi8>rKa+20fA<;S;91=81C-}99Ej+pg<-(}! literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/MainTest1.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/MainTest1.class new file mode 100644 index 0000000000000000000000000000000000000000..b5c115bbb8ec2554f5bc03409f8f32a17ed3fcac GIT binary patch literal 591 zcmZ`$OHaZ;5dM}|p&}p%iqGN+jG-|x@qqDSVq$`i1mnfiQdU^fc1^pO__Oq&i3fjx zKgu{Q24aGHnA!Pe=9|~o_s1uIBkY;TU^Ry-YFVtASV!H!hJj6n%!%}+K4nNYTXzhp zGc^zl#jfR?cdukFm;#@`@6lS#Th$#;PSp!>n zY-5Mv;KC2(Kv+?^X3O$~9;tz)9xOc))-2OX(F-tKjOEFAp@ z>OF^Ac(gS&AxCvOn^g7<4W?;4!95zj5_9~88H~p$$fd1Rn~Ro$2GVq|=p{hm$db&F zWs_#4)BEpWFR|MsnTf#^mgt|K29RDRD~AG#gha{5F&Sa6NR*RrNX-dMaz!**sx>Fc Op@bE}>GmWOsQdt-D}n(4 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/MainTest2.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/MainTest2.class new file mode 100644 index 0000000000000000000000000000000000000000..54370dcdce45a0f1fc504acfd6a52b8215488945 GIT binary patch literal 445 zcmZ`#%TB^T6g?LTm0CeTL6`2(g%ck;j2jbIRTmI8uBK&Dr)fJ$Tlgk&xivFI=ma`f5A!Tk z#YBcFPr8ALWIC0Fw*Al0sh)L7I0_<@iDYIHBcikv_fqE*RaO@x7RtcU4scNMt^kx58K?eY$~2u@+H?5`3 z8wSIRFZxgn5@!6X0Uze08C>=MigTa+{PUVnhXJB zVPtsB%IL;jp5^$GmoW}KjEOJ`5+)@~F@zQ^$MTjL1TC|{AU<-dCPPoja?HoA`nK78 zYHZtt#7b_(us4jR#s5!1(c8857?P!mTi0tWzQ^7+q&_RLDGuF ztzxFgz%2SG2Al$4CW+y+>XdE~*j@IF%JVg&@wUKqMJaWY}>STDxXf#Zx%8=JCG3^3$dQvJJ z(u$e?Y==F!<2*y3c9BR8;=cOxg6QfST%JwWn7B;P25!(BjnYE~y-<32P-*R@Kb<0@ z7|b4meV`lyZ$^@~P9*If@jnAqkPspgc*D zXM>b+(OC>pU4SaDld2?j9w9V}VB`V&4uP@wH|i3h-SnyAcL@8H?neYZL)bio7z?%$ zQYAGa9Lt{|wGnP3(uVvOql+_E)wp;pZwl(j`V};V(~bf@D|C)@W^BwqOpJ~iN0BUb U=x znFqpqD2$<^jEaIs3LeX-%2;P$9a?*|e1^o1>$~9_hPY8~GDvR&hcl$>uFnq!ofhvM zSuKwuxq4t*UeoHi;yeyY;fdR4SgPAW$80-6J1}jpZ|?K(Byf&SyL_7(bbGEJ?lZ`d zbHJeN*xtCS+6V?co4<2KkMy)~y={H8G|VHfA&0CCQ^ONHWhjb-=~@1<*$9dGcz57> z4)0NQ#BY@Ks@~CG>l&WnxrPj~!rRdB0xxB3YN+8ALuRaI0>2dUiGgA9Ul$|vRLJ{Q zo7>@qP~)^8avF0y7*L{6AA#M#JQTwq;oRzo*;w5!_Z^0+5g}&owOzgv8ef$POUB;+ z(n=Ua!(qr9SAj$@e~qBOPvp_JC|oC~N#89+pAU#Z5rZWU;(5qQAX4PX7U;A^2u8bB zIR~p`@$)NUpXeOJ0$G)IQ6V9LqCiDhEaDcO6f8}6YKT(=D4ikx9nyz$%;ge8$Y)T7 zNDiS6aYOL38Qv6@M~apwENx;DYHBkq+9j5m)J;lNz94p?L!>-4(z8Gvir6H*Q}wlp d`qHHD%BU-l$T**&Om!wk@j0@$NmUFhe*jfgc5Pj>Wv11GkNt+fLT2p9~e%T;#E8>ELgya;YL`8_x##yBf_HJc6m3rVu z!J$PU@dNl#h*`U86{+!IXXfpjdE?pn`|sBu0I%@UhJ&_=CpHYUYuLc11=q$?Y-!|~ zh3DFCTi7wtG0|nHzK&#+zhPMD?w&AI-l~ycSPCL3j;F~`qys*T326i>w&0r)s!{fOURNn5ZX&Q=mk#4j(tL|w*2lw%SVQpTUCUza{VV`0By*yW6 zsV_H@Spoz}MAwZm40*v+SDZD(RN7za49V!1K%{r%v3!c!xnnjISn87^Lq*zj3 z_wIKp8NFj#n}XY;&ALY`r#}NsPnpgoihQz+?Bd=P*!SYPPG_|MD|kr0QxecXlcE}y zu|kMW{zk8znnGRxFe inhXc#2gF_^9e*Tt7AdM zTWVX>v83X10w!+jSkbYnV=aLc)^*&`a96`Ufq33_?O zFI$a6S$3F77rlyfO0r?Ab2k|aUfaIFT(RQS&05u~d1l4&&3)u%N1LHC**M~?OrJ6v zNUpL#;=pS*D%KNQNzVR7$Fl05L>d_l_mg;l4T14LXYMp@r)o6>^y$@&+(~XLm&7LW zYTKe~i@8>q+Qvf-kCJ$d9YtO1P!(L+$VpN{ZaL&$!GtQT|18Y>mumv4Gi`h2npL5J zJ*k71A6RwXpVwqzv}2y_nfr7upnsOE)A+bNKDOMdz>?9&-gBw$-}A$)QJDWnSr5F< z9SMvW=ZS2P3Dy5DNI*MQ@*H0HXg@(EO!1u#^PPiFn6D2R?jt;zjDm4s;S}OMK?I}R z<6$y}G2�fN@;rX%O_C8TIj7Hj6M8J|OZL(U+%)r3c!GPqd+>b%IHPHU`^B4C7nA zhjpPp>r6lzF*eq4gX3p$2~RN;iW%z+#3Zt;b2P3J3Cg;L>s?vzC@ad^ekzks&206I zO?EYqe;rLTxUMx6i-n+=YJ@b QaXiB`QH1y=D-q260KHxCGXMYp literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/PassByReferenceValueTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/PassByReferenceValueTest.class new file mode 100644 index 0000000000000000000000000000000000000000..c7894b3739b7bd8875e0c8c88596f3ff15045697 GIT binary patch literal 1472 zcma)6T~iWK7=8`{yR2I(f|hBKmZ7Mm(wASEm}QcZ5Y=?G!pW9dSX>q-F1xE=(sfN@ zlQaE*ZoKZ#G`$Cy0KdkY^L{_)dCobzzyJRH1t5Y~3i>cEVM2ie<1)e?vbV)D>0Ufs zq#i&-QyxqsBH@mLcF}iN*n2YW3;RIEjIgs}nNu*21qGM!P{yK+M>3WqL?tXUxaah| zZZ9yj1xHd0&ZwE;3>`5&&(}-2Ep8>XErT-Nn3>j$lxFE7t|y)Ld%egIjHS(7IGZuE zW;ksW!*Q)xTqOpsoT2xqz@?IIWH|9xhbCtNIXY+~FdtB{ zjtvISSfI=`tDcB6C}V+wrKfp4^FqZY5)zUsULvI;h!Fu4X#k0Esx_Q$4u@M+oF<&1 zvq5}gE6dY#sIDqo@d_HX`mNEy3*roHmHMib$)}gq1d}KiZJwhyW|j!dUjxz2aGdVl zCLFHi=mOnZp}_MQhVkI>ZAOlz>c>fg{lV3<%gbk#W!tPtVekcyHxhn#Rdg#~28p!h zZG&F3|0KRCT&EANull*Rfr*zy>j1@JvW%>2bRX<1ISyQ<)m=?GagBVn)_?$kh_8JR zLzEH2f8eBk;PU|-Z}!m^3wfP;aD}?0!#%h|K1h4;e1md;b}Fmh3l&@peTR#Tx1;8} zE9mrg)qGC{-U_-a@P&TB-!#{A-noW=LC8c*qE*2~`tA5hMn8FRc#(t;pU_(s*HaUK z8@NgRGCpD$w@98xJnFj4FCX ZBSdz)q$WP>%-(bF%sF%J{rT(L4**ph#Slj}ihH;(;Xw>RWM%A%JtvlY z3@!3T4a@MJGX!(_7DMQT-Qf&t4a4HEMuRqY&b78l zNTOlun%UAEL&Q@sYvLf!gobeOuK{S3T2Q_xR!sf6pCm>AaBN$S^zHVTficwTxTI9Ay+d#WMv5 zs7a_RIK(Eoobh^OhA7*gmXVmAA%HRgW&hj_Q5wxwrvSt5fBMQ0p9y>2?sMH+fSMPs z#|PA7dqj!U#5luN&!`C=xz4o#wI-qshurEgl&)&ZlH1d#(?Qv@|MYV`mtQKRili@Z zk&!_f3VzeV4h?0T<{31yOgK(!k|LFMMtit$3HF(O0$8Ut;)5Zi=wF!>AdL-*q96|m z5r;qemjS0=5crPZ+e?HJ;V~iw`o@sPkf*2s6443za;`YGP&}hgAmoeKgoF}goDl6y z$|-K*mM>)sx2IA*k(2;owZyf?9Dzav#R)H|DSpMuTyk|GIb%;FOgAZX;|jL0iVS&o bK<)_z=?M$AafhNH4Pu702oHBC4&d%@okr=C literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/SmartDog.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/SmartDog.class new file mode 100644 index 0000000000000000000000000000000000000000..91a154b39c5c083d9e0f5dc1124fe71a6e082a29 GIT binary patch literal 1641 zcmZ`(?Qh#e9Dc5GVkdReE^U(z+Rbz?O}#GO*kG`Y0$bL-r2{S7BtE*1Roo_avdtdl_E58z)yLVND)Bx{@Lr1RbRe$PEGXaD>EU;hBOj_nc_&@kW>F^?;< zyIRD@xMtvb37_Co12=ShRzeXC*?n%{rhMKqa9h6r!oa4Se`(+=9bfCXBcO$D&ljk) z_S_#_r|X8hPCJQ%aQBu#{vZxKz7$P?!tEdol1+hJefqL8z<8}K^yXVG9Gm=MD>n8~`)j>OMyf2{l z{p5*ax;SB{+^FvkcP!M`Pl5>;g!ncUq}3I+!IEr+swmQ=;4o?Wi5qmuccz`V-u||G zkjW^uqe1NXTY(fhGi2Y8&Y3uk4@ly9xF1F@LlcXrny6t($6XUm+!I)S-lwhBu&lmr zc~RI;;(?b$v5qYh_i;|ZKDI4QW5eo10~&gyNT7B+wL62L+wo%)5AaZ+Yz2Kw8pwki zjfROwxWFi-kvA<9kL7vA4NJu=7apKRVWWku*r(9y#)p5iv*&xsk)`&J{lxF_ zzC;7QSWFWMB8P^D2}SvCkGan)jHAo6QRUDL$<;kL@WYP4!hh&hu_U?YiA=hAB& zlEX4ne{Tgo;@7mmuWX8q;i(bx9YTjv!}>$1T5KaAneN2Yvk~bL z63fBjW%@DJvNF=LigTHkP30y~u%(W%GbzFu`g2wxR25=jM7NO96*!Lz8J5GR6p)wH ze&b+@1PHAbSKlF$9}&5TwXArP3Z)|jdyQTmCvuTQ*4{%zx+M>;V?D!ic=C{l_UafB zdm<5gWc5#sOBQdBt*(^mapt$OdX^Kd{PQnZeP`2Lx=B04sWgvYF)goLC5tAf+(@rn jgJXxrUEz=C8e07Gk7L@-+_|K@oB9t;orE@&jLUBUsX8h| literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/SmartDogTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/SmartDogTest.class new file mode 100644 index 0000000000000000000000000000000000000000..bb61cd8a34d9174b245e14eccb8b4613ac816e49 GIT binary patch literal 800 zcmZ`%ZEw<07(EvXEv&k&1DuoTP^WC2tD9yY#4L*=eyYrbWr^|ArBuAE(4}<#uYG|; z6MulwzhpcYOlA~s)91O*dEU-R`|aoFuK=FoSrJR9nYdp>1~m&0@<-<%rbh!0wb|6> zk%h4+XOItuq1RIPQi5i@q9$t;<0tOipDdBI5XQ zAfq#xC>{R>jr5}$2~_gB=8hP!3OwwlDI}Jx^gEI$G4FxLo_kLe~l3pZ- zJ+GZ6YS?Q`cgm#4DJyf*q&4d939SBS1E;fKU!d5IFOwjAtu)u=KMCyWoi>)?kivYP zq}YmQMLRa0z_GEb%Z-x@8QJjg)W#mTWo>@H)+w-bE$*b#4+BD#`oD^sTC#mX^=UIq zrHUxs=*Z+;z#N5XOAe@@Jf~6jS*&=QsDLF#os&?*B7XyYGN5ocv@47}dO@Gtow@Wa*E;AoFg5tgpRel#rXieB+K`?eL{9&=*{% zIL3lof<4B~zmwOi4{(DcO;~)&Sl}`n>ttUe|4puSQNli{9FWKh+`%ELc*P1$bz?>c ZYsA6+26O8qTjqDV%bV7IkC_ZMegW#vr2_x} literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/StaticImportTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/StaticImportTest.class new file mode 100644 index 0000000000000000000000000000000000000000..04c74daff392049a3e72989e004e1a113403271d GIT binary patch literal 588 zcmaJ;O;5r=5Pi#6p`svA{MOIfOMT#Y=9LkJx{`ej2C2gA& z3n^H@3jLR71j?&am9T~iA<5yhRE)4!WNO(rES76Q2zn5 C6@$P4 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/StaticImportTest2.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/StaticImportTest2.class new file mode 100644 index 0000000000000000000000000000000000000000..74db27dfac2a1a0289c1eed6573e740be698eb82 GIT binary patch literal 1085 zcmah|ZBNrs6n-un>sHF!7%wV9@ogQt6*dM85C=>mW-4)ng!t*wRp{u}(X}T2Ed4Ny zB>n*Zl8N!$jyMR5-Vf*8d!BQj^W1aVpTEEV0I-CY5|T0|phb#OE?ALbZ0^@VDLoZK z3iDAsmGKN|2^kqOv?z4p7lc_9CL2XAils=A=){u2ke9G5VTB>GVKppolOd#~4jIBb zPSs=>E?W)rtzSPj-2;AXQzTw?3~nEC*AnNeVAwmgS`2e#!>Q}Fs#9}x!*1ynk9(G} zS8qD5cVM=>>^c$Gxz%8p&_0xF{1ex0-Z-H|*J_-s2ZgzNLR4ctU=r!_s^t^RO2oun zlQYN_$9D~L*AnU`Zk5c4Dhxy2VsE&2s$ddR5>^!yutvfUx$T>(^HJU3Q?1sTn#(LM zE#?c^<$Nx`T39LMB&;jgz;lMlE>lPLwr|;0)1}tD57Y@7!*UJVTvHWn;)O6p1zXr= z7}+Ax*E1Lrm2;n-qPmXb2_&0Y5EpkqZ=C&4Ly52}=iPD5G`t(3%IB76)@i7YPr!Jm z<(8xGQ@=fuZ}K|LWGvvg8D@~0BFUyO z(`hX=N4uRUzM|H-OAiVYPYH7vr{6-XKKi0*uw?JhNhi<9_s?IT?@IvRB^wEXQQV`w z(n-KH?$arT8O%~dT)spY{p8IALa!3&Po5>uUVnuYkG2sbe+l{M0t0cSjlpCaLv0M- z1V#u*^#Vo-NFe?ViN9!9+zcctDpTuwTJ5dIDzyKGlzxm8=VP;6bQW$neP1*_4-gh~}gRf$o1KTTA|IC>)^UcgRGw1yL{rv}kbv)IOMmd37SWvO3;Wi8v6$MKg z;wY=QBhR}DB(W^DsuZS*dkR)GG7@4{#hQY3hN#=`GOz|iye?c3Y>~;R>@dWhdu^K` z)fBG%s^4wd{#)L1$dYb)7I${IFXTNm#)1!`$53ioUf1ljy^d#EPS4y9cp$6>yv%^1f)8XzO0e#`_)rN(+zelMum$(_!y5)p4wQaBOTlNbfN#(~X zRb_G=Iph`G*Rg>I426c<6K%UF++M(4ODZSKstO+Jc!W(V9l|V+aDLwkJip2?eUa_6 zzHr*MPo5Aj8#5}!@=CQxQ{61;sG+VSgRImZ>)67RarA14W|;fW@Wx};PGV<54%8S; z{9I!Ulc&^Qw>q{JoHK2I>IF7Ef~eOgM{cwg;hAq}B>^qQ=3QD_W|-r=nL*i?Acyvu zGcI3eobT`3Zku8GGQe0&I8-WFFdCJAxYfWLJsO6rF%GPuL@zx}--SVwDLU}6A$ROi@r^@8gNNeW55I}<(m7sx5g8T#QMzO%$) z14Vji^Vr1#I2O;aZQ&;72&WR_cns!{E0CIs{rUz?4qz%A02>YJ1`?1#h9as7$Yp=?J?WaEHAA4gswiHf*K+zS{g z_Q%$cA9Ba%!N6%tst*q0-aHx*TWLX=Z*;Nhtf6RP1*;nN zOgOm5uyMZ8%c{&m$s$koEfe?gK*2+kjDDoyv56;mN*n%hMiZA% zWLQ1z^sYA)t~`@!f1XG|7No-|70UDTd!h4QnL`!`J|eG{_;@UWKEtlPz@ZDN;?tHql@*+W9Y}11((2HdBk?(|Qn$tB9mMGds zDz2IJBe43KcJdvmFO*MVozS2W^hh(vqD(V$z7`d1Pz2>`!t*BP1*%_>K1Sxl5wgXl z8MOL0q-M}($jxA!C)Tlr++W1iggA#yTuz9aBtePDA7hzV&DPEg`BS0-^;Nob1V=Kic`4u8$DOU>i_@% literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/ThisTest5.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/ThisTest5.class new file mode 100644 index 0000000000000000000000000000000000000000..eeee8558f550a221d766ec67b0108391422379ae GIT binary patch literal 1001 zcmaJ=+iuf95IviuwPV~QO?siUKw55YN^2m5OIq;&5>h1#DmAKvc-khb;3%;x$En0; z6^T@$Qa^x?LY#G?-r>QsyEC)r%$yzn{`2b;z)Ngd$YUi78xOL0h(`tP0%BWWa?20=_#Iu&>YhO6L)cORdCw2jr$KLD zMGd*%rKjkHP1)U(k+08VXD0sU_XQTbX4rE(t*{fi&2Haq(A!Y`xV9-^9z=c+6N=c* zc0$pUejqUCeDyl=P`X_iwB6m9Y3N&e&BaoDq^EMGLk(NtEfy#>Sdb(*R*+M<2BwGcx$5$_A$R5 z^kW$`RrzqN!RP`b|7hOE0`3SD&bdGDcT_XJC>Qg%%@ee) zW1NtpEw?nKHMa(6D;}tX6e)sAjUpkQHpwbDO6@`$S zlZ`GjxvJlk-MS21y`Ll#;a7Jcuvl&SJ*U(1JHFHG4xAdZH8lv!I|61uaJ`UJYDXSQrz^d-a}ctuy%XUwXp=O51I#YNuq$OD*UPGXDtT6KQRe5P8C zCK0Sy!tzAF${MYoIe|^_nd*AhI2s{!m3fBTDLRtAz?{Kd+>2CA+~;KcA5q{whLyhx Cxze=& literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Wrapper.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/Wrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..2df1204a39d9edc5991059ace0d12af178e0f386 GIT binary patch literal 786 zcmZuu%}T>S7@SSg)YhoAYU{svODmX*CoKgLJQY1yDtJp`s0p-Rszq zFYC0a#drQtpxSc7dn>pNgV1t&L+d)S2Lmr6UuAmhaqzpj{r^gXDw|TL$wcZ=yIw4? zYSyxH1#)KX$CWyiAhXdv&Z3&xmO$|;97V2o?n`GzD)&&{pn(E*4dkHnj{bEeP@27J z$~0>o?DJVPK9hhV4`9r*QZUCp9|J|^^Xxc`3S+VU22nqFh4Rcwg~9(KBeFK4Z+46WcH)bv~Tfu6|d&)`>m8-u%d18`KN}(XRq%smfN+k*YI+7qU tv_@2AZ09Dmqt958c7YPbE>GCd$2Rng4LM6}$l0U~C1tK+oo6c8_y$}!gA@P& literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/WrapperTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/WrapperTest.class new file mode 100644 index 0000000000000000000000000000000000000000..511b708d4cdb0a98d97d1414e512887b79bb5adf GIT binary patch literal 1232 zcmZuxYg5xu5IwhPn-C(8LP5j_zFP{!0zP=Epom)05eJ6xi=oZbbke3KsSf(9^h24E z8OP85D93Z#A}zEt-Fvfp_U!JtH~I7T=Pv;Bc&TFuX%&+iGCCrdl4e@POb<-lQIXZ5 zA+2Fnu5;4N>$r=18tzNv0}Trr7F8^%SQdycI~6Bf6;M*?9f9b&SFi>8b56zHs+IR` z|DCn((v!$}dCT3gd`CXFoYC;369|mw@?P026}*yX=H0;D^{r}^nRXB^k+N(#6@ih| z`&`NTY?-cADVp1%?^KFQjgppMB*{>hut4NXR$#O{Ke;0T!-=!JGBPX891C}Leo#H` zKGU6c`7GTkOX=HQ&ClB#j#OiyZNwQlm4RU-1(IEb5QuHsuIowAih)%;B*SSfR6H{9 z7;7B&bZD*SxCPti83kG9uj7ecM zMUBggQYi>bx0gG<9Bn0#cls4XQMsc2dqY1zmF7T-bWKYD{M8SrN6_{T(UZ{Y=$+!f4x^59nM7Y5{Vmv58*G4(=@XbZK`lnx zV1tB=MgQYu%L-)6lhA47v?^!ir-ZvKda=L(-l7k?=*I^P;420jW6d{P$0b~5o{mqr pf(Z_mfJ3#eQKtp0;W~E;^Tu(5yC`lFD+OudZ*eDZo4yEA{{YNq8=U|E literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/p1/AccessLevelTest2.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/cls/p1/AccessLevelTest2.class new file mode 100644 index 0000000000000000000000000000000000000000..56899da8aefd9c1d1bcb8ed752b7403fc108ce69 GIT binary patch literal 996 zcmaJ|Zg<1spu{nnuFr5V)-6qp1V`iF|EFo&bvc&jTY2UD3Q;nTqIirg2~T8% zQHVeldr_E@Fl8A}u`SS*2s8;h5_TEFhgR3}j~Ie#@r)t#)-^dpykT|u`+?Kq-l^WQ z$&+ljhHjtfo+ZvxXUP9z^%*uBhU;h@)9tvLVfVG(u6Aq~yx(u|A-7L?-`}fIYDc%a z49n{0Mn@m&nyq)+TGRKeZo4+7*1a|*ODza91azBW?FP>b3FT)dy(bKE(;avQe`krZ zGc%ZRAr--`;2x3;tMg^gKo#s^L&7tKgx+UZxmoa=fn}TAqo&MUJ*VI~UI=rb;3Zy3 zs3|x^UBQuH$sC{i+{-zxX`NqCv$b^;X@B%%Ry`^HCmiwJ$rUoB)!RTy zkQ%ozUl4=T6Xn@751B;;(If_(D)NZakc%e(Chm-EicT8sjP|9{CD^xdI88P@c7~Cm zZ)F0&GFIpm#eJ-jNBsO1L0Ull3V~0T2sX+;5UPL2(iOsVmXeVXqS+DT5$=qjlt+k_ z6Y5Wd2$H-z^<0w{5TRrdS}|I2Y$1&jk?mj&2Uw>;*cca-n~>rG`2~I-Sv;hYVuV~L MjOZ{&kpS}l0DPk1s{jB1 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/concepts/Person.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/concepts/Person.class new file mode 100644 index 0000000000000000000000000000000000000000..64975d0bf4c915291d6408de41b798314ad7b9e1 GIT binary patch literal 755 zcmZ{h&5ja56opSU4K2_NKLX19Ij#gW_QsutjfrjunqWv~*)$cV2~?Y=nRzWuBqlC= z03XVDs=AS6U{Xody|>Oi^;OlMzrTJ1c!R4F@;EKR#+jbZ9b7oL6tI=Qk^+t4!oT&s zrLX4RIEh0we=AU!OEr@*gLk0{lYzjC?xF6m(worteKezQbr>o++N`EB{^C!U=ABJzSr1@ddM_CCva9Vz0JHALtyM~1kPWgjy}XD*X; zr`hctG6^{AouGB(7Mj^n@-DR~(rjm38b_NrkRL)#UruRW>(_Eo#4{HKI4&N+5$HTf zFHqaR@2BZP28lqf+neAyKO@f{vN-5uBARivA$UNEbD7yS_j6pU{htv1ms?oyc0d0dM@Z=~+?mkHCD9BTT+xZ71 C#f0Gi literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/concepts/Person2.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/concepts/Person2.class new file mode 100644 index 0000000000000000000000000000000000000000..7f9230ae235ad60efee28109e6af6ca984402581 GIT binary patch literal 758 zcmZ{h%}(1u6ot_{<Gd8d3-ii9js`qQMYogJ@g7ZjvP|Cc8|s>4>k6 zZ~hDZ3(nYw;OLCcPT%?;_})h!b<}e=>jX^7xS8B@?)ja2?(ckT^7OBtegUuy-HTVS z?j~J6zq&RO-v>Q+znz=?@!s=qMsNr3D7fnd$2!M`l$&zN%4N%oZR9xKm7DiC@*F!H z@5^0*V^_)|$DWk?3hr^-=O}R;aD2dV$nl|qj}$y$@T}>EZrx!Rj?Eu3xUyzdV;C#w zhE{Ah%3AY4li7tD&NABv_f_m0tJ9qTQIaG_#05+_yj#7tC$C9JbkEkUObw3f9> zF&jcR7$#zm3Mb;RNYsTi8Ee3DNY&R=fPM6844%r3CPsOXa zuHd1HNBEdw^1qxn+j_mK(GA?D7G003_ynKIPL21?lLPc){AiL>aD+3b1d9V^^oz&oQs#T*6Rkqsy-ZUpnVNftWHeuE2Ml3`zUEr_8F-$u$c{^wUIHz^*! zE3E|K&hRHteg=PVjuF4NgVC7|)DB+i;N=Uz7y;1^e0{(;0U_6*BYugv2O$B8csdC7 zMGFx!sdO;WhfESO#XFe#ABcatOWseZ$Rzw>M@Aeu>&Q8hy_!D6gk9NTDD>eNrCR!^ zenHZvsLBzHAw`xwj6;VXUn79;2t7v#&*IL4!TXfGbyM{Oxs8b3HQJZg3<44&z7O_NK^Dz}k`tx!l$T)7(y&g<47gmraZV~*A P4Bn=A4677t2y6cUv*DTi literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/AdjustDates.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/AdjustDates.class new file mode 100644 index 0000000000000000000000000000000000000000..49ba440b35c70d6ddd554696b27d7eeedcb9310c GIT binary patch literal 2473 zcmbVOYg5}+5Iq-cWQ+nXkOxVds;QHhN1_z^NP*H4C=IE>X(35z`nuRM5y+A&$w}z@ zduQ6e(&mH1q%-{io&Kgy&y@@ojp0L?LDF8GJ$Lu)?v?-g=h>eCUdK;aoWoR>PjB?% zO}wSydKM{6W$?DTPpiv}y3A(r4(59CF5b&x9ygTBLI#VR|bn-Svq&6 zZ!5dCmr;%$3oMTS;r*DQ0svfT*6MVi43d27;k1x^+27q{g@X*$x~ zGS@=icDH7teWkxerlAh61=68ck-GvXW8a8A3P-V%JnLGI!xhhsK>dzX+wPXCTnQft zWMmYH2%P?}VmBJLQ&IV7 z>q?kuL&pX_RhRoZKEvl4zR>X{zS2O-O_ViMbXchB*a8JPu}Zm&STE%}2Aj$kDVsqy z!>bxKrQEc^5N~*17=*s8uUO#&uM!OOU^|B$-kcmv9W}T*Jk;3)su+e;su@!;Ltsd^ zVoWO5KyCCjd>sK8`1#`-h8wqYE^TgG<&Y6ZONWckwspNnl&El&@Cl-|-GD`>i`O7s ztC?)iyv;5Q*^8E}vGzT(Ubozez?D{o54CDs-o#R?7IZv>kAt3RMb#0X3B7m#1cvv+ zPXNgnXM8w97QL?GbvR8YJ4MJLPAJ9REmiMX)(#U}DXlKfZyaPEDS7ao+vVE=A2}SH z(Uh7tf!X8$v}uxcIFf~%r5@R8I1jNLjZd<+hfUz}zHm`8NBd_Hq9Jf8DOiURwU)9t zi-$aR*a;3tKfk|8BeWf}+HlLE?YZV1SNgl9y5-BzQ-?;sS5+ghe~bt$w{|JQ|k90i7cRH@Z6u8iyC)<7K?O0|pI?p)PvMS5W zfQk0i+LneN*fK@W+i7sP^<~$!`~@DZfyDs+PU_g=iw}sKoOs6y^0DL0bK{a+Ipny$ zTetq-%XrJ=oK7d8 zLxhf`53ubt#*k%ref)i*GvfgikmFB~AuMB<-=EWPFv0;mi(jaXLF8PV4ld#ntrUL7 zW%>yIZ()?zE_yEUyHsG}4uu%U1W_TquW&7$%c`c1#ldxAl(PL}!x(Pj)G$srG4dN% rk`kXuNZgNWWZ};uycVG*@h$IJvh3n}e8X5jpsmVrlbB`P!iWC?H;0=s literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/ChristmasDay.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/ChristmasDay.class new file mode 100644 index 0000000000000000000000000000000000000000..534aeb59fe953a5014f5ecafbcffb82fcfaaf832 GIT binary patch literal 1728 zcmah}TUQ%Z7~LngA=80yDO6~&K}7>p#@1dG5S3d?O`vTk7wheiOu~dohLucO^RBudc zL$%yi%N-qeaZfED#qlu~bSz>?$0t~h<5PUrhtD;v=vc*?j&*EkxGxY}vMaW?ED%o3 z>rM^=hv)~ni;;-Uf$IeCH6md^M0@zxlP z&Y?zCKx_(VFD&br0TrJMVQ69#NLGvFH1Zl8foR^!-MS-iIRKP#E8bC?WW$m~8VqO; zC?SLXtS58F8F}JouHk_O($TYSy_&N&Y*nG5V8-)`oq=JDXn1Jg3#92|AcHMB8ra4o z1CQ~v5mE0ICpzUcqr2=_S?`bM}gs*GimMh0Qnk&nVl4Ju|) z+KD3@Te8ehE5YhqKyNV%25#3ac!fI@Te3#Yv&wu@+&a0nFSYHOk9gaech!<*k{j~N z;yY|sJgaDNq_pSKsax9|ld)81DuNc>oX$t%GuEOlu++{aNG|vkv@S)b_2GX#7ds>v?sxX&&);u90bIZ<1^b{WID@ka&f&a5wu=fb;c^qM z;Hrd-0tuRoLEf+Na-EkU1vhY0#;}YL8KX@Y!!2gH%`A6hjLXPMn2>N+Aa>2POm|42 zG2J^S5E-=#hCn=LTE39mlZTF*?uEd62kEx@igQO+U%4=x=nbs9Q_gjO&=z(x8`Hcb15)Ed&;j znRwbNt_gJb;a(Q6D$YUtGFx_Wsg~fe@PC2MFqW!Yf|K$8dDC5fY+Kvh*-{8Jwx_f< zVmj_Jn*=sbei~)QE<1VSw#g#4ZxiJ->!4ykIwj;(OkzsHH1GE$+~@s)gc;svB|KCy zhk1d0+qD}ho5h0R2((n$Q(Q+TrQ#75czLYi37$%Lrs6qX1pK(dOo}LjfhpZ8q&AW6 zAky!d`#lGiAd`~tQiYC16?qhRp&sLtYbj5SY8e8Fn#H5#j7R@JFci1d>Ga}?k#}h} zJd;axYqguF(Y5Ti)J3{C>`G}cwnuRpq5cezzb|op7C)vdJjc$sx)BkmkE;VIU!c*M zwb!muqL%D3wOgHZ)7I|MD{<+q7n0~{%U!0JiQ%b-!w(h&l7V~l zK+4l#zY^$6XLmr^-EO@zo!yCfH-#hEOJ7$0H9+w5qxArtG};C2(Y_6cPafPwYs@n$ zI7t6h-vNivO{XRtMv5#HEauTj-(KK%1r50h8Ye4=OjQugL_Q<-9n!)EoPdEaAVEN9q=qD=kDrlDs1>wkq6sO{T|rwW7Rb=f{?VF$0O?>P zRztQLzl3ILs2LHoKt`OJPaug_^q~!-Xvb4@;0@{bjud=PB78s>evwQp)VMDOX?>JV y5&Xb0^pI3CzT!Aekn$?N;3U!{TM{49ORN!M8p0{^ixS^O^phWpKR^r(IQvH*_29k!E+#%$_+jv;Oh(+jjt4*j2HJx`G=jQm7ZOikk`=Dzd2O zaZ9d-G)-yNRIKB+4BW_LQzE83ztJUp;F zE+Hi=aBTO`4uw3A!A$f~95FO3C-BUEH|Pgu*N%83JZ|m{!;t%t#e24M{EE;Pv3s`g z8LGwyt8ag@P1p8&W;+Un-)qI$?XX9DTV?te)yRB<@fQQmN z((o8h6l`l~VMoJLP-koBgJo}Y;p>UkdobXBmtn)0F@-5;Tr*vqh)>eDn*WH;M?o@Mh9zSG9}*8X3P@8g|XtpXUE994lC$PeuMxU~=SS%XBhnWwd73 zPQbpz?j^Fh7|fwUdo2k-70Yxg;36&&A}@bNhW^0rDN^rGkhZ=ebBZi&b0uYj{Q3xm z5!4apXs5k6=bb07K0-0^p5-mYdeO`NXtC9j4QO}>4DX7l~gncxrXa; KQ95~2SosAm$Nh)^ literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/CustomAdjusterTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/CustomAdjusterTest.class new file mode 100644 index 0000000000000000000000000000000000000000..455cf47ab09ffb5dcb602f1ca313d11cec0d68d0 GIT binary patch literal 1973 zcma)7T~ixn6n@@(Z4wp;P-s)XXq7fV(iQMCU@e4TBLOOjMQAlH*%daEWSOwhQLh|- zg*RS1<5ihy%IN5Qd##uL6~|{knk-*qbMe0Cyze>BIq!4M**yFAw?6^A1uc$CNXL-D ztvD3C8N&=_ZD}sX+qWgW6NiMfy}TR6d-ndmy=3E<$3h$*;C2)r#&HLWaV#NcFUu10 z5>^Bv3r5qhZVLocllKKeIaAXG28%{hUvD>d^;TKkt@C8KXjawweYIuSx_20|_Kib< zo5iZxP->c4GZjs>bjxVyO0IoqnT^BDS`Q{V%Lsa6_|LTQVAq_d2Q_0^eR~zbdDV2*UYB1FA!bM z=kjYy`AvZ#ABD~>sT=7zbSotgFuxL*N)^sH6efK~T?gV^|KFV1Ggr6r`PJpc?NVi{ zP`+DP->9r?7N}Qd*boywWJ_-xm@T!gls&<#Zi|sZ-x&707E&){e^I_Z?n>XX`y1>_ zvrPuQ-Zf0+9$VgG)AjAntH74ObiF3>fjEaw4!%PV*;V9n$s_M5jB54aYm^OY$bxf!slV+A|CH%+g)6aMvv3 znMHbLnXXx+YnDz#6PaTS3=bY7ag3p?l$0FL;cT?$nUuP&(XMNcj4TEm8f5h23gtJD z;2+`;zicBYlhqd4{GNpTM2dbUNxzb!$0X@5yy_76&?Sl5YYxs+jI$nsSbyL;r2r8h u;dM$u;{HPI8bU<=0TYzM#NNRTN)aMY;U-f2gMCblNlH=TOc6DJ>Hh%Ix&kQx literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/CustomAdjusters.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/CustomAdjusters.class new file mode 100644 index 0000000000000000000000000000000000000000..ed0be4ba0a5f712cde2894ab40181c8169b25e44 GIT binary patch literal 1852 zcmbVN+fo}x5Iuv07Q`ZCz+gy1d=U-^;>C9EB2KV?AbTYxNI+~SMGevbD^@$I)yfXP zkuS)L^PD(Uw#yIsfK+}dsr2mXvcwjt%F9f5Z(mOLoSFUO?^nMA_yFI>k-&T$*YVyk z7O<$6v|5&wZCOe0$8iIOQdh<)<|CzkJd9C%qTy2wpE1ntZEW0MUwcs6-^-P^_6x=R z&FviN`!{bh%$qg-m>Zr|7ltS54e4^*D7S^RYOU4ugqvZAty+%d-C>9jfx*HU`h81;^=CPT`s$huLh%9=E)+!KD$ELD*8PNgQ5 znmiKTo)9PN{Ino9U8~AZ71HH}5LCa)I_1bLzR^kuRRxBNeLicBc%tH|A=bHZzGC9eEUV z6!Eo=F(etT{`Yh#sejxycaDtWK}}RVhKU{nx???K?aqTir?UyE(+lD8cR$eFhDvMY zoo!+nQKz(12!w!lG}KO(ymY){pHtLtEME-#QawO@DM@sSI^qX{zZ&L64?-AN-z)?) z`ovNY&SdHDAI{nxRwj;bu+4D2jU+VP4n4!BI9<*X!ys=oY+_!jGsBi=*~VeZsd$!j zj2(x&r^SYFxhK^HOvppU*Um*@$hE7T7Z!%wzbOr69XoiS;}T|wM?H#I&SQBZ43pOn zs+?HJ4|#>)5bBY7Pt)*-PS2F`q}3pbW5+Od_P)LTK83DOMO8SR7V7hu1VFn~!~W4>`57fIFw2TWm_w75DyvZ&x6 z$vZ;(t+bhbj)DC0Gen+ZmbU0qOwcy?Gp6ZFEIIlU66t5qUSjAuhRvm4C@SJtn!+H- zQ_Zwd6(=u2L8glhRYhR#4&`c-R72k zV6+2qjJez$mm81Z zF7AbiB*I7{<&yg{CS*)9gci)2=`1m{C6e0=fi+R$3|(2X#&h-R9=D46UWGJ0Sz+jv zZQU|m*;fXfL(^u6XAMzR%Oz13YDssvV^+DkR<|8deNpF@$?Y^l#I!ZbEa@jRvkdcz zY*~M!tDdF9tH;99D{9eaRt$sNwy@I4rd36+9jL29RJdMqBTvYY+t2ecj9)Q1*ZzruAzE;B<7iVq_Un!mMBOsDW_q3Z zrP3+4E(HprGNu%$n3gf4-~nb8n$fg^M|dpbiGrt?Q!tMK8EFLzSX8itMTU`owUVLR zYn|7W{9c(G4#RMZZmu0#q9!zxS4s@Z`pT=_ytccU&lR6hmR5ydaiBJhwFvq9fEYSV zyHG!-@j0BbjQ@449+Y(QHF^1Hb~2ggw0Q@dO875d8g}m`u8XNMNMfI%Ke6F&jJH=8 z*HleN+uER{46)1R`5Q$`U)*|`p~x+_EvT(z3mJ^U{k+^q0<{xSqManEbTT@FsgGc1 z-gOtzkf)5Gn|P&ZfEap63Zoa-NaH%6QLq4=TB-r*GukA)!yNGepPy{%gAx{+TH+Rm zJ|UDF?2f)i=VSx&2gnVypEeLarATdXvkyZis-T}>#wpVTX=ez_5@A@S>@KPlWscJ? nq7T;z%>>aK^h#tGBfkNPM7VGhgLDqj8wC4K&J4FmkTCocWwsSA literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/DateAndInstant.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/DateAndInstant.class new file mode 100644 index 0000000000000000000000000000000000000000..0d8fd72328c427b1ee0a1c7ef2e0e7a3046bb2b7 GIT binary patch literal 1116 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 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/Friday13Query.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/Friday13Query.class new file mode 100644 index 0000000000000000000000000000000000000000..f567b950f2b947f99b54ff821accd58d2e5e0a27 GIT binary patch literal 1521 zcmb7ESyK~15dLOKvLsm~TnY-vA<8Aoz@7k{o@w^(^&E05(d2(!muAB80FG!E{*x1 zV%$s1gcp;T;>)xTe%z69m+$1{$2}SMWy~-r@zhRiJst^f?@UZF^d-_}Ud?9Atf^)+ zTepq8uEs1Qqa9C7Jud0iagf0iG75%0&rmlww8`LFGBY|uW5OutYo+|IZf$70Inp#I z%(Rx<)GULa9i_`YFp3P`XFOQUGV=_xgNdy6TvJ6dThAYvmX=dD93h-e>&2pJ1&1nD zIjyj-E}CXe*9rv2N6?act7gGIU|?|u`Gu|@MzmwfA+EOQ$k0}mf-aMLTutuvXZaWg zs!Yzbf1+S$NZDHYa8)~UDw_F!_{rU@p0;`VP&((3=}j5?1$q*0nua8y-G>sdO_PoO$^;NOqLETvtY&yJ(r;Y=A)a8 z?W`u(HkK)5EuN|zh>-poA%7n>2ES2Em5yi>ZJn|VT-aj)B{=kyyc{%J(dY`jkA2<# zM_(G;mY=xJCzL@l_ZZp-7>%mXm<~vg1sR@LL03fp=`uul9h@9t_XJmOra{y zpUK)y7Rw`LNFPuq;U$73yBt}q=-m?LDq51}yWYby>*@?Nyh3A#s|@)yt;;);jhid$cS<=!)sWG2m8E_0E8X76wBZ=e31JbL=q-vFlZi-I)f zBwSVy!h8%1cvHfnf(YhhT;cOA*5vu=Du2DLpnz*ETT-x$>oRWe`HqYgK38SD%jcSm z_Y}O3bs0Bh++xvf1s~u;86U~`m>)HEvLT@;K^KT#G^?h4NuVb)wk8msw{$}wUNEc1 zQoXWa)K;~PGD(sJtEiRNw3^B9o-k~0nY#khg`!o-ZtK>zmDM%du+55*y;3tu7NM*2 zTG^=TT5YbXFBx|iNWV(@S>mc_W>sJ?bE~ke-O;jTty;>i*fq0Snss8)Y9;dC*F`N5 zDisAzxQ2DxEFb10hESO@9B@HSP)-sYf}^y%D81Nv$~tLN-Ap}1$Rgh(KEU$k=B{D; z@(WqyV(<{6$*|YSaMP+9y3ankM}j=DBz-;@l-DVInG@nSfqqx-l!3joln_0o;*@~0 zV%2L!W6|U;p8Aijoa08QcoxqIj5fr=kt zsrU&$3rzk0i$L7%>Md_<8%3I$SSIg$_!{`sEBAJ7qe7jv>h0Mzt?YHWGdA5EL#t5V zquS06-8g}Xj5`>Ci*-ok^@9U7~1Y++j4I+jX~3& z4@iW4PUgV`D2yFWr%bD1pj!e|lDKU-{c2to8rCL(P4Q;~O5$E4eI35Ths3nVGr)EwrK^ral5|)C8-wtwMS6=N zgE5kjacB`TdI7QZ0HO6`(&KQVHxW-vB&PP!Q}`3%2Z*fiBbt;NkjEQ{HJ~)m+ki?h zM;bVK&4-B-=4=NbvE&0BBfvxlAejsM5PgJ5g*zbqxrh%kz>r8Mq=CU))Q1{kR5XCf zNk08B>nSNO8-7gXOq`fyJ5p z2>*lM^rQNLI(Eh%;9qja@wvMsKoj)?d(NJFUZ3;a<jLrO5?_@~-?9a!>W*jM>9zOm&YrpN(vqqB4by#Sb{zRW zFe<@;(-kPx8-Baoviz1`w#>i|oVH!Q-LacKy}g^XRGGPLI-WqT__*FOzcb6O={3u{ zLC5i$)v&VJX)@RJ8OH*#WYU!Wsk!;#~|o1u`iI_cox_l!?Y~!$}kN%a>d{( z$Ly=N5 zi)Dt>-`#K74Y~TEY4@lb*lq5@@9`iT?ZWZP_sBiT1>0;(_LzrN<(enew|3&k^OGadFaUQs|jl=WTSiR@Vwc^Tt`oK!2;YVv|ik+~AKnzu9HIj=04 zt`6*6;c@wpEd#>mi`%E08g@T6Z3JHRzx?B@M!pwoOS}bniho50ukvG+=a&tLgSQup zd|u*PnNm$EUf%tGOJ4EX5N6td!10Ewd1o z&vU5@T;?Ljyo8HfbAe-(xKx)5m5aU~wHb~jDd6C3ta1qX5qXDNjFC_9F10x0A8^=J ej#?mSSE(hK>lUt2OEO~|@8bigjQ%j}qw)`C*{g8? literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/InstantDurationTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/InstantDurationTest.class new file mode 100644 index 0000000000000000000000000000000000000000..8bd9a03cdce10e7ee7c297eb975a9765bfd9e099 GIT binary patch literal 1838 zcma)7U3U{@5Psf}WVd1IXG&X&peV5EM`8j>O%Z8_jpuml zAMrQnMc}B%8}IZ^FTM8Ke<056=3{Gf!Jd==S??YugG1R8&?`01DKt#4;T23Humb5=g}ZJmFx=pF+cyH~xjR-X zSS5bPkgmXK{b{9Pd~FnL!#yZe17Erat6_Y@KOn}bA+SI~772}q(7&lEh-u!pAtGyl(jy)A9i z@~M)tSk~}4zF_gChG+On0nzNE#$c(ez|>%&PMTRPvn-Jum&Lqnty^`^w{%&`5yt@z znL|=TLU64fSbi64F!mg_1_!o)Mg~p0-O|lsj>t~QQr?j+>mk!~P}McFXG3QKmtL=H zl-b~_+xrcx76?p)NAV_5Os{^Y>D3OaR?TxwZt}fctQp<gDM;1rM=GalU6XbZrKFWQyn^TNpV6O&VG>kMy`f)>I zoC+^~G(!QU$@$t;RekJKfEi&_(?$U`$X~`(h9T+T2l)zAifXbizL(Gp@K`a*CGR4hECcDa#)}fau$CeNnbjM z3t1#yB3a2IMazR9p!@{&$qS53W;!^z*n!r;sSZYCz!(8beIRrk-^ya*CC1CinB5fF zE%)tWK$d{H_vo@WcCZ!xIs1}4HPD#&0IC#k9$ZqjZOW7x(x4hjDjS$v0S{ES)riaGp_Gx!_x zc!hI9!Fj>Wbs*go1k*0`wEF(|785LP-Y@S-ZiNEkJia0^sf1*UYBr!h26+%^GFlxJl-QzA@BEzD}ihO0phZ~`~Uy| literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/InterCalendarDates.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/InterCalendarDates.class new file mode 100644 index 0000000000000000000000000000000000000000..d81ef6247be8c523ae0338fdbc083c80d3f6f547 GIT binary patch literal 1546 zcmb7E>r&HD5dIDgO$kvdS5ed;0_7UTdTSAc0t%GkOc`bzXPgObgml`Rnx-m`r9VnX zXM6x(#dmPrlaw~);%I)Hle7En?)RPD$j!jFNj~RTw7IIbPBWd0yap-f&IVDw+DG?V3)?D4KTO zaMs9LNmBZfVc86WvA5}h@zKzWhJC1KUB|KylU{klIi!Sr7r2R(dt_Lv)qI|cx*7h7 zVa(6s)yo|@+~)dT03)hW(XdtF9(*7G_vADH(KCq`7-T<&-jpn_IyrO061OmPUe&x1 zqM{G|GLkA5@m$7|*q3FzP_cql3Og%ywQ3dfro%8I_-d!3v{cn`Oxx82v4o}~g*CCP ztJuIx8Lw1qVvCxwncY2y-9}o)Hg*`sFHfqycX&yo@PtOVvuS*9TeOG!r}i>LTQYYK z3TDn_81+nlYY(P!vCr5^xNMqg_? zLz>O9;9I2cXy77-;wu(iX4q=Dz3V6CW$qY7eXsGdlFONu3U^L9{;f&GW%2)$wc3DD zT%+HXcsfA3&`;|Copjn6?VZynU|&4* literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/LocalDateTimeTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/LocalDateTimeTest.class new file mode 100644 index 0000000000000000000000000000000000000000..ddc59a1e0e155a283a56119105c60db6cbcfa5d0 GIT binary patch literal 1951 zcmbVMOLNm!6#lL)Te2dE^KvkRHnbGvyi_1SYo|bX6@wEVanmLgsA4HWMwVPz?o8L6 zF1qD+bW@ly89LJ+&~-PR>8|_sA9Q-IWMnz^bUJu(ALskdx#xW6$iM#c`WFDp@MXM< z3mII*M>0M}QAPaY_`Pcs{HIon;Z&vOHnh6o)?LleebcuZrWWw8)2&Lks@d{O z6uqHa4nt0TSgGsZ=$frNd)kKYSnm?2>s3{#AnS)35Dso-;bA!19xHXe%jlJAd1 zJXY`oUolJ{EcR;KvJKNCL2RQqt3byNUup^rm?Cx+?BOZHm~AXst%|8Pw@lqr3!G}9 z&Z*D1uV0)MVe`it3@Ivs6CAh-nsBMLyeMw^8XjLrSt5~z?;K$``F|S6knI(4cc*UF zNX^l}6!c-ub$rS;xwg7RImc8E0MdV=$BlHPmbtqOb830Op6{Em%6qRPlWo| zbUoeHs@=nCt!B1buJ=aq1L?lKdyqa(;2rw64*p%i_%~1Mdvw)kXSAp0UV;5YhXmfI zH60i;I7w$EB;W&_qFV;1p^}B1*$+rUB-`I(;vX-N$d2qIS;wvfyi~-CA;&qAj*y;AMH~(UQg8@4I%^ok9c1Z0Z~}Eq z;yX;^Iga2*9K%b@;5ClpH|oS+)C(@{tx!G`Fc-x66Z2RgadY?`i&&y&)bTw<{g8xy djz>5{CxIfZ;4JY{6z@FF5s$ZPnIa@`{$J@X>o@=a literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/LocalTimeFromZonedDateTime.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/LocalTimeFromZonedDateTime.class new file mode 100644 index 0000000000000000000000000000000000000000..ce0f271475aaaede56b8fcc5fc234f73a78585f3 GIT binary patch literal 2405 zcmbVO+fy4=82=qevdOY75gIC1TdY)}l*V$2mSAn6B50tkAlg=~OR~ViW>31=P^p(% zFRwoNpg#HJyO*I%opJi&OGo{a9Dipwg$*Dxnwfm(JLkLqzVn^r;otXv12BXybsRxX z#|wB-k+V89jOfT?RBd0THB&1uSl*nu;P9la zAd99mZ+f=c*AHXGnJt;V<=bT|8|crGoA6}$nslwwMT*oxo?*(S z?Fw}CTraGcYi8Cl-KFfT@7eBBK1jp#mgu;B4>2>nUGfDwL(3r6PWR1@e?}k^(b&p{ z!6_XG=wLvH1merG<}sd_641)FTk|dMw5nBwVm~BCvs_F#VWFkVQ#ydNUU9XOW;UPZ={Pm z``qHoE%@oHL3c}_uG=E-pulKP#FuZCE7CKa>|C9>P%K*2s`T>Fh*2-cx0|%f_)5+4 zY;|c;j+zs7%>}v}657*do!P~2(wK1P_DxSkSbvmTFfSp7c^$X$p}^UFt#=j|b-<*9 z4AceYtzWYINnUVvpr@Dfkm7zi7>SUd4Td7ro8edpG|5HPs40H_4Z29@XVY@J41A2c0^zj@eA@1sT;ssEpV^*u`e*F=RR`(aa4wI%^a;$21XqexHQS_w2aBjU~ z{XbzCa(~+>`1P>krsK@ozLnSTg}{mJSD_)T#(D&f?yrZZ@dSTD)u#zUy}G1Fxyy1D zT;nJ2LHrnqkC7&V!z8-M8=(SS9Oo{DXVA?P8jEibLkrLT+C)>KZv)NKeVd5Qki<8T zcmQoA)^{ICpuUS!CzVT(>N$Ma;Z!rqh*qr)Fuv$=s)4$uV}q`59zkYHqdrz z1MM3)w1G@S&_O}}UV_6EbjJ3QJgy|nYqzsbCDFGe+bE17&FXYkd4P4NaS-i(Em z#A$Lvgmi>po+q5s#A=Zk-62Zf5~H7q(w{gHAXo`e;_g}ci{T-jqYu6q_#M4C$(9_% z1N4z=rq^F^id>8uKcJsnoUy*=H_NUJ;X6D}j(>mfHO`PrGWu5-AeUkecQHr{oqmQG dsR_gQG^jw}6MV+pI`K01s-x$ra{*%*{|CFqe3bwI literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/LocalizedFormats.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/LocalizedFormats.class new file mode 100644 index 0000000000000000000000000000000000000000..22dc439b1e76754a70ac6af350e747c49fa0f911 GIT binary patch literal 2774 zcma)8TXz#x6#h<{W+q{fkX~qMsR3G=wv;HK^nz%i7otfEO{pR(PLoMGbuv>Y6R?Pa z7rf(L{(z4@SzT!rmk&O=eDO(L%m3kfz!3P^Q8e4OK+bNuZ*f6RxF z#)60o+`Py`pA_*FA1{h{nva)6Jj0#Oig=EXmqk1;LJnd-miTu@L{@+zA}1mrBI~jU zRm6&b7X)Ywfs?APTBjJAVgri|{xe2aVc3;ab!E0xSW?Udc}XKnBxz)1ZBaH={#`Np zt!1^y(3i{@h4@O=STW*R*-|XEpu}ywdQHhr8)iYaisM9HkX4p|nvlGs?8e+tOBF<`G_*gaHf+C`iy@2w0WyB1{2AK3W1we7qvy zs)U!YCg7TcmvLRdD-vGC4Te4S-8o%SwX9+??5!peom6siNwcDM0?Jra!cDv;;dQ*h z-`SWI^>FBWcwfQ?SYz0kQnG5PQ1#sA#vMsR&sR+!+NSA} zrd3TJ;d+&m_lI+S%x&TAc`Vz`u-i3*W0UX+K9%qpK4<8dQAi$ov;jn1b{k5TsySk! zcKa04k1sLH8~g=BS3=LKvK~|PfoS8z-7c>O{lR+>?N$=DQsL zYnh>W;@o^9Nu|0JWV=W%E!${&srV954MvV(FqUWtNDR14)c_A3-gXj1ERkpo;XVp+ zbYv%5Wpcu%VxF_q8*LuXgeo(1Zx>hDF^)jf)*9a(&FQmq^9u|;F5*TUWqP22r(x$& z-;JDI20v7sE>613@E~@lUU4_@((I1VoYQEnXek9cGmH|gbmh2Fjrch_q%1nB6uCeF z0eN**(dj%It|U-%k~zh?OqK0Rfx*0D*)>peT4R;;TnZ;h4W%Qw@e0tBQnU=`2z4>K zfW+u1u(k*WVU?Gp(SB<4DuV8UfYUODQFoiEJ*$Q(Yw?B3%S0xl6pM!GktJ_cYHBiZ zAw`FOa&C5phUp7Q+9~d}bR^kQx4MosFf%ounwaJHk1dhfUWKlz*78Iz0Uu9VEmA$=Ma6xX=F4u4{m^cZMzTCGhiFT7^Zj00pJLML09_& zc#tdK zC`0P>m$9>q`^wl=M%d-tZ99j`h|tTHmzZlQTD?$h^{93))Sh}&hZl;H?yO0AuZ=of zn-`(FYEa!aYPc3f+1H}>{TFH-J!RZq!x;6#@_FxK|Ha6G$iWTt*2naD#qcctC+1LN z%(fm(bko{LNDD1!M=O1`qZfPV2Vw^h_Fiwz|yV(yI!6=&0OVMK#=O_P3Li_N@zs&I8y8r+H literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/MonthTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/MonthTest.class new file mode 100644 index 0000000000000000000000000000000000000000..5f62e25c25417bc092bdba082fb44864e2458156 GIT binary patch literal 1259 zcmaJ>TT|0e5dKb^Hf;#dLW`n+h@#G%}dP||4{CQX^~XURkD zIHNznN1y#Ij(gJ5%ZPTSd-m+^`OfaQd-CJ=*Y5z5$V%wLbQn+YRDyyTiL_ZR=D3*W zwglG}!cg%nghdfc5|)vau!2<)&l!RnX2o`YSx+Ioakp| zvJ7SHyk0)l9h2`{M!~%>s|*vFylttaf?cxJg6+EOqZ#BfOqEHu`Px*rOWRc)}`&}W%Z<`Y~}MtwQ4)5 zZj>9IV@ePBjaj%X*Qlj2<>0nMp`zh>kyMHDuYgm%T%#V*U{c$(Mc)+DwUjb6#Q?N~b9w$UQ0 zdxE>Cw%O+!qIzLcc!&Xdu>9u(H5U<*QQE1rGFk((U%)l*5Z42VIzp?#YlMfS&^Pqu z{PS8)NNBmhsG#M7qX8`^#)A#WS{?l#I(bYXMELw$(@!Z!D1%{)Q3g{Or7z5VWNF89 z+;8TAyJQDN@8TYLsdw~l#xPDr$LSeOkmjd-5)Vid2xS42qy-2|A&REFx*rjO50C!< Djrbqn literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/OffsetDateTimeTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/OffsetDateTimeTest.class new file mode 100644 index 0000000000000000000000000000000000000000..fcb729621ef4e9ccc55d7c7ba92b3b5bbd3dff73 GIT binary patch literal 2379 zcmb7G%XZsT6y1uQNLEDS*v&hnZcAIIZR#}TRi_lvw50|oDI^5i@=|O$QLv?8%Y{;4 zb;cJk>#P%|Fi5>%!3QvBF=6o&OkhIUNAg2X!dj4lq!cnOzvyo^_3Silt(i#mF7NyAlnUz5jmdAzFQ266&?O~dOt@>tTaEbkQ!H|70? zJl@o>s$oq&-_o$I;cXr7;FgSUYq+E0T@~*s=(}V)ws%=UBt5;ZAiC%lEd>L4+p(7G zl?|)9W^R-@lgPUTv%GFrZ5cNwqu!QXQ*bI@a4VVZqPy*8il%3IcE!r9lu9+ryUO7j zhig{NngS*={xyt^RAgGo6crt)vMah=Dc6ttZtGpc|e#_U7wQaL9$=ww(D3y zDbhz=?|gSS2#JCqJVy;~QBdO{l5VY{lNdrH=B6vY`bMYIiS#N(v6Sr5o&IZOL}(o<%Fh)4AOAp2i1YHa|oX%*l$m+Z>l3ji$qSojCJC zdRFh%JgXw-p-xrJ9csIon>=V9kDFyyn9yhL>{w1w!Av^P(sdg5O*Jz}x$PT-XS1tNI}pMJf)2n*fVi0FHg~>w6kcrS zwh8uyzZSVHb8Ps@gY4X6pnnm?+)|r=p_$|}wdnUJg++8bJCCE7j6(9j_{e{ zD8skHckk)PP`>rUNBQjYCk-6qw-Eqv9M5nR!wH<^ObSr`f`)#+k8AO%272-hM3%lo z^au3bdW^n=x(n^>E@HdTchMh@$J6o2$e9L=_76Ob2Kx+dM zqYaE@V`JJ_tby^Y9zsqClIw0#b*x=Rk~R)NMS|ufY3eX$F@hY%v5X09u{-zKudf+- zNV6Z&?jLaqzv480#~J*Ib9jP`qG47!hVy=lc7iq#l_s~UOk$d7ZhB>u8E4t^S^R++ zennX07cyiJWtDF@pWzRihxm$2b8Pz~JirD1Fj86T8lJ=RZ1EE+c>ymX#+nnj$PAs_ JSyt-7{67=zYlQ#+ literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/OptionalSectionTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/OptionalSectionTest.class new file mode 100644 index 0000000000000000000000000000000000000000..13a221046c25dd46bdeb7cc8b384a2ed08c3b90d GIT binary patch literal 1476 zcma)6>rNU$6#jQWb8g=`bH17R`RDr&04q2WAz>znxQGO1Lr7vy#5@*6EJ7CX z0!!Sm9KuVih^J+X+xx<&$OGja$rdi4@nW1T`99zNT#mT0duEi;ID^V%w^ z`x~t@(q1w6LH0fPaGbm3?pURp9QQ-NFgm?L&6(u3fPkH z7TW^e@p(tUE}!=#?BhVdp@a ztR>nBnr-RWBgFJHbLGscb4d-)ZGU2jw1m3`qN2Cydru!xYnB<3iA-BSrnQ9ofDSmE zN8%!p$+U+wI3Dbfx*oRI*t^@VW|o#}T&0WCv7knVK)p!}>#cx}YFwF?qRWNGV!K#W zZQHcc4XoB1^?=O$jZMMSPV>5Xx;0Ziq08sc6;u`Dz7-GE{N`~doo-%#CuUDEi6`^` z@y`Rsk1~xtB*`>0n*GUdU|(Hxn8tvs6cM4dRChoWy(ERuhknxV;9u|}Nb^C|lbx&4 zIfw|qZ{Z7%)!;u0N5W%asfIwxw-EEyAf){B3wH>n0=Edo0(TJSV}33RToy=frcXj7 z*e-(arUYS18NoOe5XS($mxEZvFg7tl7irWj@ngLVvJO(57rPijjEW3mi#$hY&wcc; oj^ZiV#_63MqtQob6ZD&epD<&XqJMx;LwH6jfug4g%Y)~C0ouoOi2wiq literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/ParseBestTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/ParseBestTest.class new file mode 100644 index 0000000000000000000000000000000000000000..fc01d7b2a1460a6e8285bfc04fe8e184f15caa25 GIT binary patch literal 3110 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 D+k`sk literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/TimeBetween.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/TimeBetween.class new file mode 100644 index 0000000000000000000000000000000000000000..544b6929c79fcb8ddc5cfa6175db0bfe7903cf5c GIT binary patch literal 1981 zcmbVNTXPy^7=AtySPq*8$XVNzSPwwbVry$Ov{jNc7KEe*h{n{z0^4LG>@sB0>4m?; z>;3>Q%muAF(;v`VXL_lZUOD3ra2%g+*#b$JUdY9_@4nCbKJW2cp8fmFQvlb|4B{2s z2;f~T2k{=>m(ofAY1|C*xD~{0d>~&xlt(6jRjesk4=EMK)6sl%FeXr*eJt=mRJPnCGA>h^cKZl=lG&>1z$9ggL8epoPBnB8m^+2Inb0fLteKvvlm#+g`*e`dha;R5rZk(fXhFh>q`+%d#Wj4#1?OlP$z~mi}W1Q&Q z_m)AxV?7W^#OA;z<3OK~^bdv~k6%`BBdcC%c%LusJT#fL}C znDtt1*5lqK!%E%b6|{K~b*;hleOj}rn>B&UZuTecX*cHqmAj>MJRi@w9Ucn%ZL53P zxn=RQh9u~gdom%G(v<1d`Q?}zmJmN!UT6OVGXKBba>VIG4hxv$=U4tb5b{p*yuh~< zpMpSS9^UnE*Ei1y!D?qjIYu@25HbTHmQ zxP!<55G63J3_~U)66hg|OH81H$>osbXUGnwmdCm>t)`a82Uw@2Z>Z-xfXqmQ*__Q} zRw7ipNWXs@vM(58@6KTsIWAN3G2Sy= nA*wLyQw}`I89u^3-lh~{)ID6KG{)Fl^hz>Yfp-|mgX{kR{UPa> literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/ZoneOffsetTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/ZoneOffsetTest.class new file mode 100644 index 0000000000000000000000000000000000000000..73f496d1d7db350221f0ba47e6110699b7c5cd37 GIT binary patch literal 1495 zcmah}$x;(h6g`hjozOr`j0jGksDS`sbO?$9PG|r%h=^{Q^@NyK|#I zA&Wq1l^@_Ixv)Gh9VAJaGK+ieyVJY(yqo^{``ZryQ+O3ZHxeNXV?>EjC6YmmVLXHh zOlp`?mT3)F0=ODN2nh|>6kZR~o>JP35;s)%O%1ckd`rV^g>wPS2e2UEzhPRYGb`YU z53UJ#7wnuA=t`TGTrL+jWpUNm%+nG{+gT&OW)w|zt{J_~YqKP9A)U1g$(@|NV<&Tl zBOS9KlN+`rSGKlF(pi-yXNIKW=>k=p{s|W*U6^uVS|F6M%f+m`XR0}(jeU)(R&<<1PXKpx+{HZ|_whi- zA|3|tNJkn=0W9lS!DEt@7@JOwjp=xTrvhR_pu2gL`LdbM$)Z5`=%UeQs|%?<9T}|Z zc!mL`t?77j)gLnwrQH2-sT> z$Pl^ji7yVeVz{#wwPadlM>4oKzSufC))<|US=-7n=@gS%XVvwbd0TR1foo}(*?G+E z%CwV@xi1d4Mj8b^d$c-HqnQKks-QfVEf%laHJ66!uC>`)0z>uA!$oX0zTep0l~zt* zq;*!^M%UJWEqeI)O<9MH)b-|Gf0U&;wrk?6#cOX;SDtknMmy}D|6mUnNXfZ%^y36S zA?nu#p>~|Im!~9A5Pd`Y5MQhAQdntldnc?#kj`e0+Dz?bl^1GJ^J z@Yw_27AA&A4&YthgD+8mpD^sg2q6+UfR^$`f(m@}^>|%pkI%*L2))=xdql6GV-KAb zbX5?p;21*>U6HCQ`Y+ei_@% literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/ZoneRulesTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/datetime/ZoneRulesTest.class new file mode 100644 index 0000000000000000000000000000000000000000..bc7e5ad230c699645ab782fac324eb42e9621384 GIT binary patch literal 2129 zcmah~YgZdp6x|mlPli`0uL2rcr3tUlime8ur9>1BPz$1^J{XdlFf^IL$)wu;D|M}u zRoC(d_@8vS?@S0YElapuZ3<9QMjSWV&+tR-+C4`NtPLc?kt z57oM%L_vv9li0*(aeSV{7QTq%%Q%WjT*r1CJ4&^y#G@p>!s9shl*hi>d>zMuTE9{5 z-^TDHhC_kqs%e?-nm~6Zdmx}~*kviuUoG8;~nv4*ZVCOFIfSzz4v^ul{^3QV@oWDMU^F@KR|m2|7D(0VyKK(@*>i5-^< zC&n{FAkl1WoR}q}Y76LRgy0sWYnV0WU(CGi8qkE(D%{bR?VJ%uRV#2kV6M(CJ3$P+ zW@A$U-K|s_(iISj0=vB#33#eXd?Qty>ljwUbWPi0f&t&G>6*1%(e#=-5@zSc*#$%Q z-mqN_r09V2^XzwWtgJC-a?fr$CAn#O>?=4OHWyWMbxdL^hNn7i;ky{V*YN{>6c~Mz z+=orGR+bK#-Do5#u%n?)T9SR}0qWqPZi;yy!JM-BBDEFE`1q6b5*&t(1VXF7fY(e--1 zJ`?Js0arn33Z(zHUhVUzl<=SL8cYj&P4ao|8n3s)Ts-+!LbfC z?1G{LO!H?y!8Zfw29aWl@*VDSTm{$2>???0`O$@UDWjgU2Wfumz5zqr;4Xoic#j(8 z{5yk1xUQe0tN0tb|A6-76(Xr<3$eKt;w>avNTzzup>L;pDR)wRlzDA_?i~FKN{nkt zUM8Ml0-%=pZ#(tJVK@kdxqNk?DQskeZ)RjSe!*|njULD zR8ls}9YMFtoyHE!yUlWE_=w-Z2aLVR(wEsVjS&*Ki+gO(63FC%uOY?&5t)RS0nsEzZI}j{%yi>SPhz6R zM`B#Lbm`8WtFR!HR=KsxvRt`z?H_Qh<+*+DsYpwD%3U^#i)PuD_nI;8t=Sa?{Zq?sDZ5^9*WGNv^eoRVS=no@ zV-+s)ZGmqKR>d13ddajM1s$2|Q|sm}Gg~yB)$F`iww=`xzq(moC0^S;ZYJL?c&8O~ z1*v;$5WlHd@S+iZ*Yz$KaiCfmw;Zo*7NtKqmfuJNEnko}S?LU^aaUF<76ChU16rn%c!mkcz6jXlN_$5_XaQ2FznIMW&Yneg?tTjfXG0YUwac?W=&J2WviU>lvLV)vk zDxOsm{i}p+50Y#*JIBHIIR2JdVnVaIv0*s{1w)x2BJy?YG1VkwVkACjex%k}2x2E* z^W5N@BZc)NgaV1!=93ZakdkdkzeRq)?fZ4e+oRRb^BJ3V9gmZjm>#_{KB?efh$-L2 zDj|L&pQ(bFyQ1J!Cch^spU;OmkE9VX;Jl$&o@Dm#*J=n?Wb;4ziCUna9R=PS9&Tc{ z@DXzAa*&+ls^taaub{Ked!yID!!xK16UdM_jUc~Ky<|Jp$|NrXUX?wWOaIkNtLH|J zvU_MFP9e~9gGTCCl2iy6h0X{lAh%MJNb)2kqe6JGknW(SGXsR zKZf$iclU8^_KgOf<+Bk4pdZiiEr|>UXkoJQ7ZNzYUD-x#Y7PiqS zeMp`NU4!k4A42;U4(C+CP>GT5Bydg}?9v1}DQ4DB$(ycKPNFSUEe<`D>b=;3MoK6rsfMe#uqp(qGZM5XUzI(9~$1t0tY z{-|Y7YS9X!fy}wgIp6utH!uI5o&oG&*+mIsWsGCO!K8~ROxu{TG0RXokV=|EhKbdn z!~bwU;;Q9enMA7A{^?qS!K&+~U>FIc66aZbBa&-=6H%rb=#WPZp2$4zB`wpIDT8;a zlt}6kPg6nRVi4-s?=*Es`$A=L>eqD~bJYxFYF4)P8Eo-agqb1O;%YwCz0z3{iW8Yn zs`ORYa+XBrScQ>JiRGCvZQb->W6s9BhXpKB`(>sSUDj$f8%rL3;upjGmn0Zwzqn`E z{Y;>5_R2S@^vQag8WGcqIx`I8uYybMUy#~{G#5N3DMq^uAJZhz@4P5d)b|OIwZ_pV z2I!UZuRy;I2MlHMwqc=2)>+?}V~=2W-3ph^5>=AP{k-&t4nT(JeS}G$l}QP4+`y|)(V4O4YYW5&a*k2!pF@yW$JL+!g%()?hU z*@$}l4-XTrF2hrkNp;yi+B|1)I=U+u#v`f3uOht=*%`k`DAJ5{%#(ATN$dB6j=7RK zLvW;&$T|tnb3yKM6zeqXb#+gNLKSHqc66F@)s19s)^^$quDB6#VW@3&!%p>2b&j*87owNT%^}@*=n_1d=Bshs|<@nNifV0 zxp%R~u=k!uLs#2w+hrO9%HHNiq_m|j48!z`=2C~hNpM553!ai1lV!o%FllsclM+RB z?+~$rhHkih@C_sMBiN@xuL}i4KLs}FEq8~Ej@fJTiDG^zKSR53wi6*MtP=#=C}$!bz;gb)WF7GCff D`uL+e literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/CommandList.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/CommandList.class new file mode 100644 index 0000000000000000000000000000000000000000..2ae5ad31070f900d8aad1881e7f0aaaf8e470ff9 GIT binary patch literal 1373 zcmah|`%lwQ6#nkou3afG%S({AL${%fBKYbA%*2S9V4RRF{!~iEE?t}KLHM&25-}1D zKl?`+&uteN5wmSv2{SW%J0W4;(No+ubl zp+umkGM*_IQlUlX=Q2zgc?NCM_nlh7v+8xH&LDi)*ldvvi+ICNEa*Cp_TJ2{~%Xt)Lj3-%ybDsF9x>d?OHXLv$ZHi->MR`{y!Z< zJn#B$W0hg}8gHAKU8+Oli%U5rO74MgHJUYI64G2DJ4cS)Y|we-I@?Z>rVNua#EusE zVlc2xzFA_J>SD&AievM!zS67kNtkW0i!r_TM*VqdEfv^iVaAP@xsu9jU$2E7$wvg zon}e$Pd!HLJA`wHU+F}3qctAtM8c0_qJ>{ZEWA~9DftPa%H`)$Q&s&1Kx>p(7Py=0t{jn4?rcjlSOsXq(8y3p#c^T{eQW z=*TzH6c^82Mh01mjPK_0fXEa)BqvdIwn95#;S5SyPY9<_PtbD)t*rNor|3IDzw`@I ySvW>dsVp9&zjT5ak0GjHUzn+cUZ|A2NT(>31>^`5!yVgg40MCm0L{8|;L_gqdh2Lj?(qXQ%`eW@uck7=9w@?`rz3Tgg?*Kr$o`0x1uypH=u{@!^#4RVJ=0@C!}H_N4F+)# zyDG}UvD=BmP)36jHBR>!8cH1zs_mW^$V=&tWHfZUX`-Xyo-wuja6qU{q8NfqhHO-M z0zjDQrqVw@loxp_fpvn@jkCm82iioRf0X9E2~b86LSUneCRze-%6JPwSbOFcO!*)E zxF0A#C9L-*MfP-l@kvB;%%A>Jjxxp9YPPptA}vqIMiA<=^0QQ-1)G1dc?w`S1h22S zbGZ`NsdrbPANlb#uf<%n;qbovcK{{c0benLSys%;DZ>o3^%Dhe`}&i$->84X(stv+ zu3fW#!6JOI==;O10b4NO1uP|VhYm+UENtIC*?&mO{PqgrwXTciSuyBuQfkmP_ L9waQWSU~j;PHLcQ literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/Day.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/Day.class new file mode 100644 index 0000000000000000000000000000000000000000..ab5977b1aafa180ba3a7f5ecedfbc9c52ca0eb2e GIT binary patch literal 1179 zcmZ`%ZBG+H5Pr73-ffQqN_l@36{H2FqM&FIsT3kfg@kJ{7yWXSir2K)q%S1?3x9|o zv?O9Q8b14@j5FItN`$*)o_%&^XP%ke-+#XU0&mzZLFZeT+|f3>%pPB{XDnS7<3C>~Xcl|;dB zlxvB!`ynY{WOG}#iU_~nO7FJUGW#;O-`du<_jiteLc%27d}H{mMiV zde!rflksaxMl+SXTRL#79%pH%(tNi}8KeKFp((9-zE@wTF0QDu6F(5p>hC@3A#8ic zzFTipDN``U4!M>uwGYpAq~4+tuU#o`orZ4Ol}0sR*!H+bNf)umy;-=y_djhRg%<+- zS6rBdS!`OE$AX1nj93_DGsb3|%>wof z!nlcB5V%c@kw3Eu@fCq{1V0lKm?5hxAIHz)PCI@X0kvyJwfS!dokQdJz@_*(+Ob+u zh#{{0G){`*ic1L64;b?c6KBxBD0gSMi{l3FvUJ>2F^iB$V6iRa6E(u$#~;v~s1ZDa zJVjU$Q&Xf%5i6ufw<0~dBE5=43`P1BiAqKK6&Z-M;sztePs$!_(xY^=Cc11V)I_)K s=uPz6j?qM)?Z_tjZ6`uogZ3!|_tP4mNeu%byd|Z9b`STdeID0?zgWQJmH+?% literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/EnumSetTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/EnumSetTest.class new file mode 100644 index 0000000000000000000000000000000000000000..162180ee1ab3a9b1f05f4e5759a3b7dcc9161a95 GIT binary patch literal 1910 zcmZ`)TUQ%Z6#h;UGD#TP5+L+qYrN4AF7eW8B}nB`6iq^HkV@-qNKV7RWF~7eQTZwU z0^eLq9s=rGu0HqKU*mGA-xYfQNyPi3JHwjo*IfVl+?Vb zhKCCMnTAIi$^y|v(>A>&fpBJeTOhLPRHeY>f@#ZAtG+AUEo0ZBCs}YRhP7?DrdoHM z5pU0I3fwGIoO*7*>g+o?X}9Xl+yjnf>21lTmnUi6Fl~WU=4oNy_|C{#hF!~*J=e5r zc|WM()<`opU|T>lENjg;RQsLNEzh)i0Z1PEUdn?Gz&E8`B{p?l?qQ=RIonUN*e9QK z`6Y4>HK@@O$YlCY=~7VqS5dRtYJ$aUN&pC z;k8^|!u&yi%j%I&QGg7q64`(D1pAZ9FE$vSp=J zCJSjDGnm!!1?F|^sNo5o67ZNe(gS>nueu&}F$-x8U+ee=-)dmA8SLt)pvpvbNIcU~ z!=Aw8#mcO-Osgtg9VYe#1ml`G&|#sj!&ZuKTvQy$jCr2%ZSL;N3U4&&yZlz#@T6;a zjw>*F=Iowl3$Xn*p9xHLOYisYs%12r`RM^o!3R~`EUhi?&{%)8;TuCP`<>;!8>CPH zf-U5)2Q%tSu3^c#v^}L{U^5Or8A!Z**z{zb&)jJ-{fUlr)5$$l9nQBXjXE2C%&)+C zH_<`ifp;4-PfM4|1Qqm3N=9wZXqMy;jL8qo6TSi4UyS$gemy(4LUhz7WG8OX;4aaR2RFHeTTe_!_^>Ko~+j5RNZ#mE$Zp z4`q)bexVV)B+s#obzhkqtI!a0)+ogiG8Nk&dEbcE;;v=hXN zv&lHuvnNQD=90rS6@S?0zXi?biXuV&5u|X5j7f5j;WozoxY-UjUc>9eMj7=DOfhnb zxZAWsL~F><3S*jxH0KT~dy2}QqO#nLtCvoX(tgaf(!O#8eWs0(Y#Wz~v%li9z>k=w zaYf)cLM3khj?tZCBg%~oqDUiELU&yH;mBV&^5gC7Z2W{BZRvIzw2A? F{RbBk$v^-A literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/ListEnumConstants.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/ListEnumConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..b1647504869f416fa1ec66b548598105c3b1c05b GIT binary patch literal 1132 zcmah|TTc^F5dKcP-EGSv&{8gistD?q3af~y}Z(GKxCZQP!}b<0&>7CjQ$!hWU z&L{od9vb;RciJ}fr(hH>%`s>cyGIpm3Ju{eMwNqBXuA~f+r%q(`bPNXE1GRc6Slca zLs5CNX?t~s8KXOEH_%!4=;64reOWje`lnk&1CP4&FETApQ}S?V_i`5@S22Mr^hc7v z7^pA|kj&7@B+W=CrVqhBMd2(-HF7E#BwIhdfEYN;?+Rz{T$;^l-?%7XeCi6f|Q4xx=EI!IxQ6SbC+O=% U>;x$dHyHbYH7a3}oH0!O0x|>(00000 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/Person$Gender.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/Person$Gender.class new file mode 100644 index 0000000000000000000000000000000000000000..7c0c7b161006d053965ff05627221b221394f328 GIT binary patch literal 1048 zcmah{?{Csj6g`g?3Z>f^n{&*~{SdXVNyXtO$ilLKS<*QZlw|Q!DHTh~Yf@l;m$Jke zjb@+yqm1_z;vg>an)Kzpd+s^s-gkff{`M0<38e&NJW=r!x`Gu2c@-M=#qS`F1(kva z0`V-4Ww93&7!2~+u~}n?y>fWl2^h3f&Yj@Iv-*9f&#-OUe$VK({jP5~eAw$7Z=9g- z^XwR3rp$V6Ord0($L70QgJI|W{H#mM8w!CvJvSdMpZINuVaas4^Lp58Il)`2<34m+DG1+zz(}!+@A1T?FD4+nXd8r>JYx)yf>BN7QGv;SU4bsk@@?dp;+rRXsQ5_Po_~ z>;c(XyIX_d<#c1hIVw-(|9zQRxpK8g6RFV{OVx~U1<+2$fYgSlk0LS>Sj9b%Hl6lp z7fT(1eL>^~(kD7G+^2smj715*j?4sKLL|IZ({lbRqBoEQJ~D&fpc`$B!UJrEacUEx zgkljAeSnhR-@Hcba~PhMyG>WHEv#cF#OxwYc6TR6>QsnWh3}9r(u#DA_!Sc2L6yTp pGWvr;(uij0LLMR6xB?Suv&Bgh_D9H4EP}^aqFp7Fj2srLnLo##;j{n% literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/Person.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/Person.class new file mode 100644 index 0000000000000000000000000000000000000000..427ef4a18245780828d734381cd4313d3df126a5 GIT binary patch literal 354 zcmZus!AiqG6r7hPji%AoDxwDuf(P|r4ti5WC@4ZuLFs*yJaj{{3!B9M@+5fh1N`G$vu7UdG0ySIrsGEudhDu&!WM!2=EB$neEfF`<#u z_r^T?8OkGQqcY|YxAyIIB=cv=H zIbq4Jd9ffEhu4Qf=c%JxS8Lp+9&1+6 z3G2>FmsdObr}-IPs*V|cyR$kr@q}USs+-cWh^IR4U|Gim3>}kvnc~Yd42H3bzHvbe z(YhD-lx`}S8WLNqHJo~zByA3tzw6npR&I#)xAm8!=613)TH`dI(VclN10YLEge5V; zk{)1uffq(h8F9>E9yEr8mdWx*>w$enlBP@ Y>bF26(bQb}{bl;<>$s03?M0CK4KgU#C;$Ke literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SmartSeverity.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SmartSeverity.class new file mode 100644 index 0000000000000000000000000000000000000000..08d13bca65db88e1dfa38e1a5d38c4ac8bd5fb1c GIT binary patch literal 1298 zcmah|?^6;{6g>}iSy)#^R7}z|vjQy1)P6yxqomBBHm%w)ep+FpWni~i790PkJ``3q zH8p0W9!kk)PZP zBc@Wk&yxpX4Dt9djA0%hg%Rg5t02b^EN;JGm?)N=My6JAYEH(qTa9K$Zy2tpn}?=r zc}H1>&}M$Eu)E11Z4}lwDBpd)p5NMG7d z;%;7NnB4E)| z4ZE7rJ=e0U*;H2U)N3aXz0^vW*6D$NnTFFLIV`c}wKQU-}gasXcPddu7pJ z5#6fVhSze5N=k~8MAh`3{ma5&GDRkabLG0L{&ihL41*em_%h6wI0hN|&M$x~ zWsu8t$0i9w$yCP_+Xws&k<7(T3s>t#vzhIH{l3GCtW+28tn*>y@A4eI^a1+MgqBCS zK7b-g6p>VlNJ0q_;FAE+1UG_m84+B@7|09CrYQ2C+6McCz$t?7C}X%nYe<|)grC5q zk6$1@UZKXM^k>MYkT^bY0e_Wtv@;a(UlZqKB%yf64FpL$A<{ErCkUm-KSFsgFuZ3U zodP}7TcfoXoGVV1obiU3hkx;jg1AY$0VJtY3TaD*)%C3<$b2X|hij z#td%x#c#+Q{@ecwsT2zbqgPH4Ifg3I9x2){Qca}2a#Rs%pGf;dlE|XUH>wS`>0Oqj mHZ;8?x6!AULTyC#V=zAHnY*f(N=BC42>7$y#w?u&kog5sQ3~(? literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SmartSeverityTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SmartSeverityTest.class new file mode 100644 index 0000000000000000000000000000000000000000..9add057878607f95cf7fc31b466e4dd97ad8e171 GIT binary patch literal 1255 zcmah}+foxj5IvLICUGN}5D+AifR_!oRRmP-0-|VCG*qfA^kK+O#f{lrYO_lf?|z9d zzN!zw(kec{Pw-28LVFgfyo7?S+U}X|nLekdd*=J$*8>2PC?#!3;xe&a_Q$fg!9FD-4kp#}Eu1CDRs9 zeQR5|n|!-LmUPLf@3TS<@?D%d~teGX8Vg;)VJ^v@N?3)ckxC~L5>b#2kSR=sE{Bd@He0D0gaPYLZ>v@CBXXpjJFPT9;OAuW-;{RJ*>K@HSjW zQWM6e@7mmTeA`$JD*6}u@?O&u7VUC;${~9c&~)?->KBi?MsSOY72`WQ!ZsMjw06jL z7RLpkjs4pCY3{h^9Cao&PH>|CB2$TWB##F5bM_?U3JU0?ODew*==LB(vWsRqX+}Ca zybty%aA!%z0%HW-G**umpa&OemOwB1$RaoYKp1h-ufHHv8abE`FXZ~)BoGw>u`R6RecT=5gw0HtofZ5Q{VAnS zg+BBL_@l%-Ys3cyv&-I(GiT1dd++_jzyAP^@VSN=G%M|2ZBBtI)~nbcR8Evu?v&8l z=?%rL2vea4VdSjRgX8WSP^(V}Iwp~Xg`U##dp^3B_DWo*jC|~wSfqVnmCq+&;BHh# zXmqufwv&o1lbmk%VlxVdi5Z$u>U@-iQ9hP78VTznc`L1QcU#|%3H3x~u~lQIjP?~? zbxCNBtr^PL$>b`xT3D0ok4Bn?#XiLfT>My z`tIJB{ndc}g8mewxq?P)XHa9ii89+dzw_*U^Z^SKY!OQ=&%40#MD~Eo_`AUhO265c h@S;~O^cqj+6TLE43f3yt{H>y;21hk!1?VtFa8a#vfQI)r8_^Teu&Q$~A+ zM=A-ei8UjcIGLUnRtswiogRxTW}!Y|aVXu-e+500J3@84eN1S?rm%_ps=V~pWBPqh z#lLx?lg#8ikZ;mmm^4HUZwXto=qG%5zO0T-!jBo}Kg-w-JN}er5qQ`=K)@HnKNWs! zd@%@f?Dg6A`R2~<=H6OBH=y5T(R^7(yf=6O?@{Hw$?GLs@4dppG`EN)hUZhm$`p2= tX?$<6ipnpx75v8wOT6&m`xLK=)v{_0>%Oa$6tcI>odH{P=kVsi{srkLwzdEO literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SuperSmartSeverity$3.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SuperSmartSeverity$3.class new file mode 100644 index 0000000000000000000000000000000000000000..b730285aa515f46172c80bcb4967e0970b3c53a2 GIT binary patch literal 747 zcma)4TT2^36#h=KO*D!1-dL+pM8qh%mG&*A1fqpNdVv++$K4@L*vy34S;1fAqxe+t z!5`p{Dm}A_^ua>2!=BrmbG~oR%+v3OM*yF&UBfFhE1lahyFe8iRlFrsJ}a%<7eZ^l zKNQy@OobkVk+Vt<+P!~-S{H<%YZ6IV>?wne(0!3KU!)PsMbucnN10`v*8*#Az2==sYzfQUo^K7S)3(P9 t<7uvX=CC=@e*lnHw)y}7 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SuperSmartSeverity$4.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SuperSmartSeverity$4.class new file mode 100644 index 0000000000000000000000000000000000000000..805a282630cd174f5e883467f7e4c2df4c2024dd GIT binary patch literal 747 zcma)4TT2^36#h=KCN_zeS~b=Sh=`bqu7YnVB@itH;ssWGA9sg1VKWnEX9fR(|3-=r zg+BBL^hcGRi77rPm|gZd3(PY;{|WvrC(nNa$wv~u4F zjoofv+=(z1x)(;yD&1>#-hdj{grIE_Nto*@Ezk48jkH(dCS_!yYhsaJ3#)uS1_O7i zGD5ARwY2S2WSQi2ryH9=*iTH~gi_~&ER6D@w9!CV7s)$mmAl_QZW5}A%wnsCP8sbL zUUf;R53T9T*vaH7w^~?}>*Pe-vkG+x^F8S<{};4P<_N{z#tESkncT+myYj8qU&|kO zDgMn<9j7Maft*QqYmypDSR-st(m!GA{jxIF2^SO2f0D5sHT@|~(%@0+5CLBd{}lKu z@x>rabJXG3-$Rq{RI6O6@3_$5!*#n*lwc8w#x4edmqhWZj8<2Bh&M#;nSG* ufMxvNU=f8!_65A~EsywW&+B8pBCGhSB`o`0qn2tMEie|aM{63Z&;B3&hPNsJ literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SuperSmartSeverity.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SuperSmartSeverity.class new file mode 100644 index 0000000000000000000000000000000000000000..547614aa724b7d8d3de12c07e6b5501acf5ce449 GIT binary patch literal 2130 zcma)6ZC4ss5PmK!?6PizYw#U*ve@P~ z^sn?oD^2LBCpr1tAJx;jyEKwwPvFBH?%jEwnP+D1{p;^PUjtZ1RYnM3L}>X^MiE;g z(jvBH%%H@V9scDjzC0A6Ntl(eD?|1XWf6N4;u0Roi26rgi>OGLm+*~@G5_eXh$j*f z626r&V%yKe7(wqxmz-L`5u{W+z;3JhXm?|!kI*BGum9x|6Bz0u|h7LutUA;P*{ zGZ>;p(=xW(&3(h!)%P28B6?hUXF$GjSH2`%c#lcjx~K989LD#FA_K&0rWyrUqj& z#QI6r?Uqa9kxbp{Gz56`~aOH{{Bm&AcK95 zy{q5~t}0kSlCInPfe9*&QnY`Z-EmBtUq1!2m>UjC1&wYQHM8C9L&t|jQzy=Cn)PRW z*!f|x)WB%jsT-EthfZ+x=;@Qdo5K*QHf)Ou{_ZT6_W2t@O}X7aa^7o|?dxyvRq3B% z&YI25(VIC#Ppr5$#p?x-CFPza6`rMh$Roh};aO@45S!+`rM-j*uHhpvEYdDcmjC2q z1YRQe2EwnjW4KOh*!w1se+D;t{>#M65waRe|AFuugt&j;9seadQG74l?BzhiMP5AO z69h>Epr)@~>OxE}zJQb-7hWLp+gm0T0{x$*4CXLGIiANnIO{B735naDLjI3y^v}3T z0e3u(yA=H%KBkpN%#h_dhtj_z@{8wiDsRCf_R|gZh#5XX_6)G}U#*LSV1Z!;pHjU+ zmtwU?@{|;ZDX>hM7srJz*s0cktIYMS`d)AK$@q-)dG*E`=?icU-0x|Y@wum&pRFTD zF(l;ipcnIJj|-@tK(44GK~;&(baAeO(Gx@~YD`ei$D&=R9b7oUSVbKVsS`1=i^&cy zo?xn?PKVVGDAh|HTozv;R0$qqRI3QbxS&-+$GE6f!pFF*br9fU{E?aPS{tH<$<($e lm0*lg6R1UgV>Yl!z5x{QA=x;6nIeldiTr#U?OEBk{{Utd)3g8p literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SuperSmartSeverityTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/enums/SuperSmartSeverityTest.class new file mode 100644 index 0000000000000000000000000000000000000000..bd2d3203fcd319087fde3489ad626212841ab36f GIT binary patch literal 1533 zcma)6+foxj5IsXKy9tY8A_@u`??IyL6%_;(@PbA~gLt9Jsv$dti^*tFT5$U~CJbCQa77?}-u2vYR3K68 zpAkro`;HRWTy{NmE2___U|P=A=*gA+s;te(z}4#&XEJ=^HU*01s$aJk9Dl*Ll^4~U zb|q@4pi-AXSW$~AaKoi()eMJueqFkrz_#LSc|k5pyC%JPyAlSjH$NQT@5y?6+nOl% zI;vR}F#N!AJy{bFlLFftfxn=tp>n39z>|R=dCr7fBC3wn$hhAOnLWXe{{0(3tC7lJ zp4s_zfb#50D63Cz%0^6tfvW=9iXR14b;Z?e?OdOLqq-^!+tF>{nuSSRw@|`YmN#8Qktw03)8qKu&Gqg`~+?zbbW7xfJ%iGrs5Pf zH&-fzt0Wa1vc$A4rNSyvg({hfv+o;tVBsMi2^`#5a|Jqo0=+$_dm?aPc4K7k{r?>t z)kRs06nk>0*uTMZw-)=?&Y6H2`pYvHk3FYo$Gi%s{x(RRzXq3QiI0WT^h?2&rDmw= zJkF0;cGvQyu5V9qvP0gbWSujWmW_t;9DyUnwXoJAU1>Bo_7*4q9iI4CI3G9WcQkxQ z4UMhF*Vwflni=dt7yo?puMHeSbW`?lWm604)ZzCKZ{zR|%5>~ZVkd2DIRU-s<0^w) z*i8>Ni*6**PTz|UXe$qV9!ZS$^}a@Ppzp*`vM1R>Vko6mawx4;YS7RsJ!ooWoXfm} z`3aea?~%>5w_x?8C~_UzN^5HqMVHaS=3J+?Ol@tU)tzY}*FwI9tuGVe&G%Otb^;pq zLBiAE^DwwJS#<_QWLaf923g26#-1Y=mvt@9dCWJv2PuB{v6nK<{3*WP{fydt)CXvp p+&jjz5An1-6f^o+ILpRi3{aQ&b)fAVG6s$a@f9KYIZ9_6>>m$1dmR7( literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/DivideByZero.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/DivideByZero.class new file mode 100644 index 0000000000000000000000000000000000000000..4d9608ac7aec0e0888db207001d0578f81dbf4f6 GIT binary patch literal 838 zcmah|+iuf95Iq|^abgTjlcp^+0XOC11X^?HTQ3gXISWnm>-R!K2P3x{g6DBj`Y2-=Osef7fwC> zB#s%H9bZQ7Fpxv(@>8FWQXymal{gUrKbU;riQFON$P+Qcvh%Ss^iDiC^x}crO%o9h zcCyM|G9aw#oG=4BrFBSaLhFpd?8g*F~Dto&W@U@XFb zCq(MZ-m@({!KM;h7F;|v@XW$mT7_DrfU$SaPl>5 zYU-pn%I2=Nw^k4LzasY?+WT|pmHZTi#uUaB#VJac(3R{+0eKh%Rz#DeD$|}pp@wC$ dG}u_dDizAppK+UZIm)|3?<&O@)+i^3`ft`nx!V8$ literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/DivideByZeroWithTryCatch.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/DivideByZeroWithTryCatch.class new file mode 100644 index 0000000000000000000000000000000000000000..0e7a5c5abdbc1bc644a563bad9bdca36bbc029a7 GIT binary patch literal 1212 zcmb7D>rN9v6#k~$cH3nUC^xw;C{Pf(Uhr0K7SKpi5L1Fte+}EQ-P+x4wp&7ZA%EkK zl4#-s_%6PJdZvW{f+lV%{kwhv-ADumu~(tKyCZ1<4rZq@9;j zN=~MRySS&~z6K2sVpxdbp^8T;9y3IjY}XD}7?kA99z%HD%L|5%tnG^JnzJwbUA|u? zPa^ACyu8PKTkcPt;h<<&8B$rxbIelSD|x0kv_vJaJ=ff@5A3{HtG^Sz_r?y2yMBG0 z2Uc;BvN+s!8Tyj%vn77O%`$fjW-jn;x3DNxC{DE?Q(gfX7-<>10Azd$?TEm(o}Xow z3AkS%Vcplnrx1rUHfhvp95J-#0&acW;+1AqDn{w17_^*M^DXhhmer5^t(cUQsG}2I zDxTqJ8w`V)zzC$z%^Ti_=Ca~@1)n=9hPnUg7enW{uvhyf zVFj05xq3Aa4mHiI5zyP}jqRB`)XspKD!4-(iSkN?v@pykFLdv$=T}^(S4IbilbbXD zfMbEz3c}Enyh@}1-A(nE1u>`iFH7K@NXJF$-`K?D<+r01?c3YwzC zQdR^pTEz+LBD4+DXh(|bc}c7tk}CzT5HE#64A6)WV;n;mMpz2P2u8^&*v1%)W|l1B j2Hi@WI1{u|aEllTgnm&1Ma6AKH>6^6g4k1pgfRUZ^d=g! literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/FinallyTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/FinallyTest.class new file mode 100644 index 0000000000000000000000000000000000000000..0b46de2a537fac106aa1fb7a0e44fe8802b954f1 GIT binary patch literal 1770 zcmah~O>Yxd6g?Av%-A)>PMQ#xj|^=Hc1r9L46U7zHc(R1nn0B(3%VMQUy?EQOf;Sl zn@y#t>sDQ{WQl~jp^H*=(JU*qOO{B8U4`gxXnWpxlGthtmS)bq_uY?k-@TLk@z1Zn z0Vv?BI7aYc4CgVe;X<62iyAIz_(;Xa8j2c98fG-iYPhUoPQxb}KGiU<;Yyq_S2cX5 z;hKsC6`w1J&RVwR%_#_Fva1ThSDmU*aI|dMVri>U5$=jnsnar8c1)wbYPgov17q0R zu$l@^mrbXUuT`CzlNT*hY>1{r z8^)&Jg^F?Bn~LkaD+TdoXUjFkf+c%ScD0a`tP?nfQ5A~`e1R_&9J?ac99QU7>#kL0 zBYI1(wDopQMLB^RSYo^LYo2ib=b#|HXg95@(APSbq*v;Wc}Jhp&*v1JJh-4kZh>Wk zSkv&#jh@J{sn`ElH=x`Uo+laK(>+I@E)a(+nFrpu0bkek7&;a6sR4 z+xz4%(B7|xJR1vWiOHmLhu|>Bz1W zW5Icxn2P=2CweQeC5Zcp-tI9bOHmmuJ<`#hL`MU^q#v9tsnSm>X|=~MMN{Y(49er7 zAm*JQMw3RVq_y40ypIUGABXB=k^PS&2Z=?@__%}$8aM)pJG3{j?c)x<_3=I);1TVQ z@S~5rc#7xLpW}s(A;=kghxhr8vWmuBF{BV@-6ThuV#Nd|Xw6Z-M7>B{zz{2rV3p&& z%>h?9sTyb1U^a)7+@}5w^&R5(%yOSu9^fncO*q-8A>7Y+LN;M%_9CU hgF-4M6|SL*4^~v1ORTAw@`c-hc22HfjsXM6{|Ctojwt{D literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/MyException.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/MyException.class new file mode 100644 index 0000000000000000000000000000000000000000..0e777583ae81c2f2cc46043214578f831bd1f299 GIT binary patch literal 733 zcmaix%TB^j5QhH)g%jPo`7`W4lIG3 zZadcPY}&WHuF;>+O;LAEW70D`o6pgu6pUM^ z%dpi}rQ^;#)4H;G*Zh+86E>BBj1)_jrNB}aIQVC4fztOzU*7_CBwD zhtSAKB+>VNDC4G|F`$g-=Dt#%wZ#mK};o(!L$gu1ZI$za4(5C zrexd~?^zKFA{3K&fQJ$u$#|TEf;kyaWIUBIFJVE#GYQWb;wC@jCIj1K7~r3D-gFJy z+O|rj-QtwqW9V5jEW=%)+T7;e%q~N$WY=geRW>aC+H34{=dHGHQYKTjb97Bx5 zWXyeUv>4Q~Za0ecnq9YxXFA2LqaEI|JxAw@3{g)=Msq@=ui|R@hb^rcc8Ti&P_p7z zZx})^)mdJsYloVGQA{cr!mxr7T$iw@U9`*Y*!KIIgbZ z%2CVZ4Km;MXvt97Z)4cSH)NJemT|2?2h^iAo7}1~%;tiME=Lzs|G!B12<_z-F*h;e+h~RsjEa8FnsozfQ9@IM82Z$6iPMIcY^-kT^K3C5c6jw z`6`WKH6j*FQFNG6kT8HWc`!>Z%##a(Ng*}T2$^pAYgn3+x6eSTAxM^lqF+Lgfe<8< f4!0jjWoYA|tw>~MnyefpfR0S|qRbsCkKpb<#w867 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInput.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInput.class new file mode 100644 index 0000000000000000000000000000000000000000..2f7d0347a7b18c0521019fcfc023e5ffcfcd1f0c GIT binary patch literal 831 zcmaJ@#v6g@8i!bfNktgS^P_)(!M(b^r13mKhZhFV7)_90}-Lr9o3`0+Q~xpL{o zja}3k7ybbMlaA-5Dmc?InY@>Ka_>Foo|o@GzkUO-kNqq%sAO;z)hsO33|v#e^)zl| zaT7ZRZW*Wxq}tM#(L({f-WUiZI>E>jSno;Sd%Bnnz3_!IoDwPa0@s-ioKULxH<*aV z@>rnSbAy>Z83mKT_TISOJd%NLKlhwb*Pkz1^n%+nDNY`M{!IIkRA26p%G z@t-m#3zrXbl2TRky(^IKM~?gQz?sL)97Z794;G>8J&{V@+F!P&YHA{joPmakUEDTs z$HZMU1xn`-ny_(Cps}LC3S4&)hTh0}J!W@HiI@J773*mlxNl+)4+JXz9b2Ff(@h=! z$UYoSJeRYqK>fGJkv9|2r2mf>YUqAM&KbQ}Dqg}oC8a2~lGf;fGHGe%vrziyG+2RY z?OY|Xs(y9`u||?|%2s258q)lG)TMz&BgfTbWOEnXle=FaKF6Q)TvIWa!W!SrvjnW8 zz$k+YC=yY{@7YY}UejB8`vlr4^mbYMfK>Ti>m$sA6C{hNQyANySdc&om$>Rs1Us>s zG#g}y<#?NHpJz^ySp{s8rpibOuvoK6{UuyvzD9h5IbdCd_!fI#W@JMDfszo93~Z-~ Jm5FJ%@(UE+uEYQU literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInput2.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInput2.class new file mode 100644 index 0000000000000000000000000000000000000000..9791c9aefc240ede328712b22e0239b6cdd4b646 GIT binary patch literal 625 zcmaJ;&2G~`5dOwa?8Z$=Thjswl>V!5z*5y)A}$d~kph(n>V4y^=(>p=IZg$y!3*#L zT;Ko_hdw~x3BYoCzx3Y@`K^zDf1#`DCc`w`w>hvfj^PH9k|hvGxsEDbCGIu-%WdNtBGTB#ZR> zSWgR+rO_L$M!j@8FOJ)SrJPpxT;*k?JHA zlSRGL+YbH-9DJA+dLnR4D%j}XhTBmF1xKB5mX_`H{B zMU+BWefk~prF7SLdnM>0pkDtIfMsex4J)`q5}TY*I+Po3+wFXX^9^pN<$QwI`q*xM zro&}8&?Ft0;Lxg&a+zn9WFd)cfz6U8M1v?8vBtB`q9HBz`4gcC?v^gDfR0V-4(|O1 DB-DCo literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInput2Test2.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInput2Test2.class new file mode 100644 index 0000000000000000000000000000000000000000..7f8173d85260e9239a6bbcb1ae1ff9d4fb7b39a1 GIT binary patch literal 1169 zcma)6ZBG+H5Pr6W-cgRX@}~0Q@+NH&P7A&PqEbsjQp8w7V*IpRS9+zrYworRzsOI1 zzz@Y};t%jgsk1GL0wMO&+1;6EW}cbZyYD}~d;_qAjW~KS(}7!)QqxNTrQ zju>W4Ea=tN;*J(~H6~+V(ZrI0dj{?^#8zF;Rcj2oIp23#M_3h2=-0xW0R|NZ%s{ayKa&+jQW#}p> z;T&vthW45UkyrBa zp^sn9kHORxWvOG$J4#cIiCRs1MTYsyLSD#nIshU#n#`uIFq_J6T}HYk$%{Y=U^Hu~ zc$h#By?go>0n?X-|^6UZ227m<@D{G!So~vjOV^tSt@fru{L+h+r0JbWseQa}p*= zleBSqI?+v;XNh#0c5_63k!Wi^obYpmyMYnH>hH=Z#%PTogK^xXxSURXi2Nkih=B>J N(7>cghN&iO`WH3@78L*h literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInput2Test3.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInput2Test3.class new file mode 100644 index 0000000000000000000000000000000000000000..09b04f4b3d537c94084b5626f3582aad15d39674 GIT binary patch literal 1017 zcma)5TTc@~6#k~SZI>0W+*A+-xh*KH0^TV4K!XWMBgPUEnpORFgK-bxYdgsrw--IIx4D-n28sE}dQeP5}IPr_@6 z@X)L3ScQkBF1d&g32x|$Faz`HD>K;Je;5)AD`Z!rcI?Yn%5*t=fpo?2IOxZK1<%1l zJYrbd4z-MV5;Y~)@?B zAy4o@na0q)SG2X9XtiV*Ff3mMd5Pt8s?^|wTVA{-oYztB0@3c>%ZVjS!=YcpJSi}9 z5l9Y_<&kEjvr8vnpS$6kBy(M74n;aUy#x$ln5+UuFiIe%xPdgC05`q)1*u}XgUnZC z&G|cW?@nM9^Bok%JFq+Gqu@FID6&+Sr|JT1di&9b1!6LM2Awc5hFhdln8$70p&rJ` N%8;I*?`}6T`5Pwj^Va|X literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInputTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/ReadInputTest.class new file mode 100644 index 0000000000000000000000000000000000000000..c1ba41a211fb20aaa1391a0dc1d8ede32a67702e GIT binary patch literal 967 zcmah{T~8B16g@-R-KDOAEff{OsaRZ4SQY##=mU);CXE^)B*v%d?pUU_yUp&@z|Yc$ zVl?pw_@j(>wj=~0xSPE*_hZhvd*=TB^WztQb-XCz3g*Xg3*14qh}&2w;tpyy7K^Yj z@8GUkJ!6)PSvEEIY}~i8!eDKxNa>dhId5r?A>W8Y$uQAWk$f}gwPdm@T3w2insFey zdm>TBKMv;gzDgMunnB$2J7L_3eR&YbzE*MMzn3C>9rXu#SEhP{pnF0^3>EKVvm?F; zzbm4)zoQcswKp{YOf+K z6Q0IB$+bMtTtp%7Co)a>DDzn!*13&`E*@dc#=48gc)~FAZ--k0)eU9Bz_(SBY98#1 zL<9!=FdlGeSY*gmTIVjF;+ZkeUDUDRViRi&)&DBQFnL1yw$+h=J{8(IOttLMJ;eh` zOpi2FvHy+))Fh)6JrcQ`VVn*#6#Ax!PI>1`KX+kw3=W}(4f^G5Oz0Xc(eKMBWLP;5 z@eIkadeq-dud#GN+R^c7A{eH;vxNj;XTQ>oP{m~$eDjQf1{RZKuaf7}%4jVtAAx<% z(j~H17R;kedv{cTDNK_$jtXWdVh(>oj^KdBZx}1(hRA*Tq(LGLVakr3pMVeT*Iqvq8B literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/RethrowTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/RethrowTest.class new file mode 100644 index 0000000000000000000000000000000000000000..30d476dcba5285fe6a2b66a8661469c4a2079ddd GIT binary patch literal 938 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 S#1uUY`u`z@6qxpX&in&e=1F}3 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/StackTraceTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/exception/StackTraceTest.class new file mode 100644 index 0000000000000000000000000000000000000000..160751ebaa0d87063cf69bfd74202d2b970e13cb GIT binary patch literal 828 zcmZuvO>fgc6r8o4IB{GO5*o^9olqbJsTPP^5f?;HDI5}2LYy|vDs_nMXyYLGMVxz~ z6-aRBMg89;&$Sp@MA}fd?BM<8&){V4NKn4_!PG zD8G!;IDaKz_jZp2oY&b{3Do;>s@^V>k(zX*z4A z4!^wlCu?-1o-k``jf}uXk@ir|ixSzofR#KG@ct{1Y9-GZ8DvWxse{+n)pJ{}wF9fRE(WQhut)|n2D!; zqd~8V>u54!$cn3F5NEKyqSAl*4bDk{wy9wAHCklJ0xnWBN)=9F=pJkI`{*QIYB?+5Jn X&GISSU-VY&RkN*2Oo6*RwQ%n*lSiP6 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/format/DecimalFormatter.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/format/DecimalFormatter.class new file mode 100644 index 0000000000000000000000000000000000000000..6f2ce66a61571d978660a0e6798ad36ae3d7ab85 GIT binary patch literal 1877 zcmah~-*XaI6#kX~yKJ^i1foe3BXQdZ2>~@~O^As#m}-j&Ha0c2zc#SOr3*`8$>>8L z{X;ta3uk9JWo2l>XKmMuSQ1Kpai`nb;?H~S7utERn{a4SYUn=-8{M)gAN5NeMA4M4cu?igp z8TVAguqh^6DvG!t!6(?3@j%76$nmMLJ7V}u3=dW8;&T!GNWm8hzEtp)jIYJQx{PmR z7!o3nokrDgU9%x!qEImojI3)ub+dW1WK|7&!`sbC2(MT*%UzW)luYeN2(CM2Q^H8W zs+pUu>YmwnVC>mki58raVec3XOUyfqLHCK(l%N+%PBmL8I~6DEr|nNe5X=;;8dgoh z>Et6Hj&0QTv)gXNs_o~z)J9{Um&FEb6J66Kk?6^j66Cr^lUE1o^?tHNqtP^rPSbKN zr$z``&7-unS20U&|8+iD#)J+GyG6oMp7A~#e@{R^nLjU}k95T@cSDtxlHCzj-F8}y zlDT0C8OQqcr!W~&8VxDTF}1E|bX~&@upW_%{AI*I>BPE(VPSGfF{U_sxO*ji>GEP` z>G~qW^|bCC=lKgrYS=?b!kIUP@6$pgENd|FSjN7FC$MBxG<*xYd#0y4w_2867JW48 z-BC{L2!#?>Gohi1niw1nb$lnIp`nSA1{WUH~BCoP2^P&=>dl6Qp()kUjFSQ`-5^LqM3%%ytT!6(B0 z>4DO1hT*c);-m3o^Bx*ot0!#xS<^ME+;CcK$}#^^%gGk`G+aIq)2Q;^F!`9ZvV?^J z5POmMPpVTi9-K<%|7%-u9sh)cc=BW*FNk^K_5%{nPQbJI?81Kc3ylY4%3+2dx>_St<2lZAmZgjCg<}DZHz4kCxUI9UJAXy znInwv9%3T;P8*Zsp*E)4INQeb8-&;J7Bj0*FpN=R9OpbiFUgPjJmN$q9oy7>LEVE9c z1PKCR3J)9|dIAW)eT2D2z(bVb=5bAR5)i-PBj^= Avj6}9 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/format/DefaultNumberFormatters.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/format/DefaultNumberFormatters.class new file mode 100644 index 0000000000000000000000000000000000000000..850c1d3fc4e004d3e184dea3777a2249a741409e GIT binary patch literal 1654 zcma)6ZBr9h6n<{lWS6ighL=bMo7PrB6xS9kN~{%$RA`JZC`zp_OR~Vm%`UTSocb&J zTl7O<%8VcS$>|sWhJT=6JALl%GDL_>XJ^j6_q;skJm=iIfB*aEI{;Itrf~|BsoCj| zH{bvB*B@!5FqOs^xTN9-4bvJfOVyP$W>A#kYBzqwH5EUl(Thn9*X24Z#SIN}axF=5 zGmUxttl^f7S1ol&fCDsMox@XRLXC!wig)wPrS*AcB|=b%Et?6`7%7+OEJ* z{z? zlO5Y6Zm^fXCeub)+ucesZOW1Sh?8*F1Wra?f%SV}v~wV2qDp&u$!q#mYu=U-BcCCA zK^CNA1fx1CxTE77&I|M%ER&EH8j zT56tSR3QI<=etKQ9O|9bx>XH`w{8V-iv$Mp-bw5cbBSt-uqDjVUEj#|1XNi;*>42@92@h_x}OcdXfSF literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/format/FormattablePerson.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/format/FormattablePerson.class new file mode 100644 index 0000000000000000000000000000000000000000..692321bf051c6c035d004615a3c0250d8222dd98 GIT binary patch literal 1333 zcmah|YflqF6g|^+yKPxsg@Qc9f*?>H^@$4j0wp#!2cTzlYPsdCO_whi-LmjgM$!*K4`YWsbz^D>amg+@C4s3+F3)(w?Wqe?WA@$COr2wmKq8uacU_HOQC8XA zjs|9G?(y&r2+Utne)C-Uup4vrLg!n_3xz>`W6hvUMEGz({0<{(M!_yP!3?8ae5=qO z<=&S&fykvJM~DV%EH|Od$s@!*1&6x1_9D*JKnzKw__VP|1}*fr;tC_#Fco^}QNO;R zv!+rF>c35&T4x9$C-F0t{-CP45^~& zrVy!41xSrZJ)>)fNcCvPFlM!h9xeI}&BthYr({H-WZWQqkoYye4U>3|gbTQe6%1gF z-c5S9F%n368&do$sZ87e1&}t8SxQpYU|o6{L$qRyyu@`1)|hFL|12A~!W<*Cbk+wO V7x{&Pj#2Rw?ff(_MrQ=$e*o!MFLwX{ literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/format/ParseTimeStamp.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/format/ParseTimeStamp.class new file mode 100644 index 0000000000000000000000000000000000000000..ccb4add962a81e5ca9f7b7d515750faf5309faae GIT binary patch literal 1588 zcmah}TW=dh6#gc@th3o%uyY}$q$$wiGf4tcAByw5Xx<0Ps2oev3AFZ zzVnXw2fQL7Pr#XijCd}q#_?>lGq-0}9ZW?&cL>9O7=KW#ZM$JSWcTBv7yLwnP@PUa@ee9l|KQwS(+t>8wfgV262i9}= zIERfKHVu4Y;8TX|9qCE6%8)89>@uX+{I*~iZ%9vUb=`dt?C^buEcu4t;?6D)q~7<9 zY4w8)87?a9;apREx$jc7*4$8I) zq<2t{F6O}jg({o_Gi0RK=_;MXnX?Q=hbtul3Z4qvPZ%!7PD=cw%C>Ynj(EV8Sda3e zM26ZFXd?FMD(RFpO7;}dW0*_;YupiDn+F7%w%-j}VqIz}3a7~}>6|RQfr|_?)k4}oTB^b-I02m^eAXLBX7SE$Tz3__$|^47$lkqTE}I~ z(oac$LtwhsX?&A*WtthynQKR2&mwq^#%yF9#wA)?u>;gs zhZ^}*^BC#9>qp3Jl@^bY-Af(8=pk22|Bd0mz&Hw+!z8X^28*Ou zm1sU9ONWH`g#`GM$ZJVfW7>EJS7?{QA9Uhf5+#e@QKZ!nMfwd3xJK9A$~- PpHadRiN;8GU5UznZYqA| literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/format/PredefinedDateFormats.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/format/PredefinedDateFormats.class new file mode 100644 index 0000000000000000000000000000000000000000..0cddd8439bca86811c94f785f8b49ede0344435d GIT binary patch literal 2114 zcma)7YgZFj6x}z3WD-Um0Yqq3e4rsbB9^umtgR-XXcFGE)V_vfh?6E6noO*;f2V(- zt|hR_TKxh2QC;pcGclv^p|Ch}=gc|h?!C`Fmw*5J`yT-F_#=+%$V8EiBZN#G8kXX? zhGj92V|;xQ#fpZf8lK6=oS3|rf|yk?YcZ^2BZ|#929VLPCC_aQI~u;x@U4bjaeNoY zb9^7g4{>~iAI1En;b#qo`1hhHMp06T+_&nM^FX01Ik}?{&e$bWp)Y6E%|ffTXEwHs zy(&G4oLw}kJ4VBjci$OyURX_qWUgq}(v^~3vD5o@qh>hiwT4+T_gSQrH5_xy9 zH=|W`T$CjJrDlub{m z#91DJn1WGbN>9;l)t$znm(hOnzQtS+!a`x65ZtwzyYwuH;rxow&i>2%z{O@-c$jIzBB6Z<+o!Mu(|+}BaY9Q)A; zYHJ&kQxwWBNtqWqEL3#-BBm;)hDsE59X1XWM%?VcL3q@%swE*6&-qd>jO+Ln^r$2c z>g3|MLM-EHy1=!X)X|iZj*b>yDh##1~NnxN9@y_RU&Z~6Tbj%v%wOgbz>_M??PBMpt6KWbY z9;b+LaA4MXZ_Jzn-zOXZ=C_iGnqzxo&f#{u^L}Zz#2thxFNgLB2I{zXL!S`fAzZ09 z9iv|40h>y$oYmMz@j>?myEh67H-mHLP1RZDc^zNlO)WoRD47P@3BINIRD5=)j-meI zB7|GC5!b2VHrKirfFvgQ7DEbC^holbEEeYT-YG)6$LPwPAe^5*LHG332_ml%<&suj zPND54Vu|=MdI~di&xo_LUkY*7>EXYFUhdb2e*O+)kk|YWVUJ)Imv9%O_#9&{rj)lY zrZK}j4R;tJRCIdoV2&(iS@AAcT|~?Y_Yt4+y_*@^sUzq)nhSZF-U3bELijcMPcc9y ziNxR$hNk(K7^az$#YHhAG^1fziGM~GmuQYKdW5kKoiPdsT;^6+2;(XVjg!s|Y!SRj zI`4tNrvymtv4+n`jWdU5xW`q98O!*Bt1jk!jRmg4B*I(DC-R10MEdne>I5I>rwQ?L zA%Opi56?r^eSXl@_kx&xgz*lE>(mw0F+z|!wVWW_DZ-m0u%`sFhA#uXSog^g68+MP W2+2IaS0tlji6n%K!b8>!;n7Vqr9cq@El9Qej!;yzC<{p=Nh2mDm_|33&QPamXUud;!q$gz zuM066eE{QI9m_B@+*GlmV*oQ6Ry7nftf{!g5Z|yJ+ke0i&Cl&IC=XrJVn~*4 z$9mjp?OWb1-*1v9U3P1{xyL!+!}gL`83-y%@G;&!~6 zRkFo&$!@=8(ISCijHtMsz#XhJjOA8l+l$%Us*v0dPPbd z5|4x^yDIJ`a1YdPOw^pgAWVsoA@nspCEW((5Um^VFng;(`mD*|Kuf_N^A3+wIV!!EzQeKr|BY*yoy~hivEYAG{eW*+Nw&PoM%VSUvd9!2f9EfMK9Tv)W5@r-JjWoS> z@r!^a#0bezvJBFUbZq_@?2Qa(NXDfzjxqY52oi7!<7D;WGA77F#muC<2x;vtBI#)S z6O?K+9jjE8bi7iHrPaziXir6~?}C^f#FY2wr^=Krbu48H{kuNQ34=-ytj30--+QwX z|A7?dT!8cu1Jz>;mc`sjMeek4I!NkI$55}M%il8kC0CQsu}2r1O^gW6c+rH~~Jx7V~{uR`Nk(e=5+pa&c#{+-t+d_`G5`iOK zZeMn~^L~pVIaNXi#2|v#S#YJqfXll$Xm);J`u+b%x46ZBUngXQx~-6hc?qbL7zOKFk6>p?~7fsqKw+lo7ri zwcHI9cP2De>6b8r5w+z>(lugXj0|YpVXN6g9VvQ^@JoP&L(*!}&8D5vo;-R1d!&Pg zHCj_qP=`flD=t75Il9p^EyWj99g4Fg)}D|k>d#27AUW~^x$5L(5q1U3E@6cw?1WI? XooFkFNgg0i9fco&Sq;TcbWnSp literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/AOSuper.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/AOSuper.class new file mode 100644 index 0000000000000000000000000000000000000000..19cc586b2cf79b584d7fba5ac778f4cd914ac9c2 GIT binary patch literal 526 zcmaJ-O;5r=5Pb`Uepm%T@DtG+c(4}}4;T|;Vq(&WNe%Z>Hn2^*C8ag-XX!x`5B>mu zlyO=RJQ(*dv-94(H?#Zs_5K0i3~d8tZ0e|?u3^hS15Fj%Ds~vk7eb2UlA+k?4j7c{ zXv7&RwvhZT4Tn5_aEAdQH9PX$VBp3gs~4b>OvH?#ZF^B@`J>2>EFmX67Ktl8Ze8`A zbjsr%LuncdnJ^eml*S&v5t*gA;7@(`(KVq$Q?YAe5Bm(wTR9UWe)Q9l>pNW)2PRrL zWN7_6lA)TJT7fIaR)6SokB0w(oTpjBLwawmxuYQ9S# zN!OVR^C_efa@^|^Y|misc+suts-t-avVsDu#`v g_&hfQ^cNIr#aAdR1B0l{Mx$9P6Mbn?A+~_(H%}98sQ>@~ literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/AOTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/AOTest.class new file mode 100644 index 0000000000000000000000000000000000000000..c3e6e2e732d18d61c0c3dc45a9817f4145c6f009 GIT binary patch literal 570 zcmZ`$O;5r=5Pe%p%SRO`3M!!ShML%mH;jof@zjV0LSj5^%LbN|)+~kpo^J`W;7Tt5kUG~i0=_zyJGv79j+`(ZNmCc|WscrqRfB~u=U!n^JE z#VqX*>y*owq1Jx!Cw#%Zh{q$Zmns>LIxAJKM#NM7C(V%MNpBu7w6>~HnnVh{WUfMS zFZH;^wf3c!bC5%xp|Nd9YIo2=-odf1Yi_I4%P^ET8+3z-2nou*(kA3xx}m7M5K76R zh#xhGQ&{u>`WRq(5V8e|Jo1cu_IwHUwn`VtS}V|mL;udY06W;FD321#gy`lcA~VQW wK4CmBk?}9yVbYh~5VJPh;r1LUy;_3uJ)&jUr`SO47X{^axc~qF literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Adder.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Adder.class new file mode 100644 index 0000000000000000000000000000000000000000..dbe37ef6f55f4e563ab77f3e5b6580734ac9d15a GIT binary patch literal 484 zcmaJ+%SyvQ6g{`iq#A2m>uXU8x-xZPHtrNbT7*K-h0^^b8SI2Mfi(3O`Z?lCaN!5| zQR1C3h$1?0ALnq-xpUv%UtR&6V&6j@I}PkMut#vub*9S;Lfs!s2+lB16rmmJOkFSM zkt*(FG-IY4=CPbjWT6eNNT;0Y1)(3t`8-IIJk0~0O;w>wnZ+u&OcGU`v9(MRg7C+q z!H7VTW6Tk8Fc$u3YS+(fC0OB|xc zcbZoR-vzTs`E!l literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/CSub.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/CSub.class new file mode 100644 index 0000000000000000000000000000000000000000..f0c73f064ab858828dbf9dfd68842e4bfa2a8c75 GIT binary patch literal 472 zcmZ`#O-}+b5PgM}g>?}G@dMG|4LqOS)YXf0iCJ@!${e zM;WK$QQKtN_vXEsX+OW-KLA|d)I$Z$8g|jDqU~W19T)p94j3wzLJD)mP#z4Y49-N& zIYT29lHV2CjO&MZmJ-tnRT8JuSPP4PNyjWj&d>`Jl?AK0TB$(DCD+2lGU34_DrRE_ zFH(h0_>Hi2YL*XyBi>ix5A4ljibZ=!Y=Dct7gJC~WGB>(NjM5_)$3A*EA<_Sh zXpDc8YpxlZwrP;YauGyNx#1bTSrvw%6aHj`3huR#CNi4G8O`1PgJy8oR+LKe4K~J2 zNkjBvJe=YTTlCv@G1~M-iZw#lDA5h5pTB{K&zyo{nhS39wiOEJyFx<=1KndHDZr8-0r3Xzs_yhb= z##!)UVr-LX-<$VlI{o~5{{V1~wub_0CG4PHM8m@_nlAQS>@yTDq>}cMA>Zwd8JwY> z3WjPZmAFmgi7*d*vLvP+>WDAL+{g_7kdB?pgrOZqIt~_7z0iSFb77?ADiXnPl&*vs zFnA-Knn+yBtWtSH_ZR$;`*2Zoap2<+M+~hSmB^{+Y!uyIC(<5K)hxK1EJS2~QKP5CikRlrDJ7cWS}b*NZ=|v#YXpz!#f?8`26vT-mWq7c zjd9(DTvE*jy)jO)ML(S_Mw@1%SR!{x}+PD4WxhE^4%#@f;5sn0Kelkf(7BUJmiG*;(Rj{aPVxM$k5Ltp3Zq8b^ZsMHtOtJn+5LaKODi}E5SnuCAJ3`RtyizbDj3Q52T@~Vi$qtu%^wd{>n>Y)RR z;jCdj8fG|eDC*rA2HS<7!$d?Su3*v~^)o={gGJV+%p=dpx3AY=?{&FLwo`*99Ey9J z2JBD-bg_#)LiF$hkr^8Mgz>UQ%ij{{-_kTTDQOaS(}+F>l-WeEk0DvQALRxPe*vja BXj1?H literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Circle.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Circle.class new file mode 100644 index 0000000000000000000000000000000000000000..1a05b7a008b90644a8b536acd3f3e9ba326dcf57 GIT binary patch literal 809 zcmaKpTWb?R6vzLQ#JzRh#w69$)|z^267BATfZe5r^~mRAk5e zG@?jjn1(z$;hD_+GFVenNuaG^n8v|uoX*lfCR33~#gkA32QmvIu}9Q##@{nkyLk(9 zBGk)FaP89wF8N2KiG>mwgELC!Stwq~yz5GV@MruT)fx)i?&Sxo zFGW9`D-qKP)43u+Q7_Zrh>8_S1dr)jnp*I0nC|B+FNzX+P?w$;V5sDWC96hu9oJ}W zkoOu@`T@7!VBb;c?|en|6ZsW1Y4vo@f&m*VaL}UIb;?ma*2u~~eThV4xPf*_eM&Wq za`tD`8dtu-xIj8u?!lsAa-3TfmNp%0j#N%qW}N^ literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/EarlyBindingSub.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/EarlyBindingSub.class new file mode 100644 index 0000000000000000000000000000000000000000..ce25fbaa0b8dbfa1f017d563ae53798b906dc56e GIT binary patch literal 725 zcma)4O;6iE5Ph43I5wt$fqp>CSDTXLfG@pNMI2hS5>kXJrOJKdtY9N&7ddt%epXu* zBo3SrKdS0m7x9r^kmdcDnKy6d&0hbxxCHPHod7;wG_dNUfi)j5@v4FK02|nJmMst4 z9$pJnCwV3ibw~2Mj8kcj;$EI#@?$*_*y$#A9FK-}WMgfPRi<-k5*2@zS$g_Wn;~g? z#lSJ2ummzU_LB65H|W_SOVk(bSeBj!3{hiY>w zYPV!;wLR>FXrUb<#GF9$Q5Cbb$Hbi|D!p(|=+jBA#+1|+>~-be2(*pAy5>0rCCAia zsRTSU3wUL{sUfcQ|Lod*Y;njwUqS`K3BZ%@TH;=%g-UT<;O%`G0nB#JAv#gzH>y8M z*do_}PN2rGj)(|b!mCGDNq_`QE%8FDi$D+Dn)=4l>NjWwG%lrm186Ivj71S z3qF94LY#4{7L*OLd}rp|d+xc9U%!9+1n?BY5CQIVaW_C0_X6ClpWV+ zs&v|CEP~qIqpY}84#&1GGxbJ0o$V#kq3a;R4Xg`nEO{e@SoQHZ!akk|^pDL#=c>OH zci89-5+4T<21p`ASQ9w-&&maQ*ModFovDmH`~{8A7nPcGingX>>tgEKrte+19K4cq zHow{A_!k!No6-tH-e7rM$pm}cYry5VAY8Y+1+IFYZ6X{DZI7>KO$4wy{0=dUTVK)s z)X+9)Lpp&DKMyf)5lIZiCT{W!uyvJYzlkLF8J&3L8$6eUv!}gC60x2&{@YiSohBLJ T_3|(9uj9Q24`^?Z-NNlZ)#I5s literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/EarlyBindingTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/EarlyBindingTest.class new file mode 100644 index 0000000000000000000000000000000000000000..30c676cff6f276a9317e3296180eb05d40d90e36 GIT binary patch literal 1163 zcma)6TTc@~7(LV5w(BCbSi~EGSXgLb6-5!y2aOt%^%6@U#>8Z|Y+#ypmu$C0UVSyb z=$rlu2>~OCKfoVlJhN>ih!N&t=9@F;eBXYT?9X4{e*n0JdpgcwM8h>533Zlqq%e}h zD8_O`OdaExP*z!46~&s&Vk$?LsW!qXOlq(+To=eJNMA)RJ1Nz0;XLHnpS-^s0Wtx*S%0ij$iYvM^4z-dLaE( z>8~w$t!SS9n~wAa`pwsN-Pv@khU2eU)hHxmK928%YxLOnk7ohRbF1wQFBBL*LByEK zkZGlI1;$RKajDR&K|8E@kEKey_;(gl>cb5b&_|!gC*J+y(n*-Eh8qT^anoR*XEfY4 za0jyn?qW_^^9B}F)WOOBE`ibGgQKh3p4fx<8b24gXJRmge%eNdfO8n&Er;{CK!jpZqO&BiFZ)Qm+C$Rb zM~Y|q={7Ru9ca7ADr;pMxn1bxm2Wu3d%@`7l^yhSEiz7%Q6Z!EFr(|E()FPje|%Kz zj55iJzqlOkDT@ew6XH zkf2eti@9^}oO{l>H+}zjeFJa|Q%43x9ZOiwVg;)@*08Q&Lqmxnb0U2io-!oON|PaV zrrLsG&X&HY_q~<~Zg|V3O3qdecbhzrQ9dfB!aI4-P_`ZAS>3kkDogrzB9I~X9buh& zz1vW_HHK_2kbYR_9x?5hli{v<6rvUxNeZvWu=yX99Q!eA&hGLDZn@m=SdEa>IwY$% zR6lUUg^VUJMs|)OpaBh28p;MXv87?#zz%jb>>1d{0mH_h12N2x#jaXi;e-sOi7oL^ z3|dEwHjppCs6nV2{NP< literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Employee.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Employee.class new file mode 100644 index 0000000000000000000000000000000000000000..b3ca7cb5c77e1f6d38911a7768eb773cfd936774 GIT binary patch literal 566 zcmaKo%}&BV6ot=F+Cr&{2>7!wx`Ue7jT@t3V{}DufwC`U0#n5gldeZ0ad2}1b51i8)bIQ|R=AzMBwxKqgNF;suCEa<3_DIFtjFAoPUq8}aDM9R(>a^xRY<3%j51b!TXMN7&ema;w`S$AV&gv8l#voio9zPdJ-}NQr zAbF385_X7oEpKFaFHLCB8TS6^&tUy5<6`7EDIYs%b}A|pQ8N?^^u%xJS|OHDaOnSatwWuv}*GUS59dL literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingSub.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingSub.class new file mode 100644 index 0000000000000000000000000000000000000000..247cd1c39bb26b1599eafd4d9065079a403d1c8b GIT binary patch literal 844 zcmah{+iuf95Ivil9b=L-Z7GES=>>2Ct+|v-3E}~ys+FP&DX3B(H}NXnV6P+BM&h$T zD3w6s1NbP!tX;L1TG5x8*_kt!vonAG{`?JK3$HBHuw2D0+&0j%P{gu{J6hkZ;yUhW ztF6U~g;lJXSl90R1|ArA$WVDJm5kpp6rIiiL+L~435I%KDzTpgLlJ%AL!Ug&emLU( z0gt49pE^tNkvwKt?T^C1op|9Sbfr2Hk&L+-33q2#dQy!C$*{*zo<>r|4Avk_qLJ8< zx@!F#vN_>jxQ#j*1{@n5bQzYk&-J+)yMvh0$L|yAdm^H0Dhb}SZ9Kwb8yncvmTTh) zo*H;&<2km7n&N@bpci<_(7tL$;&BCJsyjDwGkradML=H{CPZwppGIWpe$-59V8H_- zUg6WJP#(jElOb|^dYucdQ;L*WB#sPhkD=x4{SRoyVfH-?3(iF#m72d~GzKGGiLYq( z%SO}ZpubQrKSw%UL=P);MK!uWpa5DV8YJiF<&tKk%iR;OZ)vzmvXVMWm?zuL09e2x zy%=tsC4Z(n)ydo6QTT=8;R#C3@(h*k4;V9;GgN1=aqk22rgv&cOGa(a<0Hj#T?1 zkRewC;q1PWLt^Ph{Vige8xv*7Q0V$mFc7;^mn~0WHnltx%cz(rW09fwj=Sz*t*tz+ zOjuYluxY}8%FkGPMCFL1; zt9cC8T*Qwfq?%Ux2$@eYc7^N$(quDqvM3^tixip3EnLE7iWsh(R{TI{U9t5UbKj7C ve+$%aBWQXNgTzF^_GM@rSr|N?awX6t4aTJtxWl literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingSub3.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingSub3.class new file mode 100644 index 0000000000000000000000000000000000000000..d56f1d13a390658382b4599d65e06495b4780159 GIT binary patch literal 1010 zcmah{ZEq4m5Pp`oJK)+<=!-8^fm#K$oZ70jtu|59NJ5MW4aScPT-qgfd-S+7>2LCr z#?nL+KO29ParPh-rLoy$W@qP_ooDvhU%$Wo0I-R@6mlpgk;STx+sdycaR+xblu}5b zsH3cWMVWib+)rU0RUKxM3aRFSj)!Wyrs0u>4Th);90pcnh)M2P4B2{@f8?gk<)PW| zJs}Tw7!tce3jYPcOXVg(U%4HE&eesq-Ud#~@(y^*4vXD3x0~D(Djpri{3Fq4Sgp5R z$Lx08u4@W;WO>5pvTd3BZ$yW>G=kO!b&B_>rO%LRxPjNU_Jz7OGl8ipdIqlGs(}S8 zGNj*g+dj$Hq{F3wB`j;$H1HTt7?%GXA0d1hc6I~sNkJO_=L z?gu@~tA-$&UcJnAp1~L$kHW&G12GgY!B88TZ-VDZ-?vDSs2k8LEDpsGuK7+q3+Z8T zN9n5tt#O8Enxr9MCWA(eUTQkH^IGgp8o@2ayZoaR2}S literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingSuper.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingSuper.class new file mode 100644 index 0000000000000000000000000000000000000000..e4e6a98ad60fce1cbfc68de43f9eeef645e35762 GIT binary patch literal 416 zcmah_Jx{|h5PeS4v`s^shHoZ74A6lrY#^3O6;u%nLEW9iY8^Fpl_vZzh6;&+AHa`7 zoDmXi$nrbi`Q3Z=eSE&X1GvJG2NyeCw6NR3o{9Ty9JF!BV5_ENVD}7;;-z2+O=H!wzD^Zb^m*}R-#6%js;or+k^DrMh_&(a`F!ZK+ zp^m3K)9Knr7aqgu{~ip%?++i-LS!{gXe2I;%7SC0>EswaiZmPJNVrAWm>7)WaP$f` n3i1uCQD|@Ayin0XpRf;`(4o~L0T%0)-#-CdVBdue&%u@p1D+1s4t5;uGT4_=$?S@u&^qZenAgcb zFw_F6#NBKXinPbWF(Hj0iTJqBQ>p7;(9A}1%5WS+$;6KbNu2mnjYKLlt|H-gZsb6! zVNXo6Hc3yoR19A0F^KsK_s3if{ce^Lqn%sxbVy>&f7%Sz)2KTO8ID$45r>@IZZbhC^8N>-A@VX=92d zs(i|fvUNHKd(GP}MLP#gtkJu?AW*JQRYDatLiF%0i5ZkDA21%~Ctj#|DYGL3TS1KPs^Iq&QZ`ii8C f91RW9GHKb$$eiT@s;JS-B3E@Zh>l^CY7JXIykmMV literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingTest3.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/FHidingTest3.class new file mode 100644 index 0000000000000000000000000000000000000000..f2f6b701aee5917c8ae7c1e1a0e20a340be5569a GIT binary patch literal 562 zcmaJ;O;5r=5Pe%pTPojZ{k)(aP!oH=8^((X(WKD>gv5B-mKC;v)|BG^@*;^Q{s4cJ zakiM?!O+9Z&di(l-lSjO@1FoJaA3oLV`AHe21kV*6T2q%7>r99$@GdL*E$(6=-2U3 zFjPDliM#pK7fGM{6YA8xIN*~3Po%1Un|eByGlpX?h^KBijKkQK(O4uh_CR<>Z*G`6hX?6f2QkFG?Awtpgs*u zNmDFPhkvYo+R8gauMXu^-5FNuN)f%>b0K<8DH2?qr literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/GenericSuper.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/GenericSuper.class new file mode 100644 index 0000000000000000000000000000000000000000..223bd1c0426ef914f687b30db294441aa0043d31 GIT binary patch literal 859 zcma)4$xg#C5PeS521=nVOWAi0fddhU6OAGv1Y9Z>HRA537PxAXDkMmJ7AGVQd;lMX z7$@u%lt{5>-psr=WBd8#@d>~lmW#+?!N8({C5D160~tFEIdk)pK|c)Jf}z}yfjCY4 zmWW*5>Jl>E2tD4tq+E@`hof;f21{X@{NAlEJlzWXuCkSSKPN+iNC05!D%L z-zn~T?=+kLsJC6W?huLQ?=Vc6jSj!%R+k4?)>*3~ytuBqXIwSf7oy>)nqjypuL2$? z5zSLD2~sthzss<0{?fvc-|L2VLZqoHgOZfcISFmq=lg?l9g|X31E%fn_xJ4dLkz`c zm_(j9mg+{TUypZN4PAncJj2@H+hC~tJSD6`qlcls9Oxk+Piuj^1KJtw`K<@A`!sCO zT1Y`1Lu8k-1Pr4{-pDtkL>|K^#)w|gUC^&7>?f6xQq{8H8r zCEldcqPXZR=FUC$oHO^%e15%u064?Gg)&x6)KE9DW}$&~9UD3}8Oj$@$>fru*lKqf zwCkuZ7%Hw*;w}w)B7We#fRLIS`8??ISZ4VTs3k)=VK{dED0D{sXcRe84Mi*yu6*IR zJP}t?^`#nkX|Kaj8pl#443-zAu`h09=3M_xJ00;yZbOHmW6Q=ib{LwsY9jmM;14r* zYqfRk+Gt{r;b@UQsNV%>V-Yh{vtFEltAXP^O%f5(Ges#4&~WpLjGX&yA}@&r4{5;q zKQM!yHyS9?wWh+UWkT9Pr`^RNO7ub5DuC!PXg4WyC^CwrlQ*#Eyll~4&Or@Jbhf7i nip!KStjxscxfx)-pinEmLYo^{RLX1&x@&G?&P*y)Eui`ht}cSk literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/LateBindingSuper.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/LateBindingSuper.class new file mode 100644 index 0000000000000000000000000000000000000000..b4f2aefe1623aa533ed1a18b7c05f87e8157029a GIT binary patch literal 562 zcma)3O-sW-5PjRG&4e8;;ZLTX+V@KJ}yGK;@JEg8rOgX0BJ=ni|)Fmk0Dh*&0E1;X`s zBF?4iN!9n$v54CYrEx4(!eIGP8VBN1X4;LP#G@g<=Qea0IyP)}>+r|!d84mt84MR0+LC=R8DXMd(g?SgMqPJ+bI@m{vz9c&Z5FG|tlOmTqBVRgv0ej5T7TIzRYFMDV pJtdG|q=;c@R(z6+0p=45wc<0hxqwBfOva#Ia}jeUQlV@C)lc`qeUShF literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/LateBindingTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/LateBindingTest.class new file mode 100644 index 0000000000000000000000000000000000000000..00d690baec18bd949f28d2c8025ca3c73e06e541 GIT binary patch literal 735 zcma)3O-sW-5PjRGO^wyowtiNt*01`3xp-4ND0qr`s0iX|lP+~jn@CK(`J=ojDEI^X zQR3Sw2qM%#cILgAc{8*7{_*k#U=MW%BdFS#caSo6!GVRU0X5^*Y%JPX638CtP$!21 z>Bi=zfOQQG>+aqV^Fy>z=WY`e`QX2$-Yy^PxwEdLP}u)BV< zf2(4F#_)!NOm@teB41$rKP5g3oMzOI19hU!)|Fo??3$_ba4<^6p-X>HyZVnrKaXW2 zx;8Y|+@wJ9=lah5jtWR+Zh4IfWpaFZ^QFLTFv>Ge3tySx16@=D_{~hiA=fjg>!Qy z1F1${HtaK0rioN3gXP6p;)_d}tJZ!gClmg_Z5XH;XxrGrHbeVb&14`te^`Y|w`X9- z#xC|4I*WSKdDRN=Y@00lxj!)-T()v&}ZbQ1fru#)}+WG&&XGfU%{S=v_)1gKn+WDx90@%%M_Vd h`6)gkvHY0NC^gD2&~gEKYqD06(uryiQX`~<`WHQ0dQSiV literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/MHidingSuper.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/MHidingSuper.class new file mode 100644 index 0000000000000000000000000000000000000000..a037a8f02cd34a9c48ed8718421c99c933213ee9 GIT binary patch literal 528 zcmah`OH0E*5dOAJlO{&{vcBpYh1P?)c&m63L?J#P(tDaL?S^Di(nRoQ=|RDRKfoU) zPEwHyf_s?R`R1E%XJ$V>-`)Y7V8?)phK?p$RV*85V@1QNhBXHDR7jDYF_gQ#0fTZL z`<$U>3(0S?XvmX$cNh}Vv}4Z=2W}$r_#0Hxv6wO(*j^l2fgcC4CFGbVB6X$5t?NtS z3psMK2~YYAl}RFG%3wHgmU#R^4oC8xsYyT5paQn#mJ z)5I3G8TSA0fT5ntTcImQ*6lFh9`!N@IgitnN3@7IqeR;-$Rf7x@~)jU;ci4jwEln@ zw4$L!D31jXv2Xw>RS{z4B%@@a*sdH0iO+%s zMIZrdJ_>QhiBu|8A&Yx+?>%$wnKS=fOw=Z%lNNa=ds zOvght5vaSp(04}ta1=T!7|KY+UeJ?H`=#ouU~niW@d2rQPXz+YjrZ=z``|faFBmwT zI3nU8S?xswl9kRG3z+_}Gd-4(z{cWb35we?`aoBp_CI)+V5<{Oqn>=B^i2!@$llgU zZCu19fy%;5a+!&yjTY_-81-Ef+cq5RnAo+kr_USpJstK1stcL4T~u-E(d+I=_Rh9C zA1AT&`Do#kgYwK!6*_O|W=v0|=kr>ngyU?RRvv56m`_n|oc|KFh5F|2kV$Az#RYzI z`e#6BqZpT1In07NvvmUTDH#_Svq>|J%lvQ804SowDvv8Dv!f6HBw32N{T;@;6QtaE zZhuC)nE8V2SD4MW47$!Gb-u+q2}#ppv*jk3<}Vm}b}HflRca|Ym?&`ZHA=Zo?G-L> yP)?JAb|~jQmhlKHc!E_tBf`a6BD^va$LUq_^~*UIFazAK}?*o_GBhh4dx-*gj|wEU@1 zYn8x9K)61eK)CsT|5|;QcEgN2c=ALED-G5kco literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Manager2.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Manager2.class new file mode 100644 index 0000000000000000000000000000000000000000..d9451da8563c488c2df76ea13a8f24c6db316b01 GIT binary patch literal 369 zcmaKo%}T>S6ot=?G11uCTF|9GJAc4|;;y9|(N%O)>Hany(h13ojH%GaawWL%0emR& zrq-3>9k?^+%$e`Pe0;vW1Gqvj!3H`px-s?$(a=~^j|lsxX~EB|O18Ng*WTECa5f=? z*KVc>ozz%;zo@3#Kk&2^rs4QeUaO&7+LNj&A{le#3-5$09*Ah~OmyQz${lj47#7Qy)fWH4y*5{Y zSBoR5g2M!xM*(GE#^31u9oaU6j%TWU5w`pR#PHWmg$fZr~HVt)gn}S0KAVJ3V;7+hTk?lkZ zLV_pqREa-9@Zd^B;sa3mCB!;orwNrKuyywAvoCAyv-cUzpMU@U2Y~mmqault7Z32z zgLM^;u;Ian9z6D-?8Xxn9+X_g>#ybSFIQ1v5`RiDvap~Oe+Fd0M^aSWc&Z|dk{i!d zL{XB)O(~wc@v(sGuGumBYXTG5+_r%7&}tY0!HU^2o*lGnMt4iEwP*=fth(OX*1M+M zkBmzHh1nCxRO(i{u-CBmtb*BjVRX&D-l-df%|oNxvh;@8X>J+4{whiIMnk}vEthla z0z&61bJe(rBWQDG*Vm;_=`%xMCVK()qxOEwIx>t^S+!t+>Hi88xONfPQ@x`%jjoL~ zeF4sC3`=Y4W=9~N{j##BAL@mc-f0%9{VtDbBPe>e$>Yj*l+eLgK8wVWHDYS_kS0$0w3G^_)TS4NGrT23G_3Xmhoo;E&h&=WuJ8FeV# zrepSh-3Se7T$LijD#mA=(g{qB4;Zm($Ra1jyg=w|ESt4Gqt1?>GgXgzeWT5WS_gE* zhBGv+!gCI=&oLT$n>RILWBl7J;NF)(Elxj{9XEVj<%^ZH-$fUMoCM`%?hAYhKAksS zLHtU^ffS_-;%kd3N^KZ`E12ev7n)$h&5Tz1Z@#iPC0pj^d{{V?e|B5!;pY`So#97uQ9wr4Jj}u^5BD^1ileULF z!=cXdICJ=b+I{xvF&kfH-@anUnz)I5dJlQr?{OPH;tqbog58|&cpG_ayh}UC@&kR- zY>tnS3-;v+;E12884fjqKHevXLUs#_)Lg9LTXHTjGfkdlYF@@Ru!2>7nljkMU1~o1 W(zwSdYOExIHCE&&%YAY>Q2YlY=uia! literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Rectangle.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Rectangle.class new file mode 100644 index 0000000000000000000000000000000000000000..9ec39f71ebb4bacec0b7f5989f139d5954e82c56 GIT binary patch literal 842 zcmah`%Wl&^6g`tTapJmZnl|APpee692I5U6kctq9h*g9tQgy@1bw=@o#I9V2imyVT z79tDNG1pV z(Ug_OAP)TLp`R$7=S3q8)rr9NAc$w)WE4+gPeq|jRO&~8^xnvT!FVe7NIXjXQ-PwR zRm`zWUnJ7ca{95E?-MqYsZ0c{VLVR)`ATWw+JdDw@!u0tT@-Ar!Leau)kY1gCb~9U zJP>I0DW;-v$L}PU9(ui=iH9~G!4cT{k70rKzdMGZe@s(NXQ0h^Q;z2i(}Y@kda(LZ z^}|UjXPhve^P-y<{VMkM*_;w0{TZ)iBLn3hvH1if;ED#-|L@;MyPrq$`tfg=BToY_QTHlt65v$z4ZUNMwzG%#e1+L;+PO_W1ry2K*HqT(Z`^f$R maiBd--&$g@77W)H3{UdD+9oQOB*9-S?Io7lf~B2l-S`CyLY6iF literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Shape.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/Shape.class new file mode 100644 index 0000000000000000000000000000000000000000..e3f9090c2099c01375cf8dd25269e5ed3fe7cd66 GIT binary patch literal 713 zcmaKo%}(1u6otatyo{NFbyx z`T%{Xs%OS-3IcUA_s8d+`}zL*{o^Nq1H2AV!;3mzHsE0^z^ee;0-lizCD0kn~UOv@J zf$c$(F5=lZou#ohQKlt}=men4V>cI?|RnbnEx+KS!veA<+6}zMJ&IyjfbX2tERVt^cqK zwEvy#^Ju1$+}q)0Ydp3<#TqaRnA4wc$m%`&g0b1Zh3I!GH>h5*tf0yF395VpTGT0S zAYv62a+SajFS{-q!!d~dC_8xI+(kY@(%Qe7jG4p7jojrGzqX0&*<{xzzX zObRgHHQRT9YAc}53h1x|^85E;LbtffyKLM6@mC;z0pbZfB`g@bRNA;{BX>V@B+vf< DguZje literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/ShapeUtil.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/inheritance/ShapeUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..175a9cadd6b36a0b5b2ebb5718962a96a31682a8 GIT binary patch literal 1329 zcmah|+fEZv6kVscY0E&N7eI?#ykJ{_Dx%0m@o`!Y;Q`(tQrW)V<1%JR7 zpY@?6n(zVsjXoNqt~0Gg1hJDj`<#7SYwa`r{Nv*hfH7o(=s+TfBvNv@A(tV!3zV>jI&SVd`tu z(zagN(6)>8gfmu7D{g8PL!KK>kG*Rg2n=L$Rw-S`TLmj^n7ew#ur)KMr?b0SS$}35 z#VLVczM{Q!9I_y>bzaGoWFic{%VbnE4s3zm^D6{ev$mGoTh+=9ZXM-{VcHJjqHb$O zk+>dHD>+&U+6ygR)Xbf9)@Irc33{}Ot`TxkAW)`+l5Xo2^3Gb-N={!g&K9SCnOZxsfh)Mmsq`X)YutJ1HJkeP&(dGwXa?EJ Hh3mfn`YvO1Jf!|K$h3kOwf+t{%> zjlYQ+b{*_tUrnBk0~>7y>%B~6`GKM89h@;3$5~%6EQT@_pDxEek)QBhLYd_-i+OU! zbE)v3q)`rK!LS>~**F;Wvr!hvbSQFJ@-!AfG~^fJw3Nw-D9R%uA9I;9G`;h1#IJae z@N^JFWiHdfkrwCqfaq3clo@J;Vhd$aGQ2pSr$|aplwIbr_$amY2R;s!w2LJyGpx_? z&9FJU`bEU_dxJzM5}#pX_O@f0$J0HpY`k`Hh`_}g1Pt4=4?J+mP`_`{=iZ1k8BDL+ z)qV1G_>aGTJk*AM&aXA5wzjD4bCmTBEM3rLl=?(hlw2kST3DoarbY!!wT4{}F0ep!fNy?BCG@LzsD5q0Xuz6aA@Yqo z)CfBhxRHN@NAx|umsleaz=laAt3;z!=46{A#)@>8NFsmR%_=Bsbjw<7*;IliPNFm5y2VnIHbv2ewRDv zJdjGBC{xje3>i$T>$_&Z=l6Y6dKV&)5%;>nY)g0Gh%kCL)t!;pA{duTkD*lkZ1wpU zZaUnv&2|(>&u+yucwkfF!W=U(b?ty*djaSP_qZ(r0@29tl)Ewc859P+?GJ;lcq>(T zn+v$^sXzm(SYz0lU*!alVc8O)BSrZW_j)1-4LruafhTyX;lRK%JZISWpU0b_bjX>4 zCuz!x@nPA(3%oS&N(CPpXknkBIUj!kbB5I^*!xajbR%j>D57yoiq-j@*X(~D>($z< z%eAcSuVExy8i+rn+{LlC^vw@6$B3pWxJzTm@WDWMJ>owPat3135em#k{`g4HL5NGa zo|>u|C?Ll}1hu9_6Yz#z5gSA|xMk6o5UYtZawoDq(ZoSQd=;A( zQHc-WqY!t}RM|L|JlFSi&bfE|_uub70N&!Y3lAL|TP`Z-IPi__+Sqns8Gpyvu8Upl z*?4K=6@&Fo=CXLtP!0Ak7-}EXP%tzinTwNYHW2!Z4^oOWBNg-Xf@^8~d9YSo$qB=D z6ss&84b@16GQSd97Cetdcs`E#q&O3k;*gLtE^~%f@HHCoZ#+zSo`k1`mU(hGW9B*` zto4#Ki4)nF!C%7jF&n4qyAZ@u%@WP9wWRQv=R6Ub>fBQ`)v-8|X12yc=o_QW!$Yhx zbjqi?XJc?aiQKQ&Nb@2 zUvT^MF2FmmsmX#vc9j5IaIs06eDZb)*pT{nz?6GJo`W`?;u+DlDE}NUW>aiZrh@i= DM@YhG literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Cat.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Cat.class new file mode 100644 index 0000000000000000000000000000000000000000..fdb942f1e0f58464d14c4d16a80c571b3d56c0f6 GIT binary patch literal 780 zcmZ`%O>fgc5Pj>IuH(8*NSg)%0hdoFr8Ng`AP!XOg$R&>ia2hZrEIXhk+T8uvp|qa zAn^nEQHWV5Qh^j%p7D6+y_tDCKYxAu0pJ1d`&dW23LjUhxQY(PH6Je8)?D`xTEFY# z25xfP;<(Lmhr!K7CK($2v3M`yROBb|z!WM!dC0K#Nae~rW@tvM$K7KBAL9Hu3jh8=N^Hxn6+Wkal@pz=iI##)n#T${xX?!RQm2^Ld^c_Pb zvh@By&x%AIDNE^5!hvlvKn<+`8`$Ky8z4fLq4jU~Pi86|$s#}xdkouQB*H|PZm6cA ztw8e~1h|KN4)QVT443}b6+``u{rPY#6T{FsH~SS)F9i4lGWa+(GNYOFjDXFBl1j%f zNM%D>OOaWv#bhG$5ySp@TCd2zoR5H>(TfYCF{AEEB4uoq?f+eoflqAxG{-J2%sLnX zdL1h(Et5mvHPp#or09rZhrHiA1?%m7h4ZP*X^`DSg)FDl@=&E`i=v%HHn!2Eh;St< zBeos1mYh!s$LOr{8I|vFU!USa?+ctc)*7759Nrw&vod~38PHm9lqGDl1YVY)+oQL6cnuVzDd_KAOEBIC7)q@}4M~Smr zMFc^X_ukHX^JbQP|9E`^aEYS`2N4Dl4h5n{**j^KKroz+<}4GvAlgrgTHUNysWSI6 zt=JhPI+N90n!@3)W?+{^BXE{vdKH%oUFx`~tuhZXQ%yWsl5L-6MV%{iMQ!7q#FW1I zw{LqmBJRxe+GOgw@K(PTFG~3+1y29B5a>H@T**3*Z_`p`R^a5%z0I3K0f82y&5v<4 zz!q~zG-kN2c=4l%Iphe~<^hgL=MX#Su)5nWy37K5=rKEqb1zBZ-ZN1PKN?-H;rOn< K(cqtZ)c*uDlvgDH literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/CharitySingerPlayer.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/CharitySingerPlayer.class new file mode 100644 index 0000000000000000000000000000000000000000..6d60c706df72a3565fe33ec46515f270649ce622 GIT binary patch literal 427 zcma)&&rZTX5XQfO!YUL+{1X#zo(c!|;>{z(Q=>)<_ib6rHl>?v7ZaY!qlpI}z=twU zL2o2_*x7Hs`ORc9pI`4E0IqS?MGHp)1A$|K6M<8LsI-4nUK4_7GMurI{Tj_^IAMEi z=UhFEO{woz%S5{;l@#m@Vw78V#v2p`H+E4FT*er+p(fC#9?pda@K9n>T)3OZJpP~e z=lKG#M$Rx}$O!RqQxRxK$O~&aCyYCYrdP4oh!E||kRn1_*}j!(TQ`c36*pT;)vdI6 z2*Og@JJ)BcEw7DJ?M3*G{~W?RSiBMD%FB~h(k1>QqHq@r#29%R50rRje>@2*Fde$| E3p<@8>i_@% literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/ChoicesTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/ChoicesTest.class new file mode 100644 index 0000000000000000000000000000000000000000..584a8a6d8b811b18f370c77cc864f49f509f1746 GIT binary patch literal 648 zcmaJ;%T59@6g@>?07stU6LowBT{zLW^RXeiB47d`F|Nv3v4okLVKDKtbfJk0KfsSN z-i{a~A#`zX?>X)1J-1)qAD;kDu$Mvt3rQ?u$-r^~D=Dm^l)##Sbpsm=@iXbk;DTYM zyx(GoR@9wf$W)~#Y6G_|{3dVr2+3EK!+S06OI;7aXz(EW3|m!4xpwzXb(Jl>K=}9E z5q-Pzpd{s{=m)2y>~iTbER=7nUH-)F9``zSBk-lyISpUteuuOQ6KIB1Lk)aKTuI$Z z_Mh;f)-sVq%7A5J6I%?WY2A>w;q}9t%Z7Ds9U0g*v4dTP^dD2J6LHL7O;ggosF{(O zdb=x}aj5a!4}?p@RRbc5zs{wyugP{m<^^|YG=)%O9A+>c^`RcktXQ5jGBRt>=js&! z(<7ibOO;KTQH~wFgS~{bNiiORQOwca{5^m)GE^mzMUD`Cxe|&2xmQH;(Kp0&j#C~9 ar7;uACFuPububdlA&&xa4D%EtDEUB(d3HJFg2%VlY(yprTQTO&p@n=3$iVdo=U~)*;Rep;1*2{Fg*6F zJRT}0P*gFF%PJCVQkaWkL&ZEcRb0iKz|7e(dfqcyHQiQG!V>{0Kd<5z2QHDS|L-$H zF9?heP`z>mCI_woSAkHP+Zl)-Dyu)?ENevTbab;Ourh2k0;+m<{Bnv|pqF$BG~STt zN0QL9lvov7W8|N}B-tt2?UO%5>sa;}BAYvcl+7O@^x3^IO*VlrS(&UtHcqfAX2>(| zUBea3(vAS!G{XJjL=q(+(fu?9TKQ}w`vuY``jEij5!X590;*ns4=9ktHS#dW5=BcK z?eZH?Q(W%^MyML5H0?#5P>T4J1doD`6(kZmOJrs!k?X^W1T^x9%n^~~KZvj*tN;y+ zPsAazEPN{4M>t3SK1Mc^AE*(1L}(vz_a7-D_TbVG^|T5kIR@CZLg@b^ICC lwd|v=5h^!J&gOnV?PHWn2zEOh0FZs!64Gu|23dE_{Q)ZzGrj-- literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/ComparablePersonTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/ComparablePersonTest.class new file mode 100644 index 0000000000000000000000000000000000000000..e071b0f0fc2b452d356586ca2d7642acd4db5ebf GIT binary patch literal 1294 zcma)5%Tg0T6g{0xGLta@l1L=-F!&-6%_yQM;US<{VpOU^VNtF+VFDB9k(!xU#omu_ z?Z&k(z|xWr@K^i+SLp3YiifaBO-*;-+qdsIeeUgFhu;qXOkqVu5@Ry*3dR*os0g8; z;Ff~h3W_mkxTD~%ib>p4(T6D&_whi%wD3HX@kquDLv+@#4S${?oFCs{kd~b-ouRjE z*!ruMRn^^fUNy;+Dmyi9ZgAHScE>6CJBG(lDAycIYiv0UM>A|+ck8^Sd)l&NHMuLo z*L2r&>~-DqO9WwY!)D0j-u&a8#PPcu-O>>v#=eEUd8MATBfeM^l((8_^=RC*tN$X;< zC}Sax$5@Qx3UV@*;#kHL3RD;CRKyd3BI+r_cvtL1nHl}0UB_Pq7w)mLY8rzu|Fggy%lnXaPuEhs4^)4 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/ComparablePersonTest2.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/ComparablePersonTest2.class new file mode 100644 index 0000000000000000000000000000000000000000..34c0f0d2623d9039316ee3dc03f582511a060096 GIT binary patch literal 2426 zcma)8OK%%h6#lMXGjW}^v70mwNoyV@k4a)MX=&pmB?L-aoCkGCFb#!?GfpPhGtqbw zDH0o`E)Y9bELcCs#rLNMJ%a!N4{^U$jkS#ig%^+ih@-I?+HYvOv`j<1cF1uD*~Z8d&3Yokuxo0 zVYjkwILrEanUZ+UF6!kK-7)3a7lzy|vnnu}E83Ox_J+M}r%lT>oRVHNs_8kqvZFiF ze93UCwzX_j-AtA-D!OS2^bFn1ZR>k_x~yB9>AdTh)@IhrL3cKZnrNXGPgnEA zSVoMMEI%37b{M%9ch@z`he=W{?aEDdiIVA5-JD)^8@>DL(i_GelQ9~V32V1pz9QWk zr6>KQS50?ofds9Go zkV2zWV!5k&xxCN!HLIdq3f_<5Ce{SH79DfbwDfXHcN~3xe0*HN2Ql2jhcUc@2@X)p z;9m0<^h!fp6?_zfj&*^v(b*E`J5{wEm*bkUt&}$nDT@w_K=xXK${A|L6gYDft4y;) zCEIq@|X zJcwH`nQ}`O=2|TTfs;?Rz~cJ0QRL_j4jo+$M8=Uj|RoAF+li9n3=&sqDc6v!( z2ksX`ukdyxylBm0xmKi6nKRbiBJ`6$-p-hn^TazGl4HR2*R;rLC1hLPVsE{j@)CGz z`S3EyX4V)Ys{-SG9#0u&hg%~HsE3^t=pFiBtEg;O)f@7sYV{KzUcs~cu=Mj|1Oy@E zMdkA>Piejd-{Fx1h#&YPfE1q*PpHrhh}8`69G>T?125nlC3FsSLV-%z-;rMsCg2MFg2A@3CNPhsz*#8s)w{fLfu^e&ER_Yix4&cXqX&ugRia6&3h))ie;#22(N zUy<+?qht4RDuBt5mJIo-ZeNuQ-A9kWWLQgvebwo@>K=M0BWjCGMZQqW?=ag)W3~lF zNg^f{rY`9UdUQD+w;g2jI9|mGWD)0AJ%Ot@g(Y-j8NFCTk_)E~COc6f z|28SyqxUBy`8LV@jI@4^7x4uK@g;_E2gCRVqxcqM_#WeUg!A|v7w{)8;xAnCT63dD zKfMN-OB%n@ZqNkfPcO2pF;Chk1FG`9N@vwVrZ3SK7C z1a&oxOdTUr$H>$%GIfj$F*@W9u8jt&^a~RyHImaFP6uZO`oBhxHjtSNvB$~KUG&`! zitqmY;|Ygxq5@O=qccsWrpV4^uf`rCb+OL#tX*29yc$8C!9PiX$50ep6yhJ8X6Q>4 Hay0$}o5*xH literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Duck.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Duck.class new file mode 100644 index 0000000000000000000000000000000000000000..e8368c18ae71ff523240aafe7f916186364e92a6 GIT binary patch literal 784 zcmZ`%O>fgc5Pj>IZtS{Enl=q>3AmJklhT?4HxLIvy$}IXsv?dXds{a3N95R`{;VQM zC6M?5{3yh%6RALoEYEnn^WMz7ou9wH{Q&S7k8CVr(}ImH3%AhbxNXD4rZ#t~aJApI zaThxr_c(Sr?lYK)h$Ta#HxwU*ABp7D@8_9HPM9CWcq6S$smLn7$7 zYV7J7G~$7ShuG&J@1xGJ@!!T6>R0@4216O-4DD;v-x2pzgg+qt^KmX?8Y?Xb*qo}V zQvWR}os-^D#9D7L8p$MN*uPHixht4WNWf~IPA`pN&Fjo1QpRf8{@)cD_(<1}5^U4b zEP}zI*U-Y!LK*a3L!ImjMTZm{AO`3t~n9GWoj(1eCZCLZI7fu|;PJTq`$;JJaa zfPN%>88rn|yK*6*9S1#6V7n!K?`%5mc;UI*8PQX01zmS^;f6A{Q>PYvmJ@+$s~e1+ zVJ{d4j`Slh?7LlW;+)8E5}mnY?>HD=x}h5dVMD+mmKH;Pve)xcIMaOe!b#vaHiT79 z1(eH|0_6<}G5nQ)+5cZCxy9Dd{o*EO*ODIsrEc6d_AD4;}3B_oU5JZbc+*uy?D`S+~lPFl-bdQ~!W)!J`pb$&A}m9W}S RE={Z8E@=wx;r?7d_y=mw0*?Ry literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Fish.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Fish.class new file mode 100644 index 0000000000000000000000000000000000000000..42884e3efa3ab7cff8a9d097666bed843d1f9d02 GIT binary patch literal 786 zcmZ`%U2oGs5S(>P9lLImrcFXyT3jgLq_pONHxLgX<%I~4f-3QNajxw}{)lV`#Logj zDuKig;71|$oJa*yWO>i)+nL#$+n>L_{Q&S7j~uLG$A*Jl8@I4$Vc&s?9UX30;pz3j z!5!SSaA@J4h5H0E5wRpR`eX541d&M2gF%t0FW7LlK>dOzC{_(=0AjPT1{-X&j74={OBkQpoH~gfb6$D!*V&GykAs zLdDno&LEv;q3kKmY3qs;-KL8g+Ah|xZsCCoA00yb-~OLZRWy>Bi!P1`EzcL;8549o zm3vwv<};qSc!*;QyauQfw*T81p?)RsdN`J0LD;{xe4xqaHvEAZe9Q}}50*|D*_`{S z(%=nyU9jU)#M*H&naE^BIKIyDrAt_xk%84BonISa%kL}|a>ZuZ|KExPYohg|1P44e zt01`i8roVODTBXjsB_%ltjD>*tJA#%b&tNn_*B+3IIg3@(c%HC!scg_v(~&CTWE5| zxRRBat%df2^Cjbm_x3)c@*U>8OWf#wfic5M!{RVQbq4!N#wjUX9`3bLLO09cg#_Uy IX9l)^0|PX!i2wiq literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Generous.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Generous.class new file mode 100644 index 0000000000000000000000000000000000000000..09f42a3ea56460fcb935ff87ba28963dae120886 GIT binary patch literal 139 zcmX^0Z`VEs1_l!bPId-%b_Nbc2A1^9vQ$O}W)00SMh33n{L-T2RJY6=pb)QnYF=tl zerd5@R$^HqBZF*mey)C2N`6+per8@tYEfEZa%!^vj6}9 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/GenerousGiver.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/GenerousGiver.class new file mode 100644 index 0000000000000000000000000000000000000000..2497a1410cb95f4d768bef48983c61d4d0ee6d52 GIT binary patch literal 417 zcmah_O-sX25S&fhL}RsDZ-NKKgCAfny(wM@P<1cs?ALB7|D`P+uF$;6& qatV2>$6Jim7^H7AcE1S-u|p)pKjNzzv-el%uL=2uMz~A5hrKV~omhbY literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Giver.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Giver.class new file mode 100644 index 0000000000000000000000000000000000000000..408338cf0ad73d3d69c6a70362cfc479569f7d9f GIT binary patch literal 282 zcmZ{ey>7xl5QJxqe}d!0C?!fm2Nby`9T80=Xe=m#=+DOiXBnS#7~U&YB#Jyh9x7sO z(XuOzc0TQn_V54l3*a5S7#%!Cc#e<~!VgoKdP?XFM{9!rX*ZgXW~S1M(;?SxCG(QW zOJe@y5#i=vd(PAv06s~Q7%{C`u#%?Yd_JJEU|82^C28F+|TL&o5>2iByW19TCy JBRsNtNUq(ZJMaJi literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Job$1.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Job$1.class new file mode 100644 index 0000000000000000000000000000000000000000..4829e493adeb21fde9b5c6f50bb3fca20a3a4295 GIT binary patch literal 199 zcmZ`zK?=e!5S-O&Y8C8JJbCbJ5d48CD2NANkfyOV!~~k^<2?8PA0=)d;4C}Cz|JzC z@9PaRg`w0I=XL-T(jq literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Job$EmptyJob.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Job$EmptyJob.class new file mode 100644 index 0000000000000000000000000000000000000000..e0e6681051aae1a03221c8aa1840fd946994cb1a GIT binary patch literal 798 zcmah{O>fgc6r6R^*fA~*{h}#_CNwQ6hnNZ^go?OSAc3NSl&bfQyA(&Zw_4kX{;YBU zi32}?ABC88%BKii{Pw+_nK$owzkL1l8NdVV`e>l-!$rG^b=>f<;o~N5x!82kanTiM zJdU%tcp^~i?;Z=(5A=x=SQy5cIxN$%GDmWpu(CMRkxY)IiEVyatQT+MT)=ypo)zaW z^jIKxo@L4$Br?wxZ?=Y!PQ%HGp6D>n3T0l)NaZ1+z3-fTdN5_il8f5{oBi38y?txZ zd3R4><6kHNf22zjsb{gZ?ooR%k#A*yCVUrL0eaXLXdi0&&rUnJGO;f6PN6$=G8hb8 z>;$-jzCicC{smfAJ4|GD8onG)R8$D8&7ujc&${aE{U$X!&kL3Ezvz;JE5oWutixA^ ziyRe3$&{;G`b$~BJ+q)BBd1ab8a|U69J?20SD4*r6pV9sKf<}- z!9l>U&j?cLgwFF6OhLGcYs~mOeh54y(h4-+qqbQ8fVn?K0(PDMMWi_uX_10uQmu84)* literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Job.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Job.class new file mode 100644 index 0000000000000000000000000000000000000000..7f18b1c4318acf026380731fcedab80d877b37c8 GIT binary patch literal 450 zcmZ`#%Syvg5IvK|yo?&_tL;XFEZR*&!Ci|BO9e}{f~C-vB`N&{Hcb3H7dgQgtsaZ# zaT*ZJ(bdgtaW|fx6IzonU3u{`jZ-g@g~;yxP~;xh^$A+GmcJdfc4y8KgD{C?RGbmi zVY(EAok=9c^?DVEY~}|EzgV~FIt#@`R3-*DcVqv_C!AD`asT(S(LmFN35(FEswOz4 zo|pLY!J7uL2n+U5RqgiJ!{Be_<94N0x7Y8?HFkv!zA2$uZoy1Z37fE)8Q5YZY%_OJ p;|SOvpas1_c}4Aob3O-0jS<*|0*6syrZd)=X{-;&;D43%%pY=YWUc@J literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/JobTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/JobTest.class new file mode 100644 index 0000000000000000000000000000000000000000..8f01672a8f456b10844aa13582a0d66df19f3f89 GIT binary patch literal 643 zcmaKqOHaZ;5Xb)uh0;<5K@<^uosfgQ=n3ONqX&Xw0wFOT%(hhAhPFv5elNZFIQRkl zP{!FxLL}lI=Cw1wnd$cP>-_`3A@+2nQP!}5ijEXEvt(6O)KqLSq>qI!q7#N>eZSA3 zoCO1iA=ehZb2afSC+u-+M3F)}u=%LZLm~ZXP>CMIm|?4J2cGE;0yi*)A35PYx1F)s z3ap+pj+#XExbPX)>bGr|KXP-#{h`^7Lg5daaaSG=iBtUJnn4>+EKfv4W2n^^wu(VX zS7ucfCo$;VU=rHSg^*hr(-{xsSO!#NRBRjALCHV?MFYFYFjW6rk0C$Xsbjg09Wj&_ zRnR);m)E_UyH@9vK7KgyX#(n!q9>9k2_~l?sgY-rW~5V%7qBNX63|Je)-J}e{BE& literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/LastNameComparator.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/LastNameComparator.class new file mode 100644 index 0000000000000000000000000000000000000000..51ed7b7f378dcfef88e324379fe4adee78f3711d GIT binary patch literal 1099 zcma)5U2oE06nJTGo0ALEvx9T&l>ATjOh9k< z-KjAixMSC_9pCbXX5X3_ZFA;#%&B$kPA^T*^j)thpb*Lv89!EU4vXQ;^1~sVGlA?X+t$c;(hwF|uEGTN`em^ttCuM(P-W^vptNGE>UV;= ze5AC1!9BP|-J*>GiZ*h{+ZaLC#FCAhxFs-ld;kwRs@0HzjoY{*U{9%VN{ivUXyY#K znOL^5f>D719n;jY*5W^V5*R)pdRA-7dL%G?YDtxFGI*_93XYUjKZcQPb1Hs^#f9!d zlB#S10fBsJ?nELpa&Zes8M&S<&EN7c z&0ClOB_qLyQ|9$d=#lfAqQ8Jq+A*G9ppOw?q`V7J&LgpnWO;rYsV{NKIBgb5+BB_! z0p9XqSU5w^Xtxk&agHZK#6-NUIFDiv{xRVNW5us9e!zUQi*)%LQak9+S~NQt*nxdO zWyO#~1jxh`cDJ}kAuxf-9`GuG`v`25XQ}u&LXKVL4~aDPMH=xGw8$w=sXGIQtXgD> p(vqL~lYs8qh@InygrxR`T=<_32mjh(ksVGP0xs?YUySK5{Q)3;)pP&= literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Movable.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Movable.class new file mode 100644 index 0000000000000000000000000000000000000000..3a651ff22aca9e3ef414a7150722c112a407d653 GIT binary patch literal 515 zcmaJ-%TB^j6r4+2icsaDA_~3|iNL~c*btWzSEvgO(Pb%DY*X5#6#N9g$0aWO06)q& zw`J{S=FB;B&fNCr_v;%#ALk_)XewwaI970C;?%^MfWDB)GpRG|jx+T_nx##x(;a3) z_2$t^3K*SX=Ddlfl;x2Z%KPPfBI74#60lPnMXnQ!o!C=))6|nUZy|6pa-+HJPa{9F zy)cpStK-UreHX2i_gWx7l|kb0J%YiRP|=}$S8pUy6(6Hz?8;kDrCFQZE8kf;7K$iY zuoRdmSlB{Ap!Hv-Kt*lZffLT`hlwxUB+rjTo_`K7bfFFbWZp`d5h*i;4uNg#5X-DT zpwk7kdus@ROLt(f$_aGcf!S*qYiJsJ4RZ}$!zYb7RETxPfsZco)EXU&=sj5~yIq4D{#dhU5k@yFG z1|Fya5+A@vA!Z#=QYoq*c6a9No|zr*?>|3&0chY=9?Pg2SkEJcY7RBr%VPug_0|UK z{0ex0hkC0tLzdo}f~2--V9P*VK;QKOFMchMwltfqXaeJ2E+uzG+>BjYc9j7N|NE)W%l?BhB7|pWbGw^6P>94 z5{?;{X6=#1I+pmd)R%%#fpIJn*_;JuZR;H3Yf@HkOHarQ%3Pb%4XEHcQ4XuPK}H?^ z0*&o}-JeLEoFnagL#F;6TD=5)f@~UGiJ7-2DjvR1B=m%C*hmY07^M|Rx!zD)^)C@2o^C?O=6j0tJ*2;vKtqc2DR literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/MunificentGiver.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/MunificentGiver.class new file mode 100644 index 0000000000000000000000000000000000000000..24fdc868c7477095ca982d0c03bf7f2e02335a54 GIT binary patch literal 493 zcma)2O-lnY5Ph?4ciXjEtvz`WLBtPmFWwYE1ih?Yl-|=c)hulSX}15%Q^A8jz#k<} zYDFmvdUQOXOpXhrVA2-=hC%nENQ$6PqSYb2PnA*4yX=`t4vVxFvXO-)($07rWmKqRs8YoE z=rQu-2kbZGZr%I~j1TJO6PzreF?LN7$PX9Gl)+G&Vl*i$#TaKT{E=0eqp_zn_3XyR EH@QH300000 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Pen.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Pen.class new file mode 100644 index 0000000000000000000000000000000000000000..d25be75349aba0a033d143c940285f44df57c578 GIT binary patch literal 1097 zcmZ`%ZBNr+6g|&g+O8Hh3vM_O2cmQns0!aSd{E-2DMk!&AG@v2E~6z|NAy>ziHt-O ze}F&Ac%HUyWE*LEpL=ibJ@?$x=g;4tzX9xHU&jJAb1?8gnujX3bY!rp!IEcHnwo}3 z8n&goqheQut>UqO_{{f^?-v2(x#xS~fk4`-o(N=K25na$U-x|X&G5A8_TM|r9y4Y= zXgR$Tr|-!)NoK-N-aw#SZw04zw;gl?+w()W|Iul=1N*J(KNHAWhldgJzzsiefHjU9 zj5<-0vq?t=%xPh89QHlGBd}~$>s{yEv3ri+vEwWu_2XdJZ@I5LNlfFIU0Gzn#FBwL z3I=YXAW)iaeKGWUZMV-!?6C|y!Bc7W1X9}-%272?!Mec8b?XQeCYVRfuGm?kyG=N{>-^^n5LiTt50~bpNXfl=60*WZwk43#lRPDte8eU`Yj~UU#vU@Ul5C*6#;WUr8_psh<)h%X786H@7)G-MlupnO88G v{Em9a$<{Aq8kfkL$_Q$WEJo1GT-j5eZ< literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Person.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Person.class new file mode 100644 index 0000000000000000000000000000000000000000..01fbcdd3c6ce57de62c19a32e290248bae417407 GIT binary patch literal 792 zcmaJfgc5Pj>II&s`4q)h`Y0hjXOq_pP14a5PYUWlMlP%DlbXK6RsyOHgH_*o!G zC6M?5{3yh%9jQPnWO>Hpo%i0%?EL)o?FWEIc<7>ztr}cx*Kh+}2RB{V*fQo;6~6I1 zE^cGj!5s&89o%EE6;A|1YcS#Oc^Gqb8V>VRs?)~|D^H}7`BR2=uzcJ*Ch&7TCU9dQ zm3TQzMk0O9M{z-?BOV{~RGN74)6UOi#?T!^IteFZJ<*|5xk%sgNMzxWNHeWS)&9Wa zcMO%lD7ZsCOCxb84Qsv3IWVPqXrSX^6>ARedkD~D==|Hmvzd&?BK6S69v%Au_oszS z&zG5Rbg0n-4-c^KfP9E1!}fp5V`yGzyc$hJlv6{O0#1m%9L67z;m0f&2{or@1ZlAI4+1Nmv zBEl7{jMz5OS#Z7}9HX=DXH>q!eshj1{V%ZQSZO(A=BUn5yO41UN{?22wU98y5_loO KaE&4h*M9>VNwGEn literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Player.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Player.class new file mode 100644 index 0000000000000000000000000000000000000000..9ac7ddaf724a2ef66937f431040541a53440f81b GIT binary patch literal 330 zcmaKny-veG5QJwFW0M~Ugmj2LG;u>mgG5AS0Roi%d^y5djt`wLNIVri1)}Dm5Mu{g zn%&uN=5DoL-|rs)&M=8D{3jKVV4UDc5IvXbRnVQDE(A$!!kr3+csg&v>JKn5C%$w` zx}(fi=6bWvjek&iNixoyR^>u@+swZ(3Qx8coMhUq(_-lgm)a^A|ERR7(_1b!{#?+% zcN?$Gm2Ey6Z1Jp6FG_Iy&r88U6G}@}ttT<2xb?A*5hw0yQ-?olpG3+4 literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Singer.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Singer.class new file mode 100644 index 0000000000000000000000000000000000000000..3991f5cfcd3e7d3ea51b2bdada9583d51cf1f5cf GIT binary patch literal 184 zcmXwzK@NgI3`Ktd83j$;djZ@y8;?NTnn>b)94ldhOah~abKwCzl(Aym^e3;c>3_W+ zPXJpi6mo?*AsL#kCd9@1NKgZZg9$9SC`VBLfe0lbtNg9EylYx<@=8v*-#BwOgq8JI z?atnL-E@Kbi?KZDpF&uECEc2?*87uV8&U!xk}g1;$bTe&<2q9zv!ifIt9OjJUL$-s&S5YES@Bw@j zVr^5T0q&&L&dl!4>hAOF{R6-uHXU$`tm7^rIvlGUYaHtw8w@;_<&7vMgE^j@GPF+g zlt9l{nY^6OLYd!+FePT_>qw+`B3BjuAzS5xDj0VCNYA`vsuS(0td#k^h-BdfDvM=) zor)KkA2HZZb=J5s^6D201r2QndY(t}OjVYH#Q_J2coto>(P7y6*N%o)^4yXIWDq=J+-dg#+Qhk6E-nUoJnF|hItc&%tq literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/SingerWriter.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/SingerWriter.class new file mode 100644 index 0000000000000000000000000000000000000000..9e617e2c43746361df73873a5f2b7be311a3878c GIT binary patch literal 196 zcmX^0Z`VEs1_l!bZgvKCb_Nc122OScE=C5f;QZ2}}6wQU}RtdLS_aQpocjOCir(|stN6kOZ~W7OtgJc zlesV_naS0BtSndfhxFYGFA3c&H;c5Gn!==9I&Gg-u9xY^aXEW^;I+0lgu|H>w;4NE zwTnk)WpjPc73l0KuL`wR348>Ev;W!>PXCnDGtq}9msZb%T!uhmC@7Uol7rqm=&k;a jB!)HV<3Q?UD?k&mAX$EAzO1ouzm4IZk#@#JR%&ty d8zTcF0~63f1_nkJpd}0}AQl5FkYr+D0|18{A$$M; literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/SwimmableTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/SwimmableTest.class new file mode 100644 index 0000000000000000000000000000000000000000..088b93b28ba45ceb3e4e682166c9d4d50d08372a GIT binary patch literal 839 zcmaiy%}(1u6otdwVQL#aagk-@2#NIJeI+0^bu_>=rB&rG) zeSkg`;!I+>h6S;unYnk){e13>|2;qb1#pP2LA`RK>1<)E9SpGVw>D z66knAJaNa@@i=yMl&a}>KTwIAD~<&0Z#vTHvB2m4BJuu}K=~xTCV0iukvhAbjMVgU z{;8%H2Yz_vPqm4&WI6qz6M-)a$d@WfX+`?EF#+dBrG>E9-(LVBz)4=!IFY(5AZnpX zPiIVlQr|Sw2#x20L|(+V(?AWiIlN}RVf=j^`#*gLOK3T;QLSRnK?f~?-up*vY6VtJ zwHx};je9;CtAMH9_v?7n2`>^|-f)FCE?}AOa#iMf2{n$A(U5tIvmE?^7##eDb2N76g}gZ+Hu{5q*-X2Htb1CV|I{0Jb=`fMu3#6h{s7XlnGuUXF|nifgqJY z;sf|7#2q_QAxTkX>5lK*d(N4={QCX|hDoS-7ZXaT!-ETyxTq> z5%mbX(vqQgISM)=KHwccp^LiQKjg90{^ZhB@8yu8(&|Qm*Y8FB$djQG@jKoXL+@Y| zD_@YR*^!DUGPOkEnEM~-Zg?yM2B#g3;;z_}T4OOqH1)$>(hX{GJlnj3Fx#WdkB&i1FF64a|qG$Q6gIyf15uW6`?Mk{!r zN6QBT5%w5%=Z$t|+LP81&{k2p9}H`?`b;8a0|m0n$dI)NVIxalk-TD>jS|Y_5iVh6#C8em z6V83YF^W~bAoBy}+Y?-9e1$Q_Le3&HhCN31RK`gtm#|5KTEb1i6A6Zm^AI~{66c6G YKbLs(Jj9D<5|@a$JeRmaRT$X%18|(Ye&M-;$nkgZH-M4y~h6peWQGswRO4w)6x_^^;c5{$yKy+v{3w z6-ck!3=7*qmr%u+V}X<+loY5eDnvyxeOJ9w&!r;4wfe$ft|`n~Q$IYON;#FmK%$mw`!;t{WpO*~;-bpej2E3h1m^i8MdI^Eq`s1;ITao2Q*ct6*>A4B|6AB(O|29Xd5! zre|{!fC7rN%U}hoZ7QTYW+5te^gkP?kFUsQUH0IZazHU%6`0ea&bG6Mf1 lillAj0zyX>wGcrwk3ks!Bg%wW`wOv+>x2-vK{kP#e*o7z@>Ku; literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Walkable.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Walkable.class new file mode 100644 index 0000000000000000000000000000000000000000..9db323fafd02dd16379b53277cc6243949352548 GIT binary patch literal 429 zcmah_yH3ME5S+E0n8Y!0oB&0HghUfkU}p>>UlsuNv1UPoYocwULon_{G9~D}oe{xGWI4Q+>BSGX z-MjR|JoVyn9_L<^m9m(KP|iFhiy)B)%3~bmV@YWGQ6|skX&{TC(g?1fhawq?B2w=q zNfCig*p)=HlCbq(2ZB8)ML0bbH_L?jAfFeZJdRWk`*)PxSlo&R3{(i4e-2G>)L$4auD;Yj7>f@Xdlq%9c`8zCN#9Z0X?{0{Qv*} literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Walkables.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/Walkables.class new file mode 100644 index 0000000000000000000000000000000000000000..a911e16da7f8af3656a925ed0186905ef70a9574 GIT binary patch literal 625 zcmah`O*6w#6g{^|6aAncl%i3_rrH^qF;+@9W~_n*!@}w{eMqH^NmBg-eu<5>m0{5z z;J5ezR=BT>Wo2>i-1E*k_q><4&({%vZCGjOn9pDVWfO}gmI%hK*Z1NUL91&v4-uPwt<(e@cBI)N+vGZA`f{sr~;+KULQjvMssZYSslw%3nkcqv>N+2_K) zQRJve$oMioy_P+N5!P!LlO;`+g@%OcKRizCdr{08{&OTupTxqwITW|!^d<^~^hq!X zU3uWCE6)4{-t3Aykwp@QiRCORFbFG???}iik?o8Am3`dqN|!@f6E&QD$j^Z_X#88$ zmjJ1yTuq*A?!-M=e+E5`kEgh*W3V8_HTy$A8X2BaJWn&C#37p{xmW8>W3;EWtjYsQ z4Qp#hU({caAlz&8`1P)AH7MKSID>%#%gelEh3(Xec{Wnm402;e6?vW&AG|E_3Dd+Z N(FYR=a||X>`UYjli;MsO literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/WalkablesTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/interfaces/WalkablesTest.class new file mode 100644 index 0000000000000000000000000000000000000000..975469973dac24dae6881529ed0848ffaf50c898 GIT binary patch literal 804 zcmaKq%TC)+5QhIre8Z%LhC&N8G+f#y1n{Ois%}7CR2Ec9M1@$Ln3LorjxE^^eJ)l( zAo>7(D8w972_aeW;*96^f8+7__i+0cz*p?KsNjQ*nvD$yA6=ADx3TG9%Y}uygKZZ( z_+;a=jV}c2n~GHSoltHx&j`j*d?^VFzKZ0@WZacWM|4AuRQ)&*;h9L3_WuWsY@kxY zjvvHhZ+ICGV^2kyOnM@asrOriBVC+!WSSka_E@Nhu+q5jhvG_jp@{lkJ4;m5Kg`)8 z>9g8WL7G5+2=$BEAZEDjc#;J2hstMuF~Na`R`3e13ALF66V?m!zhsie`~}8O5sb7_ zgRojyc{~Y5x=!|b+Qfs%Mzexlv;9WO>DEIx1Ov^$hRMp$kXuWe(t9$`L|S!W=} z8bR3R_0R0!e}PTR^DWX(38YuX=K^~kTViYOPC?gsdXY~n4;pyG@0F(lRI$X~9NuD? zBf9wtCd&Z_);&sot9*y@dDWQ0Y`2U%Sm#xH3a8yN^Y~mIzk&NqS!0f7nXsAUpvLM= c=I!%CE|E&i2+^ahdP@ki)sY}O+wb+zi!2{O`3EfIgyi6Ft+CsxW+y!jyY1TPyCy7+ zzbaRF=T+4(zG!1R^-~CoK~lADO0_#XYx2Nw6nq~7;EWKDDKX&*Vahc?@&$8A BClLSu literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/intro/Welcome.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/intro/Welcome.class new file mode 100644 index 0000000000000000000000000000000000000000..c2adc05f52b33d820ae9592a96b2a3b1db517524 GIT binary patch literal 571 zcmZ`$O;5r=5Pi#6X{~}FDEL)9p$B>~@qqDS;=vF#!QjEu0vp(-?V7S^{8@U?#DhP; zA7z{t5+uP*c4zm^%$s?$-#?#U08VgdA%_hU6;$)sw6KMmfx3ZhhTNG9r9Nj!H;%dt znF}=#428A~#q}iUiRg~^d_qcX)#rYfM>2lTz>FTrF+;80SApvdl&4%7>PWfw!Y4?y zh%n$XWT-YC+8%%6uFu1v+tHB>hpnU_kA_51UgBo3I%*R2#ifipuxF&rn8${Jyn!7X zyVzr>&wP$njvfi;ib9-c75Rgvfqfee4j4B7>5`#1Z|$b%iN0QdIxk}_0-BJTkfSoy zA(eYeA~Z=6JRqUvgkuqAFdpL|pC(XgEE@oImZiUmSBf@?0)t66mnti<3gur0 C-Fzkh literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/object/BadImmutableTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/object/BadImmutableTest.class new file mode 100644 index 0000000000000000000000000000000000000000..192f9addd41bf3cb0ebf447de286b2045b74912d GIT binary patch literal 1206 zcmaJ=TTjzq7=FGn)=?@0#zAr70Ko!|3ZkN%6cm|R&^Uu3UX`sGUDlR#9mb!f7bB6x zAK;Du$oPESGGrU};(hy`pZD9IP z)C}jmf>}8ve)(!T(O40H^`R3`V<+D)lnOUh3 zvdFT%lh7!T>crRzWsI8lYJS1mvt_TN?dX>zU=71a3QTqM+RD>}ARX5l!w& zDKOsN@=nc`s0I3GmeV2N^k!Pa7PcjMq2VQV6zpnvh1VMP@J7MDhAh@(#7Zlo8=iLb z0)v;;--Y|(HuS6hmCRZ064IJT=QS6f#q=aUM=8I8e6kH<2_dvaB-IDaB?v@ zcDE>y(Yx%mL)Gk?fhi*Rk2xNAjpGm)(K{WPAQ^Ub6_9{(D&bXlX`|f$v1g4vw{|8l z$?VtflyxSqw{n2h<^VB;K|V|QMZouhBV+!|^)$Qgx_x^w*)$dgCB7gx_@x zw0kD5cwR!8Mw}&LP{|W4ucIFsf?CA@uQ-7Z>`cO3Xh6Yjq$sJp#yglK&;*b4F4F8f QgE`J&nxOeu=@Y@dztD>zK>z>% literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/object/Book.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/object/Book.class new file mode 100644 index 0000000000000000000000000000000000000000..5258a8766b53c9c2b4620846442c7cc1ae88ce53 GIT binary patch literal 869 zcmZuvO>YuW6g`)jVahm_DOy{lR?wn=+R@sLmNo_|i4AHZO%q-D7$z_jcw{E-~09F`wsw{*tB3_Erk>c7H;B}vWiNSlqf54 z+rk~(HL-5OB^Xf<^?gF7(G$nQ?TcZ@ZAM`*>}(N|VjOj4NJx!D$FIrpFe1=X_PZi% z*W|I!IeN`gMq%Lb6x!vcN-zwf9fDRY9T4=IY;z{v2!{Ui@u200`=T}3C_T|X5MiMF zX;6>4!4YAp;mLv9Ys;Q=Wvl0Vkz1AWkRi==#Zh-MlIJrNT?JTq@tRZ&q#8s#g!TyY z%}98M&%|gt-)hQn==t?PAxNp2>x#FHi&(UA4z`JVHnLc;F%R3ud8BPPSg?`71rzse zY~TT5@xSm0&gl_f#IR>Vle^A@cI7xehSQFXec6!1&IG<*+%4@P&o5^2(;7%9cx)vU zvRE^?STnv@GsIYvVgte@_FUG)+9-boeTvgdER%6i$1>aYqyU$3g*{U2S#mRJyw>1Y z=oBj2cKI_BKVfPou$1`)+IH62>aM)0u&bYD^x2GYrYiXXrhWqbY^V7RbJcv_$-RB| z{$FYKBX8B9kUru!06&4oBn>9E%+#*2++e&98R-tL;t6ti$)|dSH3$?C@Yf%q7_%!w vR}7}?G)S&bGd}|Ztg@Bhjs>2W;|+PPOe6Ul4pE&lby|I_u6Lco3EcP#U`m>p literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/object/CloningTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/object/CloningTest.class new file mode 100644 index 0000000000000000000000000000000000000000..f71169ffc4c0005d96412683a6c231dbe0a29917 GIT binary patch literal 1169 zcmb7DNpI6Y7=4qbc9ObuN!qe>V=L}z_N6Tl+E5A&6w#_u#K}#p)RALXj*Zk4N6zq1 z;E+mGLY(~SZByGq_ZF2ASb52BNb`zjs?D9g5M2ag20^ywXe zP(1p11$YrP8VyOzIg?mF}g7QM3R?3lhS&uwQi*s~h~Mln_bNX~l&nSsX#0s|#8i7^k<$7TtFcf9mp7EN}2fP5wtg}Ed_xCNg zA~3JV`u(||4p*Bu3sY4q*fE`uI`jDyNQnUdl^=LfSAmn*+q3utTBJ`Rq;UHZufr!a zbQ(fRl4`V(;39_k&d7cbfLEAlZ2=TcUzQ9#!Ig=RWUW*bihH;+Kn7|}G zviK*G=%W2}ghVNau0wPeXPZ#IBk}SJ)FY%yhe!`*n&_chYofP_GfnixV*QNG#bdKM z3^b9Q%OOV-%lxk{$4sV(Sn}zi&610OUTmNrZ!mxoatJYmj}%8Tos8H}tV=xg-~%q> S3b|(S9#^@O(oHdvz_s6FB@5sH literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/object/DeepClone.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/object/DeepClone.class new file mode 100644 index 0000000000000000000000000000000000000000..44012d6e81b4940f8587fec569bcd67958f910b1 GIT binary patch literal 1028 zcmaJ=T~8B16g{*3*lk_gT2T3D0TH1sNELb0m>8<@VZjFo36IQ~U)! zs)<6PiQ(BFrJmWA)&zBTJ9B65z2}~LX8Pmj*Y5x}v6+XBWfLoT7^vl7p{}il9#*w) z&BT4Z;Jltk9!(PuOgt3G9;seOMgsGWr;eN5j_RtWYImgie9wR7VOF9Y2se{o}Tb_FTpblpW={y?rqN%;gQayiGE=oWeHl+D2u#-MPS-tkn>{x;Y`#i(6GqUr{D&if-%;^y zKMYkA%g*yRo(yAO1q@DmDts$&eK&T!*V}HG5T;&~N+7?h`jIDJ_`0z|>yqlaE^4EM z4T0)^h0{SdY!pzmF|Dl`%-X1+Dll_3@e*HPY24Po+1q%e8I;Dc0|^8s##>4H;AAKs z53U$Seh??^?nSOAafcVi1|{In&{TP;(zMB(W0|W1WRT)K-8hG6e1maNI7jLW(v8nZ zubd(CiB1C(9Lr1vOpX}>SeQZ%liayQKLK!)mVTyjn?9bEmStGx8H?yLxvQ}H_JS-e zvK+(ZMsT?i90eZ2Z7@eL%hGUX$bO(bAel|}O9_(hoH0WrUQtws`R^F5=`0F|eVZ4s zoYetT?g9q8e-CSW?F`peKQhB$JG1<6r4kwDC;^CXu-!acoFeKh-wNLa%qNu>7+axG mb6o507Ka=RMl3K-@MJ(V;};VR6N~&HOx)FnvqYDHd%ppj4!kY^ literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/object/DeepCloneTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/object/DeepCloneTest.class new file mode 100644 index 0000000000000000000000000000000000000000..ab69eefb551c37b7de3e51274662e9606d9fe994 GIT binary patch literal 1149 zcmb7ETTc@~6#k}{-L|Y2+d>r)5fzu~dO<}%sI;QSDn>{X;?uI7)M>W6&30?_&1d~J z`mjwTF+Tf0{2RtI+nN>x68B-|%(;H&n=||K_qXo=mhdcv5lpMNp%nH=L0<|H=yI7! zVit2M=2J*uI)MebFG`CcrJHiOmBMY@NnlASh<^B8757x!XHeFJBm8xSs6JC+h!x!` zXGoWY!(X-=``p_#_ifT-%C2SF71I;)+*8KQicSEEeXW6TVZmc=lBN)alcwydxo zLu$uudlugkA?!my7G-S>qsTLios3y}ENggx6&0%**6@%ae-!p+Ti8|ZF(kJ=Q4@}7 zuV`4uhK2$jNoi9<5hWFmHEiJtAq??NlGjr#GfbRZUvkDU+^@JDl1ePxo(>>j&!|+YrG=jeWIV64GK`qW|KQrh6Q~f-{0H$N7d_` z0uwdvS4_K2SZI7obV&s8G=JaiW<83%SBnN9Z2B-lqOK|N+B85T#~~z260IH*TtSZB zi~J&>fkU3w^K>$3XSBy>J78Zz^95R!P#MD*$y(O|7cow!BraisG&1-XVu;fI`2dl< z9HJe>%X0ygABep83iSYqy$+I@RDdB;YXQy#I2#~6U>hde{Ge?vhjRh411|p+-fv-w zUb$>!2r9Dlb1+DHjx=5)1BW!9h!NS|WVZ!eCJE&8k+_wf?j CS_nV@ literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/object/DoubleHolder.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/object/DoubleHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..405b5aa877c6464a0d43d15d2074d7fb8c0d4500 GIT binary patch literal 881 zcmaJ<%Wl&^6g}fOcH%ls+Jpk7=>tmh0O1WgP&W+~3%4v%b?-Ps0UsdtobP5jAJDc63F()Uq#kI}PWVy6lnyUN-#ao5B>3uWw^xNqV> zpnUB`(?CEB1dOL)9A<|CdUwz}=XNB=4AtE*4o;_+qaZ!=MiD*huJpa=+)G1sE}VMy zGQ1MlaeaB|OvZ8|9XXl=e&!71l(6SA8VBhUfyz~oozJpXF6L&b+hYl3Kaw#sw7NZa z;$3@A-NX4+~A>FFh;g+We_%OIpTU%b065(JJb5 z$Pvs_?tg;zp2n;+BX>4(8Py5_g^W|npSIxDA%l1k?pu6u-IeGX6#)A)xX)L`) zW+`uX6NbXldyD=yBb)SZv9awu&u)&>ag%X1gjSJJBjPs4A&3W>(0-GunYhCj!o-%E Kc$*;&+kXJXYnf&M literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/object/Finalize.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/object/Finalize.class new file mode 100644 index 0000000000000000000000000000000000000000..dfb31f943be8fcfc73db7a84577812f7725a6074 GIT binary patch literal 773 zcmaJ)bPw`}5bg9{?WXkq?3OGUib)V*{HmuKOrr-NOxQw=8U1 zxas2-Zo9bS;x2(c@P9xkJ<+jFpAw3}L8Hs&xfv)zrLAN2ax&_v2Egj29e^mPf?`?i26aqWL@0dx_S1oOM7yeZ4 z4dr_&P(e*#0gEo~2?S^mYBmu@GCm4BX`O_R6>}~dpWix(8P{~`vSYza}f$W zz(c~?KeZ8-&Zu8yy3d6=C&#H8v1&6(39Id_Sex*WMWif6$q`?#B*$YF4+y)#tl}@F z`;7~sTs${!@QeQ^?WJaRUBXImv5*OtFA+p=$5vhxv*ODHb+OI6B6xQQj(uo8Iee~Q ziSY`1E%qI@e)AO6tbc{`DXXb6E~3Eb@;Z4a^S8|2)mb%Gu*x3yWvskjoT=rUFSw65 vxA_@`?iBX9{nM@)Z8r7(b&Fyw8&>t=4)B z+HpAW7&49sy!Le5_o6QEkEmifq02`-9tnA06t(zLOc-_?HyqpkAoN2!?E9V@+f5Ph zk+}7`-XyLQ?U;*zp;*0ee16025f6rTCyqogtV>xYXtxN*qahLI|A8^2J27{!PWbgg z-Ry+Z$n}~+`pf-QJdh$OB%w2umwJL8Bj)O96c( zbc!otC>s6+>p)kY=P-o1zQ4CTBs zgL-zy*u&SGBvfexut*=IYS5rXxkS{GyhsEJ#SF4@nKE+J2lBKHC?8PRI||fVr-FjQ EH$UNT=l}o! literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/object/IntHolder.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/object/IntHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..c591ac0b60bc3571755e6dfc9eb0cd65f5f8e5fe GIT binary patch literal 511 zcmZ{g%SyvQ6o&tkrb!#qi&d+r8+UCNX5&ujMkp4FE|lyi=};5W45Ue)%8j51E_?tV zN<6t3M38|wm-)~4&&=o7`v-sv99ht@*G2>TCJsyt3C*pDGD)C0!MFL(>Mep;-ezl0CJ(}kxHDKNUqr4*g1oMpdioe_2&W5Qt(|bGLggqglz!^WmxktC2IuFHG*f4QuqX~m>{J#UCpR1in#4G2n zuqQCx#Tma^=U*UbIfb(Z=O$Xbx4D{eU*l*^-awO+S7^^%X|QS>5Kf!_}}< z!$yZIo-3&Qk*xkZ>V6JKVxQ*Z1=5Y=51JZ}1vc2Gu%s5A%7Z2gt`4Jx)(R5Zj;O(Th#w02a~RqQfkW|lkU7s4HI zkD=D>i;>|Bgd+^mb9mo3I%7Zld(4nLvB$Q5%AhnmEt5WHV!#=4U3<*0rlTJBZmph6 zkz!Z$E!VU>Tl!H@@gM9*hW!;a?mTNU;U1Mr1bs2E4ud}A{-O$N9Vw)Blu%}9EYFR|40*{mTx&cu zu7i07EtzQ0B2-!sjY<;9ijz$R=+w!(ghE>a3hg;q`xCMI>KySmC@&O@VU5l#Nk9;V z0C_@W$t#B<*W{|b@3)?M#*8l(j literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/object/IntHolderWrapper2.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/object/IntHolderWrapper2.class new file mode 100644 index 0000000000000000000000000000000000000000..378abe67887f1c6bf32bee364c61baae04f95e0b GIT binary patch literal 717 zcmaKp%}(1u6ot=COdNs<2|uCbpOi%sAuJ(wMcq_FL<+C~1+jFT5p`rTk#QpRow}e> z0jZUEfId{!GmaCn0b826bA8WukMI2b_xlCF5k3`QW8KC^0U2!0B8M##ZQIzfu`8Gx zdEro<>aeRK!A8s1cW$q%d)n2Vp7LY2*^kFxKMQilK|hGU2&`JO-sbjIca>nF74+5l z@UEkxE3XqWv)IzU7q-19Fy}OB#ovN^!QMMPt|M$Y!Q!0(<;F9l@dufk z^=D)sVf|z>gL$q+Nj^W*6Z+Zy z1JkeJ^F$XDh=K2nWhp#QuPX_>OihIbGHk%fq-_ql3sw2F&5tQNm*iIx!_K%SWePqf HRcrqN=rD*l literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/object/IntHolderWrapper3.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/object/IntHolderWrapper3.class new file mode 100644 index 0000000000000000000000000000000000000000..0ac7baa6b2c1adb6e1783027abd0b39bd2f0db57 GIT binary patch literal 628 zcmaKp%TB^j5QhH)g+eJ;D=MIfae%f6kompN}s9XQ(NVu_a?$K?FNV#8DDnSw=<1E<S6ot>ENz=w?wQ5}y7w+0D%*LJKMko}5E|j>QrbA6gGbJW{DmQ{6xbOjd zDDmV6+{wV)d+vPq+?o0Q`TPQKffENNhJAE!XyeGnv4FLeX{iLnT%dauXK`^YU{2=K zkl{uzc{B*(Ox>32g~}h~B4uS5=t!oa%;QS8MYDK{p9M~XNU!~5sT1w%MWUj@pJ&Bm zE;k#MUkdbAstB8zoyn9_oqJv8k($Mo^Wcv?Pvlm*urYFBp(`-{$5>#$!u?ccEB~$@ zD?tAcXMC;6*Ynnu4KstejUM+t)r{I;bi5A;Z~PA9wPqadd+Y^SlXRbJhicT&aIs6p mzS@-^NP5tE`iz2SmiGqZg^58799|XO+Qw~w)`r)wse@l)8%kaP literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/object/IntWrapper2.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/object/IntWrapper2.class new file mode 100644 index 0000000000000000000000000000000000000000..f81a81f7a824c18ba718fd95ccbabe91ee60cad2 GIT binary patch literal 626 zcmaKp%}(1u6ot>kb{q$X1Op)y3StLd)Kb+Q6&oZ(r0^r9O4k!J1P2pGuEVyk(g*0K z5(ue_K0qIeaAvT86`T9#d%k-#{{Q&*AAm2|uERyg#k%!#KA(H2;)4zwE;e0!6mV{3 zI#U9oE8tzp^m6drSHC8cq&N_;ce{H7ro-%lYt3FVQKz$;p~}C>VaiF+%VL=hWS;20 z9NNWI@m@u`f}?H>(f}?N*@c@5?Io8l*-9SUsEHM`>4b7QG+M2`JN?0U&Uv} zu>hS7u){}l`JxpBnqw+LnJoz3^%)!N&bd)xZiNpJVPM_E4ma-M{4t6}#sD^Bjj^h2 zp~=|fr2VWz3rp-sFn9Q8s8}xP5wqYoC%l96n?(g0SvA9k!Du5~C@}&nFXFzj3Uny8 o1M3$Wp~g6=_Q;XuS%$aBtc`j`-G0OEl-yObE3~gR%L>+>0P4zXz5oCK literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/object/ObjectsTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/object/ObjectsTest.class new file mode 100644 index 0000000000000000000000000000000000000000..8a83cf29d3cd8ed56cc8f0ad8bf5b243c3f73a21 GIT binary patch literal 3441 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 W(0(&j)3L!1LdPw26}K7Eu=xjPb-S7X literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/object/ShallowCloneTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/object/ShallowCloneTest.class new file mode 100644 index 0000000000000000000000000000000000000000..7217d0eead71db73ad0fc7ca55a85c16c85cb274 GIT binary patch literal 1164 zcmb7ETW=CU6#fP%3v`vrrFd!WO)HeP>!oTfwPL}l5v`G?3Gr!IHgw3cOP0mUo6q`d z^Z^o^7@z$g{te@q1yjU^#C@1KbFSa{=FI;1_4ONo4Lpq?iDd=Xg82$5=!?LIv|KV_ ztRSmkHG&Y9Ls*mhy0mCgx-OR+5!}SB5H^B&aT0!8!5sy68G_rw67CLzKb<*b2o&s^ z!4NG8%XragRt@KXS54ByO193;L+%K99w-Cuk!Uk4m2|tQHEMRl*6eD-&|R&3#7)zF zTQF_QI5667j#4+duo$M(uS*U7hHECb>RQ=#gjLUZrMXk5WbsqX48FF`FgLyq)lk~H zSCS!8wmXh)>F`6z);wE&- zGD9Mr8Dh5YM4Su-mfyEsqe*vdcPL}B?=5WYC0&9`S7Gob1q6AkWmq+awe(QFKR5M{ zYS26dhU$iU$juI6p=l~I%n-nF{;u86I*NTzi-y5#`fr59UQ6ONX_%6yAtXvd?Ew-j zAVJSZem>CfAw}zXI%%{s+9y_eV4pqn1zLliGJuODt9=Jt!VI0ln8jt%$l#v{z)$<9 zWB4iw_}LR*Wq(%P!97`b?>HZdeb4Xp=E58ej4fkj{y7XKsdg^P(| z;=!1BXyV^wjBjSCZDY)4XXg9nz3+SPo1eeGegp6jz6%GpGO$omr)>v2E^cF2Eqe~` z2v{RI3b@v5QkHS$H9|)|K|GlmplU$EZNM3G+qu^*dYzO0) zvOUn{qK+IK%WiBZmaE68!MwrU^}j&))z2_KGBS|k zx661MS}cAsEZ z3-uETe}&e`S*5@d_OM3r29XBsTxb0aT{-30-Y={>D4NfeA-=`J&{OV$m_nl1p-fjD e=SW=$Ole3(H}?|wqPZ$>!^k#Nm75F*bd>}NZ`c*Fpb}~%3l>4yJBb?{IUdQG@Kr280#S9r z2k=p-XKZ8Ahtyfz_dWOAxlhkO9|0WVvx6Gm)=|ZdgLl}q@ZQ1)f!b9N&qD#x6)=yY zBvQu$)mFFNr}`>KOs)7)5}wVcgD|}a1~DURz8nT|KS(3(7s0B!jAjB&e<-KkWF#lj zlY>b(R9O5PCBwG51 z77{O{t?Wb3zYA>g7yl-SCT~#VO#}?hgI1NcjXI@6@04+a+UYz%bawAy+|o0!MEM34 zN{b!3z7Ch(R$h%|X7zJ2R9+M-CFXH~Y5sxdWW6r=EH7Z0C6-xYHLzOn^QZ;q)H-)C zu4&}d%q-Z*VBEZ*fZ?sM&WK*_ggRf2%|B4__isvsoXi$i+g>2!6eu?PHn7Ql!IkyY F?O#KGe8~U+ literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/object/SmartPoint.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/object/SmartPoint.class new file mode 100644 index 0000000000000000000000000000000000000000..42de0b3d909d61b7f11ed6ffde04ecca3755aa7f GIT binary patch literal 829 zcmaJzZZLizyAdnJcHEQEu^fjgUlh%x zA5H|y?Or_e2Pg3$_T%m#=p}wr60-Bseey*HtUZB zmg1xzjOPUf^-q(4qg(Vw_J@;>90rR_a6_(>$ljA9`BXEbRDn!iPWp2>My*c4PA8s@ zd%>Mh>B;|QcvHc-aIoXTM#e=}xog-JDE&v6K;dtm0z~3h%$x?vVI(J%yi%+GAx9UR z*y5$6c~dDKBI<~sd>SB6EYZ8n9`e1xXWsh&;g!yj@;1(4yww9a`XWsF41Jcz!7@je zS=pSAA&&wxF3>PSM+zuKfD4?S!+d0}_UwC&*Raf4<0~v<=Dmm6puJK_;|r`K?;TP% zXlE!gG#DCZu+29xjf3)x3k)byyQBgFTZFK&N=j?2U%@&`^i`g1G_j+JdUN1kME9|R zi=_6zsHJFN>fU+2k-*N)dwpy3{nwYT0HS#6fCoVlOAc5N>cI^x ziwHYlLr_A5uTgGpauHhjU{R;u2ORBqXd!SeI~D#61xk4E9y6s2OVvR-gZX zLD1>=QQVVF*3^g<|?)pL4CKhCKc zBa|*EWn)j*ipIWLG2&FXplC&gVc)Yp=4feD<$*3BD|!Xh)oiW!I9Rh<&3(e@$TFg@4LjWC}S8S z4C7sT2jVW=$ zcjWH^ONQQfZwy1eb|MuJOT2+RJyTDoqp2BtV>&H_h7fW85vDOje^LIifF3(W$X=mc zh*n0cZQ&H`lL?QKwVOc!W8}*X0>&{xyBB~+x#diWR;WLCY*bYx&cZoGffxrid!bb?!8hUDQ)X>|+kWEGneVxF54lZ^}A21o0 zq&qnn?3O-gGA>DXad1@VmhWy*nhS7st>EgeppUGblod%w2{WYXJbIC&$aD1LEe7x& zgZKs)eqe}+@UU4L8lOhAp*W`CrJc;iXtdY(JXk-jlV`yUqaS%zs#(V@c>?B$`x8#&KK7vcN!g++v4#6q1YZJ4!zu{sj%;D1hB`?nKGivYD^!QyX|H(@3K literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/operator/ArithOperator.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/operator/ArithOperator.class new file mode 100644 index 0000000000000000000000000000000000000000..8c623d63c6dcbb1e573e222d25fdd6b0a4685957 GIT binary patch literal 1584 zcmah}OK%%h6#i~9%#4jg<44*Q0(DJGos{?;KS&zdG)-}FlR`?MDUXirkvoy?i6-MJ z=>~oTOO`CzfRHNzLaNja2(du$KUj8!`0jYpB*cJ5y65$sd%ij6%>4Y6szO^Hes5R_PdaG$~*=c**bPU&a(pMbIy}#yL^SrrZ zSY3gW$-A{JADI4#~49TFzFZm%OCssfs08f`M8wJZ>PU^;tC zR?Bl}EyJlBEs|ASbH^oOlZbV@=QPX}%X^6t@FC<%-oz?bcwH=qmq=%(jjLN-;Zl!}#nHeVjdo!tQj?l0NJ^u_U z(|;{}I+*d$76!vE*?eFNk^*I!cJ!yDjOp z`5jCQBg7AID!F|8zQepW|2>R2pR?Y7V}vIc8v^I3r6~pFb2E=1zNRvQ^E_40so*v0 zp#cCFkfasBG-l{wve<({8~9^Tp?`u7Ojd4yo(`94A~^)c4R z3w@k86c}e9*+=+TAi}_;GAt665p`H3#>j-;$HcSSBBuuBBBy=%qAy8C(uhp?@?~GX z;>$CX2hCVT)N9EoG(I{T5=J4a1r#mCGqkb}S+ I^F~no8!Iwpe*gdg literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/profiles/HelloCompact1.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/profiles/HelloCompact1.class new file mode 100644 index 0000000000000000000000000000000000000000..17a3cd68dbc5d50412213ae74c9b231c7552e0fc GIT binary patch literal 592 zcmaJ;%TB^j5Iq+PeTae};9FpYE^JIpTwvUg7#EG2VA#02lq=q*?Iop{_*uHp#DyQ= zM;WJugpd%snCYA|J#%LI^ZWG;;2bRrd2E@eqGq6OVH-O-c6IDANCP-{Or9)IDs&%=@3iz6A1I_YE{jYzAqf@ZLKY8tuXnv}`PlJse! zR)7ve$9@3^IAo}&9Sw4oPH)UjHFX>n&_I(R;r?~ZP+Hi$8+gKvm!RJ3Bo+akO-+fY z&UTW@zNdv^T1)VNmae24%P@mJPMUnWMzy`_7-%9#KP-7NpmrD(O{#3ljB@Ve6YMRe zEsFUR)UZbHg;@jTb*fBkph!sa@kJ^|*gG=i><6@kfJIayW6-RHh=~$538#xw%%JiI DI*x=R literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/profiles/RowSetTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/profiles/RowSetTest.class new file mode 100644 index 0000000000000000000000000000000000000000..557672625deaf695d4575cb30a5350cc35e2164c GIT binary patch literal 889 zcmaJ<%W~5|5bU)TE4CHvBu)Z>Jb~Z`pbNK9Tqts&lmM|S7fx$=F;Z-;S#9F*0elPR zTzDP$06vOhcI}F)h(T4_*_r9-nQ7_Q?;k$_Ji((9Tx^uEiLElWvEyR51P6Cr+;efC zq3|?HBK?dZUvHc+IL~EIFjRsl5l3gku23D`9Z+N`kRczOa1|MU8g%sgC}r3RLOJx~ zo{XhGQu19i5UGDG$8DiIBGvmuJLFNquv&i`#QdE51D^E#wpLNn-#2ZGDm~z#mg*zJ zwuM~y>4$-@eB=5JejQzq&D0GqGNEV-af7+Jt6^^IFOCs3#OnnTYX~n7j4Hb%`dEXL4@-gY$}| z8Y;oH$fTt?W)WuqQnxaq&#SG99mPX|9TezaG*1r9s6}UqJfAEhJJA=pkXJ+nRf?G6Ph|6CYu}IyTHldpIQ)$Hp!EfFm$s@*H4b46=Q^<(HiwwX zSf~SHl`^63Z=mUF42jtUHvrO>Pc%{s6XT B(-{B& literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/profiles/SwingTest.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/profiles/SwingTest.class new file mode 100644 index 0000000000000000000000000000000000000000..052fb90ced87598cbcf73b2f9651c9f8739eaeb5 GIT binary patch literal 624 zcmaKp+e*Vg5QhJ4)25Bl9&D?v=MzLL=Egh48$qZ96=FCW=M4d?otP(IQPj6 zCD=SYkt(sZrhgyU&IuJ|nE9=`CkyGwLZja0`EMda{@8c#xE-xt{B$gXS9PpmUB?DC z85aMWiU8wL&O3d_ju^_u8cZ3DhMZU z*(vf&+8OPsoe|hee65pB$6^}Obk@HEFoPU#b5MJ8V%NjRYPhQwttIf7!<3v8Fx r5UIK{M0!jtLZQeE70#kWwn_v^uY40w#4LFl(Mu>3pB|L_1m?Z~hR1>@ literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/regex/AdvanceFindReplace.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/regex/AdvanceFindReplace.class new file mode 100644 index 0000000000000000000000000000000000000000..10d2aa7561352b1ba721dad5a13658620aa657f7 GIT binary patch literal 2070 zcma)7+jA3D9R5z5WVh);+mv47b*)rOOPjV(kQC7tLC{{1mU64gY4)_)ve^xr4TTxU zCw=mP2WOmdoN>?>p7kLxGUJ;s{z;A_erMCtU@Dr)oIU4v|GxA4?f(APFTVmfiYSd2 zani)w22Q2Xs<-c$csGq1%tZUe2cRKF*mqZ{hYPw5Gykx#m%l znF|WiTalrw&)dR8RCFr>2j>bwDYxkan?WvA8|qGO#rM?cT#sAQ`976*WZ>XsN6T^fzf{ ztLy73WDOl*y_}Nrqh)m`5@;{Us8Cc+{gjAep(qPv>rtwa>usaDAfrfyKEntW+N__C zBk45zmLgfWIWNmGQ3i$#T;-J-xMtwGKzb>thMFGDY+o~3V;Y%-m+-QHvAVYEjI0t? z??3U@Q3*ic^BFq|Nv~ayVR)B}+7pvgHc{HrckHb|@3v$`8{Jl(*2~C_ips8(m2&K0 z-JTd9w@WOjVwY8D7g^w#y-b68*mW7IIKc5K+X*~RhIKpIRsw&Fz$~odV+)_)Q$n zDkQOso@48q%-a@x1QyD=gj*Iuu%XfmYHM39F!0|^E6}-{YH@8-71%HhqI&c06x7@) zduXt8qKh(Tswf9_fymd^R+@psW*ld@b%tzcYhyxg<%~AAYnvBg-dX8Wh>3xX=T%pAcynzA^VH1b(1+DL6 zEGBA|WK2^(NWH0P!J8P0Gk;I(VUpI4Z!kiy7Uun$p2MsogM0KJMuIhb#rqgWk~zP` yI3{=vgZK=SI0AzeLF=ASWEz+Qn6(#bcUq`7Zwq*AhCqR$e(HF3e!wy>M%7J!$awh zVl?pqd;?#`cy3#yP=al8&%O6--*?Wr^Xt#|p8zy$%eaL^2+0t}LKv4Zfl0AU$w*;3 zj2WaQs4~LBNE32aEORpEu@FK=LRP{eLvYEoP45YVFOl41@UJ=sXXwhAHs7w63*6n+ z3l`l(a!ygV_H@@2=jNr~J2a0NhI2)yoGKYk$w|5VfFGx}bgy{0Y#T1GSbC9D9)DRk zZHE5DyIe{CsHZI5K1k&~*R&57>xp&ufI{_Lp=JowqY4mhzJ#@zq|9w^mmhn?>By$ zdSQK6k=nyBy6J-69YLNCw7E!M@bheY6JamlFDEuQUuWfZKEmBZ@n8 zBb}p(vge!wj%!R@oxxZ{Zap94Z&<68knd-$_Bq8^aJ6yr;sC^H7KN1YPeCu z%@#!$T}FfdH0Mx8DJ39Ns!oEX(5Z|55rWf)AzBv*)*AvPpl&qa;4bdb$%h@>#~^_X pVvB4CiF+8Eh|$hRG1jOm58$U5OBg{M0kYBXkhFsSC`IVNqrY6rQ-=Tm literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/regex/MatchBoundary.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/regex/MatchBoundary.class new file mode 100644 index 0000000000000000000000000000000000000000..f393799afb12e5a08563d674f21d910895ffdf79 GIT binary patch literal 1208 zcmaJ>>r&HD5dKb^HfanOTP~skQ54Ii#0x4GL;-b%nSzcuopJ1+)Amr(Nt2i+Tpmk* zlo_4z0ell*!f}%#P}4D;oU{Aw+1+n9+w=4Hw;uqO@k+&2+);2>!K{LND)N}iU>*xH z7FEchsSxf<;bN$`j|U1KDtM$|S;k`-PZ-i`rfvG`49WalnL*le>VjdYWZGgkXjO&x zfmba;vL&a+tupt_P(K4D|G;cBOqXg-%V^e}rek=bA&!k5?$-`BoxrYh?_`z2wzz3C zjO9O-n*5L(7PlM5p6{7L?4y#@u!^)WM~qL?9tm@mViCtQoyL`&E{1!Pc6+YP#6 z+7?FzZpl`3~#OH``V7sn%xRQSxce!vff&TTz1l2F(8 zO+sAiQ3SPRJk_v*XEKT!RH_5jlklb{`%PUM7wP|c2U>x9P1ih z;H8WW4V&1a%C^Ho^lq1mdgOUt>Lpm)6-SrU$^U)}hT#ilZ>vpF^LwCfHU{;qts9ob zu#%5=K90=Aq2ACZZC|u#(42sBj&@I*j`5DBApBl}w`fw*)KOvA847)p##5ZNl^hk{ z`AdEzA3sPZa#7{I85v|Z%x}?jj`qt~#w`rf-z?M@Rx6g@*fwp~|?t$-EKDu}Iu#qJ_d5JVIZOC{Ej82K}8M_97mt;^P62oI${ ziqXUe@C|$!Fi=!+73l~v5!{d9fr@cV$mOAmEGDCP zgq#9hMN~Q&a-WjRV-?ewiC|ViUcnqgc;2*4Z-F6@&TKIRmz}C$h!sp*6dSd&aNqK> zMVffQsc>tHyQY-e%AmJv?lTM*Do!oCS9SKBtSffJLAJws2^6cHXW!snWmmXlk9~05n)I%g+8I^yAGia2KYwi9v1O zswK-}80$=aa%sDfo}pd(yzdFRUje5<xz;5GU5c)c#{D#HcLJDy5= zRumZV93Ke7wRD?eha-6;S|d1Hk$PR1^(}geedm$d!fo`@UqyaBpcjV(t=CA((#~iP z-9HBV(lYna8g3~S^wU}M9Wa3FBt?gz~{;aH5HD zK9mfNH=*RiUlI9%=(}U6@k>o;WYn6t+{Bd*LyVNk@IT8blrbs^s8s3-!RjR`ffxZB zARxCeh#3sw4Tf7#*L*mn9io^3Hc5Yzz=p9wzBh?`6zfRQDL^@%Q&;XFNSWp_f>DIX Q$G}~(O8R4zp$GT=0-A(ka{vGU literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/regex/PatternMatcher.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/regex/PatternMatcher.class new file mode 100644 index 0000000000000000000000000000000000000000..64efb800fb406d631b255506e6db48fc515f3eba GIT binary patch literal 1854 zcmaJ?-%}e^6#g#xu}iZ2X!ub}OS`tU4G@U76%}fYAgySi*dSW5>P>bD3(0QWY&zw^ z8J{}i_~1kPqW^%;`jB>X^bhb~a;Ey--8clpFbsR{p8MT%zVn@XHh;bN?N0zV&`4nt zZ|PXjv6#X++|=>5j$1n3Nuhvu)nln2%Xm-2N(yNOy{+sW^>{ypReYf1!xV~G)3L7X zT^$?Bexwlhbd+>#s`rm|Y-#vJ!>0ntn~v)Qw*+F@sV#x{vS-->Lq*56*IV_n?QhC* zjh;-=tH|1x^d0ryamIsPrzv0-D_%XnXL);G-nXmvqx^;p0^4`jWKh|){YA#DOUD%$ z&u$m@khhyzM9< zM~-SUr%Ez#9v1|(ZCS27D9n+4#dj)&P|-PRYdTF+nh#~ou}qsv)=X(xzTIpZ$YEAs zV&AUS4vyj-H^d7VvQU<;RXDI^p(Sv7lO3_ch^|>Mn@-g=m4{>vY~ynS5AcPCFAaPJ zN%;RIUurou%l64Obx-wr!9W=m0~Q!!$3PXk?AWILC|F?e1{~~Bmq;$l4E+Z7K_&E@ zNxA%h5o)NbFuWmsIg__##kJ`5KN;p8`o7p>7W_dR3YZI zSjJeC)ba8goScC3W6L@ZBxR#vt2=lC)2@l@w2%k&z>9`ZU^LsI)CDABBoy;#MrzYg z`D^UgSa*fp1Ffbp{HkyO5>?-8am*4;)$h=|DsV2l+MDu_TZ|RqWqt@J`FR9l5Nb;J zH2IdN6|{-zXAr+|(MKqd44oP-a&1HaT*76(_2U&>p~vL$iE?s;1tG@!C8!w;286bhxyGY2d*N^b20Lp!ZaBq ziJIZ6kDNHY5hsx&B0=2K>F3bbax-o8ugB)&zasTJ()XXi$PBbGIL-eyhT0hJ+Biig z@tuv?HZnhAscV0Pd-RUdWX7WPcpIlPFDb{F$T2}j6gWN~|M{Ok#^OIA%@~=p%%wC? z{DFB4@Hs)IldS&&>%YkQF7c=73hrTUQcM6#fnj9Hh|_Z_$;q3n+>)n1N*%%QC?<%x=CM;Dlo^L*vk@)#``z3wo{x zYSmi3_0mu3q1tEAq;$y|_C9A{zkQkc@$1Vs02w?ABZBb|QXx!)aRF&Xj4){?6}hO$ zR2MEG%aIEstZb(hzZ}99#b?5}ifbI#Ic_inFPoO>&M^4niB$$|)~-l~gL%`Ei_LmT zIxC`7BS|E0mql$=IHtO92{m`!++;YBFWdFhM#bK+Q;w|4SE;3S+mZ$0me-{-O;PK@ zv=|2CPxBk%rAXC;RZSIL$F!=`Dr=yj>{XIoYKD+-q-ev^gj1z_eS3tVAYN*!Xwz;w zWs1fc4AFMPrfb%=p$XTOjzy?geJ}kE>h7W|%Fhd;;Z@5KfA6`r}(Jo$JXk z5TD;u-qDxh>rGeEHu>!)b!VUr+_Y0mwBaswNQye`TTnC_Ql;Ie+K$v)vn0omYj3x? z&l|?Sp{bD#m8eFq*g$7H{=Q*2gnp;KKjA<`Z=pLHAQI_Ory!9Q4z_UU{qOGzh#v~b2z{?We?JZos2-xKj(!3$NHq;1 zL9hyRTOv>j>>UDh3P~KpaRf+v1}EqgB+W8TB1YVgMY1?fB?Pg6({%Dt)Hw{3t)F6F i#aWz#hVx__h3_|s0vvIUg!hbai~?84JxK;WjQs&E2~aNp literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/regex/RegexMatch.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/regex/RegexMatch.class new file mode 100644 index 0000000000000000000000000000000000000000..0523770b7e89f8c43e23443064027483f8c6acf9 GIT binary patch literal 1203 zcmZ`&TT|0e5dKbEnh*lTl!78+0D-hf;{~rER**W*6m-O4MtwSM&y
    7=Qbf8ndY zz-N6Zj?VZ4{85g3(lP~FGm|}g_VVq1yUCxwKYs&Q!!r#AmQ*aOurypiT17_1ii+zR zR*@ZsjT;JXYS6GG#Vr-L<+-Ne4(_VBr{KPV2MqBI$8~~DhNzW3V2EvdWx>>UOp4RXy7m74gx2CFL#;N{8!&S?7++ zFloIjRQY>u*SK4;_XFQ?E9+rR?pFvUIl#>@6avcneYp%uU6yzrFf3dB{(g(B7HtMT z!{~m%OGmrB(Pg6Tdo8~t@{Z)1=(V4fRdpmWL7CZHmL$&|=`b-z9e)tTI&TKT&xPc( zGzJQwn+#jrQ}9s7IyMwM(y@uh3{&SxY_*(PS@=3~ctU_?NJuoz;82($b5q9_wiP_p zv4cFrv|0AZ?|MNe_EaP}|Gx)@@m}p0#i}UL)J~Z?`#2e?pnaqUj5PiBY|nq zM&H~(4hNW{KgOW{2#A6}FhMd!H=9mI=TPPt>>DW&Op=U;#u%nZ*E<2Yh)Z-E#xyRI zMJBrx9iemHh!l+I$`8bhp-{#{sf02jWe<543S}tNhDKN;NDzJsql7s|O(w#MlO0sd z;0nb?aTT-lGK!~ui01f^Axb?=?I_xRp3XXfDNmu~=8@zB6H3Te!vsN;%(I10*L zP2rk~*Oj|r;3ljT7F1l+v83acfVSa!Zn!BBw-$B<5?g-L5tyvFp7U(btvkVUS?@5D zsrU`q*_DB-_D9J?_{!}I6e|tCYqy(z+qe6n44tmyg?2S?y>MHGf%|ryjl0tI1ZJ(5 zm9~5%?T++Xc8x`^wXOz>Hmyu^iIqW%ZL_C91;%TkY`orAdzHV?<;OZuVm0pNtnxX$yxG}bVO^E_w_+ql4$I$#wSkz>r$GSChY6Nk`5=?9VqjhIWU H#BljHfg97% literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/string/CollatorStringComparison.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/string/CollatorStringComparison.class new file mode 100644 index 0000000000000000000000000000000000000000..b2d895d84a36404c597533687eaa3f8ccc6b7585 GIT binary patch literal 1778 zcma)6TXWk)6#mwiSaFn_ayLz@G%dB8i)jb}k`kaPZC#wS;3N>jZ7nOV5?k_EG6VmG z;gx52a60V_&kPUzB!+J#w@vJHrVrZPbM~CG-*+zh=f7uv0a!&PjSN;(cu&KchWFEm z;e#|j#JYwJ4Y$?tqke4SV-26A@hR@4F@r4)chmR`_foi@#t2r`@<2mD?GKgN=NgI{ zwl(ae@F<1H0)4j~*9kTS;@RB3Kw`_Q*aE{v$F+A_^|IaEmE{^WM$xlmZC^GWC3lpG z;ECf4EEFxTo|ya({v`7? zN&CodBZMHERR$fq;95Z2D}_KpM4@{taBBHT$Kb*e7?0ux_Rqmf9O_*{yQPTqyc*rD zaH}{+M+{OBNH)kL5Xfc=y$-z^1$?j+Nb6)cZ%y!arcEp*aaI|VJ=J?Ob@OKBqA=CtLou!oL zF1ROeo_Jzt6uJEi!1~3@}=*LyeQ=^>!MS_;V!{>+{7;z(Uiez!&Df+gJ z)Q+L8Cl;4x5^eOaCI3X)7-&PENK*3@gGwHv9NrJFC12=YAy~!$Bd7WLAVx8SaSUUc zr#XxvN9h(O`D32qk9Habl2b@GBQ&^%>y&iLZ{r5Bj?ywquNeK-a1#qm!ZcQ}$Www5 zb6CPMlH|rY?Qr{>HgQHd$^3?S!hMdBgHwzyv|$)yTo(DYG2X_+?T~ixX7=8}fj}R7U14-2cniQ=`_()q26=;+qwbVdUp(uE@NzR1D&2DD1@#EhA z;f!ANrZ;*K96M7lo#~J04{;ppbCS|jVLCheo^#&wemu|no^zi5^ZOG3OE`>S5{pqR z#V~>QhOvzIO?(i8jzuLtjABKNt4gfJa1*5{J~Huf6zegJ;#LeB_(X|KC2pJe)WjVD zW6klLup|)4<@W`&4Zki0#>;j40Sv%ywbMqZH{bhP#M$F%q|S z=4rI74Xox*trFTxvjK={m<(<(iHRt`cMwAkBUm7$GG7-3ZmACd)40r41b2}kS3&Dd zT)_u(8Yzdl=d@p?Gfh} zx3yAAcbB!uvYyZr+E2*NCG;-hb1AK!(CeK2h-jqr5W_#{;^FgWQ;&LhR54dDMtPBW z;+!Sfi4=>RWp91wN8= zV3h0h%aU!DzVnP3VZ;I%=b5!g+cfmCzcC`76Mn(4B5JwT3n~JlSOvj)MY*Uvr0p39(<<&L(jea~kd`R|4^%ZdNOVkghjF?3!U(0-4;q;*POr>j3S@yUK#_q1PDgxup!4xy&|j9lZ9==ndklf+|o&P z60Y>ZIdGep%7=_Qa!)!gU-4}2q^n2TUDwjrb(ZW337dBQg<2r4f;4K}r$1&8 zPUyr=G|vv#NTBl=CPYjJ6aTXi8wmEc$`7OKxT&+nST%V1;1gZqCX^eGjtl&I=;Pl8 z&;s_4exB!O&OAbCn^z~=NSu}Q4CPm!vtgr0wgeqi}a|=2Ly{yKKX{o294tA z7eq%>tv+IFf!dOa`_Mu?>LU?qspRj3n2)v~(}x}e4=K!{ozQV;{OM>znrAnC1Lz=u zG=|ZMae5}vgDG}&mp#ohxIt literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/string/StringComparison.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/string/StringComparison.class new file mode 100644 index 0000000000000000000000000000000000000000..f7cd24ea50b9adcbc2ced85b28ea0c91267ef56e GIT binary patch literal 1006 zcmah{+int36kUfII518x($acwv0Ay=@qQ`Bq-kPO1FZ=aV}0>JCv^}Qgu%og(r103 zi6(x4A7x!%UOHvz312O?>_{0V9*G3YeSzzAG?O^4jipzg2U)yQ z8NBm)0xPAu-*OuJe#3WqLDy>^IF<0&^jjU?==tp;sawix3oK;blp5-za+>OIUNJ1K zx(6hiJ0UC(Rh`aI#y@x2gWn|=MNU-$RexVrolu{|B8MU22v`-r->tjPJk61s6t|{1 zZA@WWV0Mz9wKsHa9lym|J7Fz}+cxgtuFbjMX9*h*@X*F1Jl1GkAbsjcj@8X&hY!wzX-SrO!GZM%i$?_MstS{U&HV$ z-?7kX;w-T}Oh6KIv=W#{iXL7TF&KOR^#hUDN#hV^DMV4C@;Aitg#qLMaSiih@H3?O z1*S0y6(($^CI+xZ1R82#2DGqM3efT_ND4_{i73b3)+zHj`+CXF-cp)0#s#7XF4DgN^N3%CA#q9KGXD?~SB@ANb4BP9+yC*Ca*62?EdK#cm(t+? literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/string/StringInSwitch.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/string/StringInSwitch.class new file mode 100644 index 0000000000000000000000000000000000000000..06999da1d9e1bac8ecded359053139d0027338cd GIT binary patch literal 1189 zcmah{O-~b16g{skone>)P5}iGiVBvZ6a_y4zt9?D1rv~kZhVx14z%;Iol1;}OZg4{ z0v5&vF3`AeYvP~qH@I}6@w_P!8%bQed+)pNew=&W{rc(YJ8cQV)c@{9#rdyE#VRWVsPmfmv8Pr(7 z`S)EQu@K0@#sj$-;x<4$)`F^43U1ER!zCNxj%tK9lIReKDBngO`bm&lUFCg#j(Fx2 zC->LroX_P9Oxc(QIqa&VNEM{-t01-Pru-Vuia`H=7#3(hpmlzE-7N$SuKIwDt{2t7E$g{zjP0!R z=BeyMeqg|OSC+|BGA!HZChAQcR3hq@K;_kzTbYqn64{X+K8$~}D67T#W^v7CxpnTd znk@0V8ve76dvf?O2DsA>*Bpp~7|=o4$y=6MP&Z{hK*PKs@)1!drbUw$aV-oA!E;cx4+f*-Xri`YqK(x$Xmz6nC)nqpTOWGq z(cQQy``x}1Ta>=-%oo`2VLHuwuy!+hXt|%sN2W*iV87)v#(5$@;v01j#5+Zu9&sXj zNW4KZI=zF|5hoVjnqt$vVa`}Rhf?PtoN7?_Xl0KbbZN6KG+VUUt~)a<8j>|i_&_^i zFFD97r0^Q2{u*BD literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/string/StringLength.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/string/StringLength.class new file mode 100644 index 0000000000000000000000000000000000000000..593119b2f3ba8587d28a020d45d3f6300ac196f5 GIT binary patch literal 1045 zcmaJ=YflqV5IwiucDLKrmMsMzJSvK|yjHN{gO@@=Bw1g$Ylc`;$}i znKA9K?)ZC7+mq+hq!Jx^9f3)^9=5DzBW#9NCu)1afwkLrwi_HohbwH`a=bubq`Yr8 zov)7NJ7=7g{JXF;|x zV4@(9zuZzF^~Ux6P~yu5p5eKQ7Y1H}LyTS~Z+1Pu;kE^`@t~#fOKHl$D%L1tsOu#5^@sz=B++ju*|3MNd z`uYhHpO2BWr8kvhq~6Z2XecZtEWm{C;D zDF3BRK;@Mx|8^SZ$WoSpapd?(kw6*p9ev7!WE(|^viXw<8wiI0`T{}&JosuS!PDKBcE?fyN`~m(b z@k}Zzp=cm;@7#Oln=>=-AFpo!cCb`JALa^}FJM6+f1pC84+Z+x%5?$zIP!dfk(vtq z^Q7JI<15(+SQ)QHt_n{+`Oe_>QmKcEv3MbLeY_KarksWXxNGk@gOQq4;^9$FHjNSG5 zRKJ?8o$mHAgkkon#0WDUmy}V)F2!b@z2z18#Q2-Ck)ezkNJ<%_u88qoUc9WAy$mJm mWuh0QnWdclLzyJS`a03~y#!fG{ZGnNdOE&7?`DR%h1pN(Cu4>H literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/utility/package-info.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/utility/package-info.class new file mode 100644 index 0000000000000000000000000000000000000000..3f46165c1b01d663c3dce56eab84f4f3202201f2 GIT binary patch literal 123 zcmX^0Z`VEs1_nb0c6J6DrG{nC=moXnC+ePmUP3<4l^`ZH7XjS*gh-ObiT+3_t=57#Wy> IG!p|00IfP7=l}o! literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/wrapper/CachedWrapperObjects.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/wrapper/CachedWrapperObjects.class new file mode 100644 index 0000000000000000000000000000000000000000..eee2030f983bcc9582ef31970df7258b528c54ca GIT binary patch literal 1662 zcma)6T~ixX7=BK&WS4YlArvqcZCY#Hv_J&XT0=`esI6##+O$-t7cR+>EGAjH*~Ia} zORv21N9eWA7#us(AJAXW8Lu7xf!>MF*$vHNn2wpud*1WD&-=VzCwczQZ_fba@mUgS z%no7>^9J%sT*74??~j!LdUFuf;tzJxN6{AnfhBd`Ht>Og zI|l9=_)y2Pj*kQqSDl9AFABu1?7D!qiK5extF8K$^d8t-HCj?dw`|weZO>8n zu2J)=PE)`tmfd=8r{eCoxvxBXcUOA3CA(ael}F)iZEHuC{pJGs>$cMn7`Gl5ckH&E ztJ#h1T*>#G#`Z#x-}bi2IC_MeB|7a{`XZ6b4PS0ckHqxN1#&)+d4ZvlZhu~&H zphC_SXuFR`%*U`9`J`pnnilO@<@gjE0+Y#JscpN~l51aB*-TyfRku}_l_X!Fhy3$B{yg~w&i}t%3k>&q4)@R11t!PM-Q&W2PD0xCL%`D4O<&R! zcU!)|Sh(rKciV|>bJ8TWjgo?;0#{l--Y_bAk@R9oa8OX zQ}7(Pum|x|;C_QL5g0YRN!<(qIE@T%gQPl33xma<(D=^*{QWaxsdxw4Qw(ejr}vO3 zzSLIedkTGH4@PRRgXF~yj-^a0Q&c(_VpIfiTp^}@fUf-rjf^My5W@kYgOR8+l_Je> z`d5su2C@+4JjsY@m353tT01K3xPqj$SLK}uA<@KYTydyzUB(b)0tUyELXyKdhD995 z=NQ2^7{#|3$9I^(_uRrSoc#+9_Ad@pjW-{T5O3ieZz=qNw{bog@b7qsT8xo3Sk&T- zm&j7naDmt=w0*22uH&MPDSi>tF|A`}pU#Mts(?!USk BdD;K~ literal 0 HcmV?d00001 diff --git a/BeginningJava8Fundamentals/build/classes/com/jdojo/wrapper/MathUtil.class b/BeginningJava8Fundamentals/build/classes/com/jdojo/wrapper/MathUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..7f86522afb5ec9e5316508a281d73dcb626689aa GIT binary patch literal 1333 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

    +MEppi@B01`yVxPb{<%3U(w?#p(_^7 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set dist.dir + Must set build.classes.dir + Must set dist.javadoc.dir + Must set build.test.classes.dir + Must set build.test.results.dir + Must set build.classes.excludes + Must set dist.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No tests executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set JVM to use for profiling in profiler.info.jvm + Must set profiler agent JVM arguments in profiler.info.jvmargs.agent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + To run this application from the command line without Ant, try: + + java -jar "${dist.jar.resolved}" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + Must select one file in the IDE or set profile.class + This target only works when run from inside the NetBeans IDE. + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + + + Must select some files in the IDE or set test.includes + + + + + Must select one file in the IDE or set run.class + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + Must select some files in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + Must select one file in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + + + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BeginningJava8Fundamentals/nbproject/genfiles.properties b/BeginningJava8Fundamentals/nbproject/genfiles.properties new file mode 100644 index 0000000..03a614f --- /dev/null +++ b/BeginningJava8Fundamentals/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=406ff16f +build.xml.script.CRC32=e027bb77 +build.xml.stylesheet.CRC32=8064a381@1.74.1.48 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=406ff16f +nbproject/build-impl.xml.script.CRC32=0f703210 +nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.74.1.48 diff --git a/BeginningJava8Fundamentals/nbproject/private/config.properties b/BeginningJava8Fundamentals/nbproject/private/config.properties new file mode 100644 index 0000000..e69de29 diff --git a/BeginningJava8Fundamentals/nbproject/private/private.properties b/BeginningJava8Fundamentals/nbproject/private/private.properties new file mode 100644 index 0000000..13c502d --- /dev/null +++ b/BeginningJava8Fundamentals/nbproject/private/private.properties @@ -0,0 +1,6 @@ +compile.on.save=true +do.depend=false +do.jar=true +javac.debug=true +javadoc.preview=true +user.properties.file=C:\\Users\\ksharan\\AppData\\Roaming\\NetBeans\\8.0\\build.properties diff --git a/BeginningJava8Fundamentals/nbproject/private/private.xml b/BeginningJava8Fundamentals/nbproject/private/private.xml new file mode 100644 index 0000000..6807a2b --- /dev/null +++ b/BeginningJava8Fundamentals/nbproject/private/private.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/BeginningJava8Fundamentals/nbproject/project.properties b/BeginningJava8Fundamentals/nbproject/project.properties new file mode 100644 index 0000000..7ff07ee --- /dev/null +++ b/BeginningJava8Fundamentals/nbproject/project.properties @@ -0,0 +1,90 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +application.title=BeginningJava8Fundamentals +application.vendor=ksharan +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.test.classpath=\ + ${run.test.classpath} +# Files in build.classes.dir which should be excluded from distribution jar +dist.archive.excludes= +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/BeginningJava8Fundamentals.jar +dist.javadoc.dir=${dist.dir}/javadoc +endorsed.classpath= +excludes=**/com/jdojo/cls/p1/AccessLevelTest3.java, **/com/jdojo/concepts/MathUtil.java, **/com/jdojo/inheritance/AdderTest.java +includes=** +jar.archive.disabled=${jnlp.enabled} +jar.compress=false +jar.index=${jnlp.enabled} +javac.classpath= +# Space-separated list of extra javac options +javac.compilerargs=\ -Xlint:unchecked +javac.deprecation=false +javac.processorpath=\ + ${javac.classpath} +javac.source=1.8 +javac.target=1.8 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +jnlp.codebase.type=no.codebase +jnlp.descriptor=application +jnlp.enabled=false +jnlp.mixed.code=default +jnlp.offline-allowed=false +jnlp.signed=false +jnlp.signing= +jnlp.signing.alias= +jnlp.signing.keystore= +main.class=com.jdojo.intro.Welcome +# Optional override of default Codebase manifest attribute, use to prevent RIAs from being repurposed +manifest.custom.codebase= +# Optional override of default Permissions manifest attribute (supported values: sandbox, all-permissions) +manifest.custom.permissions= +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +mkdist.disabled=false +platform.active=default_platform +run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +# Space-separated list of JVM arguments used when running the project. +# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. +# To set system properties for unit tests define test-sys-prop.name=value: +run.jvmargs= +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +source.encoding=UTF-8 +src.dir=src +test.src.dir=test diff --git a/BeginningJava8Fundamentals/nbproject/project.xml b/BeginningJava8Fundamentals/nbproject/project.xml new file mode 100644 index 0000000..943db2d --- /dev/null +++ b/BeginningJava8Fundamentals/nbproject/project.xml @@ -0,0 +1,15 @@ + + + org.netbeans.modules.java.j2seproject + + + BeginningJava8Fundamentals + + + + + + + + + diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayBounds.java b/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayBounds.java new file mode 100644 index 0000000..87d3d3b --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayBounds.java @@ -0,0 +1,18 @@ +// ArrayBounds.java +package com.jdojo.array; + +public class ArrayBounds { + public static void main(String[] args) { + int[] test = new int[3]; + + System.out.println("Assigning 12 to the first element"); + test[0] = 12; // index 0 is between 0 and 2. Ok + + System.out.println("Assigning 79 to the fourth element"); + + // index 3 is not between 0 and 2. At runtime, an exception is thrown. + test[3] = 79; + + System.out.println("We will not get here"); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayClass.java b/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayClass.java new file mode 100644 index 0000000..9958256 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayClass.java @@ -0,0 +1,33 @@ +// ArrayClass.java +package com.jdojo.array; + +public class ArrayClass { + public static void main (String[] args){ + int[] iArr = new int[2]; + int[][] iiArr = new int[2][2]; + int[][][] iiiArr = new int[2][2][2]; + + String[] sArr = {"A", "B"} ; + String[][] ssArr = {{"AA"}, {"BB"}} ; + String[][][] sssArr = {} ; // A 3D empty array of string + + // Print the class name for all arrays + System.out.println("int[]:" + getClassName(iArr)); + System.out.println("int[][]:" + getClassName(iiArr)); + System.out.println("int[][][]:" + getClassName(iiiArr)); + System.out.println("String[]:" + getClassName(sArr)); + System.out.println("String[][]:" + getClassName(ssArr)); + System.out.println("String[][][]:" + getClassName(sssArr)); + } + + // Any java object can be passed to getClassName() method. + // Since every array is an object, we can also pass an array to this method. + public static String getClassName(Object obj) { + // Get the reference of its class + Class c = obj.getClass(); + + // Get the name of the class + String className = c.getName(); + return className; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayCopyTest.java b/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayCopyTest.java new file mode 100644 index 0000000..b67f05a --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayCopyTest.java @@ -0,0 +1,52 @@ +// ArrayCopyTest.java +package com.jdojo.array; + +import java.util.Arrays; + +public class ArrayCopyTest { + public static void main(String[] args) { + // Have an array with 5 elements + int[] data = {1, 2, 3, 4, 5 }; + + // Expand the data array to 7 elements + int[] eData = expandArray(data, 7); + + // Truncate the data array to 3 elements + int[] tData = expandArray(data, 3); + + System.out.println("Using for-loop..."); + System.out.println("Original Array: " + Arrays.toString(data)); + System.out.println("Expanded Array: " + Arrays.toString(eData)); + System.out.println("Truncated Array: " + Arrays.toString(tData)); + + // Copy data array to new arrays + eData = new int[9]; + tData = new int[2]; + System.arraycopy(data, 0, eData, 0, 5); + System.arraycopy(data, 0, tData, 0, 2); + + System.out.println("Using System.arraycopy() method..."); + System.out.println("Original Array: " + Arrays.toString(data)); + System.out.println("Expanded Array: " + Arrays.toString(eData)); + System.out.println("Truncated Array: " + Arrays.toString(tData)); + } + + // Uses a for-loop to copy an array + public static int[] expandArray(int[] oldArray, int newLength) { + int originalLength = oldArray.length; + int[] newArray = new int[newLength]; + int elementsToCopy = 0; + + if (originalLength > newLength) { + elementsToCopy = newLength; + } + else { + elementsToCopy = originalLength; + } + + for (int i = 0; i < elementsToCopy; i++) { + newArray[i] = oldArray[i]; + } + return newArray; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayInit.java b/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayInit.java new file mode 100644 index 0000000..972761d --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayInit.java @@ -0,0 +1,32 @@ +// ArrayInit.java +package com.jdojo.array; + +public class ArrayInit { + private boolean[] bArray = new boolean[3]; // An instance variable + + public ArrayInit() { + // Display the initial value for elements of instance variable bArray + for (int i = 0; i < bArray.length; i++) { + System.out.println("bArray[" + i + "]:" + bArray[i]); + } + } + + public static void main(String[] args) { + System.out.println("int array initialization:"); + int[] empId = new int[3]; // A local array variable + for (int i = 0; i < empId.length; i++) { + System.out.println("empId[" + i + "]:" + empId[i]); + } + + System.out.println("boolean array initialization:"); + + // Initial value for bArray elements are displayed inside the constructor + new ArrayInit(); + + System.out.println("Reference type array initialization:"); + String[] name = new String[3]; + for (int i = 0; i < name.length; i++) { + System.out.println("name[" + i + "]:" + name[i]); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayListToArray.java b/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayListToArray.java new file mode 100644 index 0000000..0fc806a --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/ArrayListToArray.java @@ -0,0 +1,46 @@ +// ArrayListToArray.java +package com.jdojo.array; + +import java.util.ArrayList; +import java.util.Arrays; + +public class ArrayListToArray { + public static void main(String[] args){ + ArrayList al = new ArrayList(); + al.add("cat"); + al.add("dog"); + al.add("rat"); + + // Print the content of arrayList + System.out.println("ArrayList:" + al); + + // Create an array of the same length as the ArrayList + String[] s1 = new String[al.size()]; + + // Copy the ArrayList elements to the array + String[] s2 = al.toArray(s1); + + // s1 has enough space to copy all ArrayList elements. + // al.toArray(s1) returns s1 itself + System.out.println("s1 == s2:" + (s1 == s2)); + System.out.println("s1:" + Arrays.toString(s1)); + System.out.println("s2:" + Arrays.toString(s2)); + + + // Create an array of string with 1 element. + s1 = new String[1]; + s1[0] = "hello" ; // Store hello in first element + + // Copy ArrayList to the array s1 + s2 = al.toArray(s1); + + /* Since s1 doesn't have sufficient space to copy all ArrayList elements, + al.toArray(s1) creates a new String array with 3 elements in it. All elements of + arraylist are copied to new array. Finally, new array is returned. Here, s1 == + s2 is false. s1 will be untouched by the method call. + */ + System.out.println("s1 == s2:" + (s1 == s2)); + System.out.println("s1:" + Arrays.toString(s1)); + System.out.println("s2:" + Arrays.toString(s2)); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/Calc.java b/BeginningJava8Fundamentals/src/com/jdojo/array/Calc.java new file mode 100644 index 0000000..8f4e4c3 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/Calc.java @@ -0,0 +1,73 @@ +// Calc.java +package com.jdojo.array; + +import java.util.Arrays; + +public class Calc { + public static void main(String[] args) { + // Print the list of commandline argument + System.out.println(Arrays.toString(args)); + + // Make sure we received three arguments and the + // the second argument has only one character to indicate operation. + if (!(args.length == 3 && args[1].length() == 1)) { + printUsage(); + return; // Stop the program here + } + + // Parse the two number operands. Place the parsing code inside a try-catch, + // so we will handle the error in case both operands are not numbers. + double n1 = 0.0; + double n2 = 0.0; + try { + n1 = Double.parseDouble(args[0]); + n2 = Double.parseDouble(args[2]); + } + catch (NumberFormatException e) { + System.out.println("Both operands must be a number"); + printUsage(); + return; // Stop the program here + } + + String operation = args[1]; + double result = compute(n1, n2, operation); + + // Print the result + System.out.println(args[0] + args[1] + args[2] + "=" + result); + } + + public static double compute(double n1, double n2, String operation) + { + // Initialize the result with not-a-number + double result = Double.NaN; + + switch (operation) { + case "+": + result = n1 + n2; + break; + case "-": + result = n1 - n2; + break; + case "*": + result = n1 * n2; + break; + case "/": + result = n1 / n2; + break; + default: + System.out.println("Invalid operation:" + operation); + } + + return result; + } + + public static void printUsage() { + System.out.println("Usage: java com.jdojo.array.Calc expr"); + System.out.println("Where expr could be:"); + System.out.println("n1 + n1"); + System.out.println("n1 - n2"); + System.out.println("n1 * n2"); + System.out.println("n1 / n2"); + System.out.println("n1 and n2 are two numbers"); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/CommandLine.java b/BeginningJava8Fundamentals/src/com/jdojo/array/CommandLine.java new file mode 100644 index 0000000..a36f6bd --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/CommandLine.java @@ -0,0 +1,14 @@ +// CommandLine.java +package com.jdojo.array; + +public class CommandLine { + public static void main(String[] args) { + // args contains all command-line arguments + System.out.println("Total Arguments:" + args.length); + + // Display all arguments + for(int i = 0 ; i < args.length; i++) { + System.out.println("Argument #" + (i+1) + ":" + args[i]); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/Item.java b/BeginningJava8Fundamentals/src/com/jdojo/array/Item.java new file mode 100644 index 0000000..a806f7d --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/Item.java @@ -0,0 +1,24 @@ +// Item.java +package com.jdojo.array; + +public class Item { + private double price; + private String name; + + public Item (String name, double initialPrice) { + this.name = name; + this.price = initialPrice; + } + + public double getPrice() { + return this.price; + } + + public void setPrice(double newPrice ) { + this.price = newPrice; + } + + public String toString() { + return "[" + this.name + ", " + this.price + "]"; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/MDAccess.java b/BeginningJava8Fundamentals/src/com/jdojo/array/MDAccess.java new file mode 100644 index 0000000..fe69c8b --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/MDAccess.java @@ -0,0 +1,28 @@ +// MDAccess.java +package com.jdojo.array; + +public class MDAccess { + public static void main(String[] args){ + int[][] ra = new int[3][]; + ra[0] = new int[2]; + ra[1] = new int[1]; + ra[2] = new int[3]; + + // Populate the ragged array using for loops + for(int i = 0; i < ra.length; i++) { + for(int j = 0; j < ra[i].length; j++){ + ra[i][j] = i + j; + } + } + + // Print the array using for loops + for(int i = 0; i < ra.length; i++) { + for (int j = 0; j < ra[i].length; j++){ + System.out.print(ra[i][j] + "\t"); + } + + // Add a new line after each row is printed + System.out.println(); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/ModifyArrayElementState.java b/BeginningJava8Fundamentals/src/com/jdojo/array/ModifyArrayElementState.java new file mode 100644 index 0000000..4ef8ed0 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/ModifyArrayElementState.java @@ -0,0 +1,23 @@ +// ModifyArrayElementState.java +package com.jdojo.array; + +public class ModifyArrayElementState { + public static void main(String[] args) { + Item[] myItems = {new Item("Pen", 25.11), new Item("Pencil", 0.10)}; + System.out.println("Before method call #1:" + myItems[0]); + System.out.println("Before method call #2:" + myItems[1]); + + // Call the method passing the array of Item + tryStateChange(myItems); + + System.out.println("After method call #1:" + myItems[0]); + System.out.println("After method call #2:" + myItems[1]); + } + + public static void tryStateChange(Item[] allItems) { + if (allItems != null && allItems.length > 0) { + // Change the price of first item to 10.38 + allItems[0].setPrice(10.38); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/ModifyArrayElements.java b/BeginningJava8Fundamentals/src/com/jdojo/array/ModifyArrayElements.java new file mode 100644 index 0000000..0f033a4 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/ModifyArrayElements.java @@ -0,0 +1,35 @@ +// ModifyArrayElements.java +package com.jdojo.array; + +import java.util.Arrays; + +public class ModifyArrayElements { + + public static void main(String[] args) { + int[] origNum = {10, 89, 7}; + String[] origNames = {"Mike", "John"}; + System.out.println("Before method call, origNum:" + Arrays.toString(origNum)); + System.out.println("Before method call, origNames:" + Arrays.toString(origNames)); + + // Call methods passing the arrays + tryElementChange(origNum); + tryElementChange(origNames); + + System.out.println("After method call, origNum:" + Arrays.toString(origNum)); + System.out.println("After method call, origNames:" + Arrays.toString(origNames)); + } + + public static void tryElementChange(int[] num) { + // If array has at least one element, store 1116 in its first element + if (num != null && num.length > 0) { + num[0] = 1116; + } + } + + public static void tryElementChange(String[] names) { + // If array has at least one element, store "Twinkle" in its first element + if (names != null && names.length > 0) { + names[0] = "Twinkle"; + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/ModifyArrayParam.java b/BeginningJava8Fundamentals/src/com/jdojo/array/ModifyArrayParam.java new file mode 100644 index 0000000..038ab6e --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/ModifyArrayParam.java @@ -0,0 +1,25 @@ +// ModifyArrayParam.java +package com.jdojo.array; + +import java.util.Arrays; + +public class ModifyArrayParam { + public static void main(String[] args) { + int[] origNum = {101, 307, 78}; + System.out.println("Before method call:" + Arrays.toString(origNum)); + + // Pass the array to the method + tryArrayChange(origNum); + + System.out.println("After method call:" + Arrays.toString(origNum)); + } + + public static void tryArrayChange(int[] num) { + System.out.println("Inside method-1:" + Arrays.toString(num)); + + // Create and store a new int array in num + num = new int[]{10, 20}; + + System.out.println("Inside method–2:" + Arrays.toString(num)); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/NameIterator.java b/BeginningJava8Fundamentals/src/com/jdojo/array/NameIterator.java new file mode 100644 index 0000000..98243d9 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/NameIterator.java @@ -0,0 +1,39 @@ +// NameIterator.java +package com.jdojo.array; + +import java.util.ArrayList; + +public class NameIterator { + public static void main(String[] args) { + // Create an ArrayList of String + ArrayList nameList = new ArrayList(); + + //Add some names + nameList.add("Christopher"); + nameList.add("Kathleen"); + nameList.add("Ann"); + + // Get the count of names in the list + int count = nameList.size(); + + // Let us print the name list + System.out.println("List of names..."); + for(int i = 0; i < count; i++) { + String name = nameList.get(i); + System.out.println(name); + } + + // Let us remove Kathleen from the list + nameList.remove("Kathleen"); + + // Get the count of names in the list again + count = nameList.size(); + + // Let us print the name list again + System.out.println("After removing Kathleen..."); + for(int i = 0; i < count; i++) { + String name = nameList.get(i); + System.out.println(name); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/RaggedArray.java b/BeginningJava8Fundamentals/src/com/jdojo/array/RaggedArray.java new file mode 100644 index 0000000..c4e3664 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/RaggedArray.java @@ -0,0 +1,31 @@ +// RaggedArray.java +package com.jdojo.array; + +public class RaggedArray { + public static void main(String[] args) { + // Create a two-dimensional array of 3 rows + int[][] raggedArr = new int[3][]; + + // Add 2 columns to the first row + raggedArr[0] = new int[2]; + + // Add 1 column to the second row + raggedArr[1] = new int[1]; + + // Add 3 columns to the third row + raggedArr[2] = new int[3]; + + // Assign values to all elements of raggedArr + raggedArr[0][0] = 1; + raggedArr[0][1] = 2; + raggedArr[1][0] = 3; + raggedArr[2][0] = 4; + raggedArr[2][1] = 5; + raggedArr[2][2] = 6; + + // Print all elements. One row at one line + System.out.println(raggedArr[0][0] + "\t" + raggedArr[0][1]); + System.out.println(raggedArr[1][0]); + System.out.println(raggedArr[2][0] + "\t" + raggedArr[2][1] + "\t" + raggedArr[2][2]); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/array/Swap.java b/BeginningJava8Fundamentals/src/com/jdojo/array/Swap.java new file mode 100644 index 0000000..075a7bd --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/array/Swap.java @@ -0,0 +1,30 @@ +// Swap.java +package com.jdojo.array; + +public class Swap { + public static void main(String[] args) { + int[] num = {17, 80}; + + System.out.println("Before swap"); + System.out.println("#1: " + num[0]); + System.out.println("#2: " + num[1]); + + // Call the swpa() method passing the num array + swap(num); + + System.out.println("After swap"); + System.out.println("#1: " + num[0]); + System.out.println("#2: " + num[1]); + } + + // The swap() method accepts an int array as argument and swaps the values + // if array contains two values. + public static void swap (int[] source) { + if (source != null && source.length == 2) { + // Swap the first and the second elements + int temp = source[0]; + source[0] = source[1]; + source[1] = temp; + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/assertion/AssertTest.java b/BeginningJava8Fundamentals/src/com/jdojo/assertion/AssertTest.java new file mode 100644 index 0000000..644bb93 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/assertion/AssertTest.java @@ -0,0 +1,9 @@ +// AssertTest.java +package com.jdojo.assertion; + +public class AssertTest { + public static void main(String[] args) { + int x = 10 + 15; + assert x == 100:"x = " + x; // should throw an AssertionError + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/assertion/AssertionStatusTest.java b/BeginningJava8Fundamentals/src/com/jdojo/assertion/AssertionStatusTest.java new file mode 100644 index 0000000..40d358b --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/assertion/AssertionStatusTest.java @@ -0,0 +1,15 @@ +// AssertionStatusTest.java +package com.jdojo.assertion; + +public class AssertionStatusTest { + public static void main(String[] args) { + boolean enabled = false; + assert enabled = true; + if (enabled) { + System.out.println("Assertion is enabled."); + } + else { + System.out.println("Assertion is disabled."); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevel.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevel.java new file mode 100644 index 0000000..a8d83c1 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevel.java @@ -0,0 +1,33 @@ +// AccessLevel.java +package com.jdojo.cls; + +public class AccessLevel { + private int v1 = 100; + int v2 = 200; + protected int v3 = 300; + public int v4 = 400; + + private void m1() { + System.out.println("Inside m1():"); + System.out.println("v1 = " + v1 + ", v2 = " + v2 + + ", v3 = " + v3 + ", v4 = " + v4); + } + + void m2() { + System.out.println("Inside m2():"); + System.out.println("v1 = " + v1 + ", v2 = " + v2 + + ", v3 = " + v3 + ", v4 = " + v4); + } + + protected void m3() { + System.out.println("Inside m3():"); + System.out.println("v1 = " + v1 + ", v2 = " + v2 + + ", v3 = " + v3 + ", v4 = " + v4); + } + + public void m4() { + System.out.println("Inside m4():"); + System.out.println("v1 = " + v1 + ", v2 = " + v2 + + ", v3 = " + v3 + ", v4 = " + v4); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevel/AccessLevelTest2.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevel/AccessLevelTest2.java new file mode 100644 index 0000000..cc7127f --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevel/AccessLevelTest2.java @@ -0,0 +1,32 @@ +// AccessLevelTest2.java +package com.jdojo.cls.p1; + +import com.jdojo.cls.AccessLevel; + +public class AccessLevelTest2 { + public static void main(String[] args) { + AccessLevel al = new AccessLevel(); + + //int a = al.v1; /* A compiler error */ + //int b = al.v2; /* A compiler error */ + //int c = al.v3; /* A compiler error */ + int d = al.v4; + + System.out.println("d = " + d); + + //al.m1(); /* A compiler error */ + //al.m2(); /* A compiler error */ + //al.m3(); /* A compiler error */ + al.m4(); + + /* Modify the values of instance variables */ + //al.v2 = 20; /* A compiler error */ + //al.v3 = 30; /* A compiler error */ + al.v4 = 40; + + System.out.println("After modifying v4..."); + //al.m2(); /* A compiler error */ + //al.m3(); /* A compiler error */ + al.m4(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevel2.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevel2.java new file mode 100644 index 0000000..d1e06f7 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevel2.java @@ -0,0 +1,6 @@ +// AccessLevel2.java +package com.jdojo.cls; + +class AccessLevel2 { + public static int v1 = 600; +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevelTest1.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevelTest1.java new file mode 100644 index 0000000..ef43464 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/AccessLevelTest1.java @@ -0,0 +1,31 @@ +// AccessLevelTest1.java +package com.jdojo.cls; + +public class AccessLevelTest1 { + public static void main(String[] args) { + AccessLevel al = new AccessLevel(); + + // int a = al.v1; /* A compiler error */ + int b = al.v2; + int c = al.v3; + int d = al.v4; + + System.out.println("b = " + b + ", c = " + c + ", d = " + d); + + //al.m1(); /* A compiler error */ + al.m2(); + al.m3(); + al.m4(); + + /* Modify the values of instance variables */ + al.v2 = 20; + al.v3 = 30; + al.v4 = 40; + + System.out.println("\nAfter modifying v2, v3 and v4"); + + al.m2(); + al.m3(); + al.m4(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/Account.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/Account.java new file mode 100644 index 0000000..9698dc6 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/Account.java @@ -0,0 +1,43 @@ +// Account.java +package com.jdojo.cls; + +public class Account { + private double balance; + + public double getBalance() { + // Return the balance of this account + return this.balance; + } + + public int credit(double amount) { + // Make sure credit amount is not negative, NaN or infinity + if (amount < 0.0 || Double.isNaN(amount) || Double.isInfinite(amount)) { + System.out.println("Invalid credit amount: " + amount); + return -1; + } + + // Credit the amount + System.out.println("Crediting amount: " + amount); + this.balance = this.balance + amount; + return 1; + } + + public int debit(double amount) { + // Make sure the debit amount is not negative, NaN or infinity */ + if (amount < 0.0 || Double.isNaN(amount) || Double.isInfinite(amount)) { + System.out.println("Invalid debit amount: " + amount); + return -1; + } + + // Make sure a minimum balance of zero is maintained + if (this.balance < amount) { + System.out.println("Insufficient fund. Debit attempted: " + amount); + return -1; + } + + // Debit the amount + System.out.println("Debiting amount: " + amount); + this.balance = this.balance - amount; + return 1; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/AccountTest.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/AccountTest.java new file mode 100644 index 0000000..c062bcc --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/AccountTest.java @@ -0,0 +1,30 @@ +// AccountTest.java +package com.jdojo.cls; + +public class AccountTest { + public static void main(String[] args) { + Account ac = new Account(); + double balance = ac.getBalance(); + System.out.println("Balance = " + balance); + + // Credit and debit some amount + ac.credit(234.78); + ac.debit(100.12); + + balance = ac.getBalance(); + System.out.println("Balance = " + balance); + + // Attempt to credit and debit invalid amounts + ac.credit(-234.90); + ac.debit(Double.POSITIVE_INFINITY); + + balance = ac.getBalance(); + System.out.println("Balance = " + balance); + + // Attempt to debit more than the balance + ac.debit(2000.00); + + balance = ac.getBalance(); + System.out.println("Balance = " + balance); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/BadSwapTest.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/BadSwapTest.java new file mode 100644 index 0000000..dc14d6f --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/BadSwapTest.java @@ -0,0 +1,26 @@ +// BadSwapTest.java +package com.jdojo.cls; + +public class BadSwapTest { + public static void swap(int x, int y) { + System.out.println("#2: x = " + x + ", y = " + y); + + int temp = x; + x = y; + y = temp; + + System.out.println("#3: x = " + x + ", y = " + y); + } + + public static void main(String[] args) { + int a = 19; + int b = 37; + + System.out.println("#1: a = " + a + ", b = " + b); + + // Call the swap() method to swap values of a and b + BadSwapTest.swap(a, b); + + System.out.println("#4: a = " + a + ", b = " + b); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/Car.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/Car.java new file mode 100644 index 0000000..f766860 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/Car.java @@ -0,0 +1,8 @@ +// Car.java +package com.jdojo.cls; + +public class Car { + public String model = "Unknown"; + public int year = 2000; + public double price = 0.0; +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/Cat.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/Cat.java new file mode 100644 index 0000000..de2dcfd --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/Cat.java @@ -0,0 +1,8 @@ +// Cat.java +package com.jdojo.cls; + +public class Cat { + public Cat() { + System.out.println("Meow..."); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/CatTest.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/CatTest.java new file mode 100644 index 0000000..f5953b8 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/CatTest.java @@ -0,0 +1,12 @@ +// CatTest.java +package com.jdojo.cls; + +public class CatTest { + public static void main(String[] args) { + // Create a Cat object and ignore its reference + new Cat(); + + // Create another Cat object and store its reference in c + Cat c = new Cat(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/DefaultInit.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/DefaultInit.java new file mode 100644 index 0000000..ed2e2d1 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/DefaultInit.java @@ -0,0 +1,28 @@ +// DefaultInit.java +package com.jdojo.cls; + +class DefaultInit { + byte b; + short s; + int i; + long l; + float f; + double d; + boolean bool; + String str; + + public static void main(String[] args) { + // Create an object of DefaultInit class + DefaultInit obj = new DefaultInit(); + + // Print the default values for all instance variables + System.out.println("byte is initialized to " + obj.l); + System.out.println("short is initialized to " + obj.s); + System.out.println("int is initialized to " + obj.i); + System.out.println("long is initialized to " + obj.l); + System.out.println("float is initialized to " + obj.f); + System.out.println("double is initialized to " + obj.d); + System.out.println("boolean is initialized to " + obj.bool); + System.out.println("String is initialized to " + obj.str); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/Dog.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/Dog.java new file mode 100644 index 0000000..771f225 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/Dog.java @@ -0,0 +1,14 @@ +// Dog.java +package com.jdojo.cls; + +public class Dog { + // Constructor #1 + public Dog() { + System.out.println("A dog is created."); + } + + // Constructor #2 + public Dog(String name) { + System.out.println("A dog named " + name + " is created."); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/DogTest.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/DogTest.java new file mode 100644 index 0000000..d8060f1 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/DogTest.java @@ -0,0 +1,9 @@ +// DogTest.java +package com.jdojo.cls; + +public class DogTest { + public static void main(String[] args) { + Dog d1 = new Dog(); // Uses Constructor #1 + Dog d2 = new Dog ("Canis"); // Uses Constructor #2 + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/FieldAccessTest.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/FieldAccessTest.java new file mode 100644 index 0000000..3782fb8 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/FieldAccessTest.java @@ -0,0 +1,32 @@ +// FieldAccessTest.java +package com.jdojo.cls; + +class FieldAccessTest { + public static void main(String[] args) { + // Create an instance of Human class + Human jack = new Human(); + + // Increase count by one + Human.count++; + + // Assign values to name and gender + jack.name = "Jack Parker"; + jack.gender = "Male"; + + // Read and print the values of name, gender and count + String jackName = jack.name; + String jackGender = jack.gender; + long population = Human.count; + + System.out.println("Name: " + jackName); + System.out.println("Gender: " + jackGender); + System.out.println("Population: " + population); + + // Change the name + jack.name = "Jackie Parker"; + + // Read and print the changed name + String changedName = jack.name; + System.out.println("Changed Name: " + changedName); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/Human.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/Human.java new file mode 100644 index 0000000..1993f94 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/Human.java @@ -0,0 +1,8 @@ +// Human.java +package com.jdojo.cls; + +public class Human { + String name; // Instance variable + String gender; // Instance variable + static long count; // Class variable +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/InstanceInitializer.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/InstanceInitializer.java new file mode 100644 index 0000000..32f0e93 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/InstanceInitializer.java @@ -0,0 +1,20 @@ +// InstanceInitializer.java +package com.jdojo.cls; + +public class InstanceInitializer { + { + System.out.println("Inside instance initializer 1."); + } + + { + System.out.println("Inside instance initializer 2."); + } + + public InstanceInitializer() { + System.out.println("Inside no-args constructor."); + } + + public static void main(String[] args) { + InstanceInitializer ii = new InstanceInitializer(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/MainTest1.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/MainTest1.java new file mode 100644 index 0000000..62f9a28 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/MainTest1.java @@ -0,0 +1,8 @@ +// MainTest1.java +package com.jdojo.cls; + +public class MainTest1 { + public static void main(String[] args) { + System.out.println("Inside main() method of the MainTest1 class."); + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/MainTest2.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/MainTest2.java new file mode 100644 index 0000000..8fe2fd0 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/MainTest2.java @@ -0,0 +1,8 @@ +// MainTest2.java +package com.jdojo.cls; + +public class MainTest2 { + public static void main(String[] args) { + MainTest1.main(args); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/MathUtil5.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/MathUtil5.java new file mode 100644 index 0000000..e3d2ab5 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/MathUtil5.java @@ -0,0 +1,22 @@ +// MathUtil5.java +package com.jdojo.cls; + +public class MathUtil5 { + public static int max(int n1, int n2, int... num) { + // Initialize max to the maximu of n1 and n2 + int max = (n1 > n2 ? n1 : n2); + + for(int i = 0; i < num.length; i++) { + if (num[i] > max) { + max = num[i]; + } + } + return max; + } + + public static void main(String[] args) { + System.out.println("max(7, 9) = " + MathUtil5.max(7, 9)); + System.out.println("max(70, 19, 30) = " + MathUtil5.max(70, 19, 30)); + System.out.println("max(-7, -1, 3) = " + MathUtil5.max(-70, -1, 3)); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/MethodType.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/MethodType.java new file mode 100644 index 0000000..4073383 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/MethodType.java @@ -0,0 +1,25 @@ +// MethodType.java +package com.jdojo.cls; + +public class MethodType { + static int m = 100; // A static variable + int n = 200; // An instance variable + + // Declare a static method + static void printM() { + + /* We can refer to only static variable m in this method + because we are inside a static method */ + + System.out.println("printM() - m = " + m); + + /* System.out.println("printM() - n = " + n); */ /* A Compiler error */ + } + + // Declare an instance method + void printMN() { + /* We can refer to both static and instance variables m and n in this method */ + System.out.println("printMN() - m = " + m); + System.out.println("printMN() - n = " + n); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/MethodTypeTest.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/MethodTypeTest.java new file mode 100644 index 0000000..25fc4b3 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/MethodTypeTest.java @@ -0,0 +1,24 @@ +// MethodTypeTest.java +package com.jdojo.cls; + +public class MethodTypeTest { + public static void main(String[] args) { + // Create an instance of the MethodTYpe class + MethodType mt = new MethodType(); + + System.out.println("Invoking instance method..."); + + // Invoke the instance method + mt.printMN(); + + System.out.println("Invoking class method on class name..."); + + // Invoke the class method using the class name + MethodType.printM(); + + System.out.println("Invoking class method on an instance..."); + + // Invoke the class method using the instance reference + mt.printM(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/PassByConstantValueTest.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/PassByConstantValueTest.java new file mode 100644 index 0000000..b904af9 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/PassByConstantValueTest.java @@ -0,0 +1,24 @@ +// PassByConstantValueTest.java +package com.jdojo.cls; + +public class PassByConstantValueTest { + // x uses pass by constant value and y uses pass by value + public static void test(final int x, int y) { + System.out.println("#2: x = " + x + ", y = " + y); + + /* Uncommenting following statement will generate a compiler error */ + // x = 79; /* Cannot change x. It is passed by constant value */ + + y = 223; // Ok to change y + + System.out.println("#3: x = " + x + ", y = " + y); + } + + public static void main(String[] args) { + int a = 19; + int b = 37; + System.out.println("#1: a = " + a + ", b = " + b); + PassByConstantValueTest.test(a, b); + System.out.println("#4: a = " + a + ", b = " + b); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/PassByReferenceValueTest.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/PassByReferenceValueTest.java new file mode 100644 index 0000000..526dc9b --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/PassByReferenceValueTest.java @@ -0,0 +1,37 @@ +// PassByReferenceValueTest.java +package com.jdojo.cls; + +public class PassByReferenceValueTest { + public static void main(String[] args) { + // Create a Car object and assign its reference to myCar + Car myCar = new Car(); + + // Change model, year and price of Car object using myCar + myCar.model = "Civic LX"; + myCar.year = 1999; + myCar.price = 16000.0; + + System.out.println("#1: model = " + myCar.model + + ", year = " + myCar.year + + ", price = " + myCar.price); + + PassByReferenceValueTest.test(myCar); + + System.out.println("#4: model = " + myCar.model + + ", year = " + myCar.year + + ", price = " + myCar.price); + } + + public static void test(Car xyCar) { + System.out.println("#2: model = " + xyCar.model + + ", year = " + xyCar.year + + ", price = " + xyCar.price); + + // Let us make xyCar refer to a new Car object + xyCar = new Car(); + + System.out.println("#3: model = " + xyCar.model + + ", year = " + xyCar.year + + ", price = " + xyCar.price); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/PassByReferenceValueTest2.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/PassByReferenceValueTest2.java new file mode 100644 index 0000000..445e373 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/PassByReferenceValueTest2.java @@ -0,0 +1,17 @@ +// PassByReferenceValueTest2.java +package com.jdojo.cls; + +public class PassByReferenceValueTest2 { + public static void changeString(String s2) { + System.out.println("#2: s2 = " + s2); + s2 = s2 + " there"; + System.out.println("#3: s2 = " + s2); + } + + public static void main(String[] args) { + String s1 = "hi"; + System.out.println("#1: s1 = " + s1); + PassByReferenceValueTest2.changeString(s1); + System.out.println("#4: s1 = " + s1); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/SmartDog.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/SmartDog.java new file mode 100644 index 0000000..6cf3caf --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/SmartDog.java @@ -0,0 +1,54 @@ +// SmartDog.java +package com.jdojo.cls; + +public class SmartDog { + private String name; + private double price; + + public SmartDog() { + // Initialize the name to “Unknown” and the price to 0.0 + this.name = "Unknown"; + this.price = 0.0; + + System.out.println("Using SmartDog() constructor"); + } + + public SmartDog(String name, double price) { + // Initialize name and price instance variables + // with the name and price parameters + this.name = name; + this.price = price; + + System.out.println("Using SmartDog(String, double) constructor"); + } + + public void bark() { + System.out.println(name + " is barking..."); + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return this.name; + } + + public void setPrice(double price) { + this.price = price; + } + + public double getPrice() { + return this.price; + } + + public void printDetails(){ + System.out.print("Name: " + this.name ); + if (price > 0.0) { + System.out.println(", price: " + this.price ); + } + else { + System.out.println(", price: Free" ); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/SmartDogTest.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/SmartDogTest.java new file mode 100644 index 0000000..3b66a42 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/SmartDogTest.java @@ -0,0 +1,30 @@ +// SmartDogTest.java +package com.jdojo.cls; + +public class SmartDogTest { + public static void main(String[] args) { + // Create two SmartDog objects + SmartDog sd1 = new SmartDog(); + SmartDog sd2 = new SmartDog("Nova", 219.2); + + // Print details about the two dogs + sd1.printDetails(); + sd2.printDetails(); + + // Make them bark + sd1.bark(); + sd2.bark(); + + // Change the name and price of Unknown dog + sd1.setName("Opal"); + sd1.setPrice(321.80); + + // Print details again + sd1.printDetails(); + sd2.printDetails(); + + // Make them bark one more time + sd1.bark(); + sd2.bark(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/StaticImportTest.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/StaticImportTest.java new file mode 100644 index 0000000..2155b5b --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/StaticImportTest.java @@ -0,0 +1,10 @@ +// StaticImportTest.java +package com.jdojo.cls; + +import static java.lang.System.out; + +public class StaticImportTest { + public static void main(String[] args) { + out.println("Hello static import!"); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/StaticImportTest2.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/StaticImportTest2.java new file mode 100644 index 0000000..3d4ad83 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/StaticImportTest2.java @@ -0,0 +1,18 @@ +// StaticImportTest2.java +package com.jdojo.cls; + +import static java.lang.Math.PI; +import static java.lang.Math.sqrt; +import static java.lang.System.out; + +public class StaticImportTest2 { + public static void main(String[] args) { + double radius = 2.9; + double area = PI * radius * radius; + + out.println("Value of PI is: " + PI); + out.println("Radius of circle: " + radius); + out.println("Area of circle: " + area); + out.println("Square root of 2.0: " + sqrt(2.0)); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/StaticInitializer.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/StaticInitializer.java new file mode 100644 index 0000000..aed668f --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/StaticInitializer.java @@ -0,0 +1,39 @@ +// StaticInitializer.java +package com.jdojo.cls; + +public class StaticInitializer { + private static int num; + + // A static initializer. Note the use of the keyword static below. + static { + num = 1245; + System.out.println("Inside static initializer."); + } + + // An instance initializer + { + System.out.println("Inside instance initializer."); + } + + // Constructor + public StaticInitializer() { + System.out.println("Inside constructor."); + } + + public static void main(String[] args) { + System.out.println("Inside main() #1. num: " + num); + + // Declare a reference variable of the class + StaticInitializer si; + + System.out.println("Inside main() #2. num: " + num); + + // Create an object + new StaticInitializer(); + + System.out.println("Inside main() #3. num: " + num); + + // Create another object + new StaticInitializer(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/ThisTest4.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/ThisTest4.java new file mode 100644 index 0000000..b56cb3b --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/ThisTest4.java @@ -0,0 +1,15 @@ +// ThisTest4.java +package com.jdojo.cls; + +public class ThisTest4 { + int num = 1982; // An instance variable + + void printNum() { + System.out.println("Instance variable num: " + num); + } + + public static void main(String[] args) { + ThisTest4 tt4 = new ThisTest4(); + tt4.printNum(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/ThisTest5.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/ThisTest5.java new file mode 100644 index 0000000..6f39cf9 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/ThisTest5.java @@ -0,0 +1,16 @@ +// ThisTest5.java +package com.jdojo.cls; + +public class ThisTest5 { + int num = 1982; // An instance variable + + void printNum(int num) { + System.out.println("Parameter num: " + num); + System.out.println("Instance variable num: " + num); + } + + public static void main(String[] args) { + ThisTest5 tt5 = new ThisTest5(); + tt5.printNum(1969); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/ThisTest6.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/ThisTest6.java new file mode 100644 index 0000000..74cb37a --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/ThisTest6.java @@ -0,0 +1,16 @@ +// ThisTest6.java +package com.jdojo.cls; + +public class ThisTest6 { + int num = 1982; // An instance variable + + void printNum(int num) { + System.out.println("Parameter num: " + num); + System.out.println("Instance variable num: " + this.num); + } + + public static void main(String[] args) { + ThisTest6 tt6 = new ThisTest6(); + tt6.printNum(1969); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/Wrapper.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/Wrapper.java new file mode 100644 index 0000000..c095874 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/Wrapper.java @@ -0,0 +1,18 @@ +// Wrapper.java +package com.jdojo.cls; + +public class Wrapper { + private T obj; + + public Wrapper(T obj) { + this.obj = obj; + } + + public T get() { + return obj; + } + + public void set(T obj) { + this.obj = obj; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/WrapperTest.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/WrapperTest.java new file mode 100644 index 0000000..10f85fe --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/WrapperTest.java @@ -0,0 +1,18 @@ +// WrapperTest.java +package com.jdojo.cls; + +public class WrapperTest { + public static void main(String[] args) { + Wrapper w1 = new Wrapper("Hello"); + String s1 = w1.get(); + System.out.println("s1=" + s1); + + w1.set("Testing generics"); + String s2 = w1.get(); + System.out.println("s2=" + s2); + + w1.set(null); + String s3 = w1.get(); + System.out.println("s3=" + s3); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/cls/p1/AccessLevelTest3.java b/BeginningJava8Fundamentals/src/com/jdojo/cls/p1/AccessLevelTest3.java new file mode 100644 index 0000000..52578be --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/cls/p1/AccessLevelTest3.java @@ -0,0 +1,10 @@ +// AccessLevelTest3.java +package com.jdojo.cls.p1; + +import com.jdojo.cls.AccessLevel2; // A compiler error + +public class AccessLevelTest3 { + public static void main(String[] args) { + int a = AccessLevel2.v1; // A compiler error + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/concepts/MathUtil.java b/BeginningJava8Fundamentals/src/com/jdojo/concepts/MathUtil.java new file mode 100644 index 0000000..967341e --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/concepts/MathUtil.java @@ -0,0 +1,15 @@ +package com.jdojo.concepts; + +public class MathUtil { + public static int max(int n1, int n2) { + /* Code to determine the maximum of two integers goes here */ + } + + public static double max(double n1, double n2) { + /* Code to determine the maximum of two floating-point numbers goes here */ + } + + public static int max(int[] num) { + /* Code to determine the maximum an array of int goes here */ + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/concepts/Person.java b/BeginningJava8Fundamentals/src/com/jdojo/concepts/Person.java new file mode 100644 index 0000000..aff5a42 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/concepts/Person.java @@ -0,0 +1,49 @@ +package com.jdojo.concepts; + +public class Person { + private String name; + private String gender; + + public Person(String initialName, String initialGender) { + name = initialName; + gender = initialGender; + } + + public String getName() { + return name; + } + + public void setName(String newName) { + name = newName; + } + + public String getGender() { + return gender; + } +} + +/* Another version of the Person class (LIsting 1-4. +package com.jdojo.concepts; + +public class Person { + private String[] data = new String[2]; + + public Person(String initialName, String initialGender) { + data[0] = initialName; + data[1] = initialGender; + } + + public String getName() { + return data[0]; + } + + public void setName(String newName) { + data[0] = newName; + } + + public String getGender() { + return data[1]; + } +} + +*/ \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/concepts/Person2.java b/BeginningJava8Fundamentals/src/com/jdojo/concepts/Person2.java new file mode 100644 index 0000000..1caacda --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/concepts/Person2.java @@ -0,0 +1,22 @@ +package com.jdojo.concepts; + +public class Person2 { + public String name; // Not hidden from its users + public String gender; // Not hidden from its users + public Person2(String initialName, String initialGender) { + name = initialName; + gender = initialGender; + } + + public String getName() { + return name; + } + + public void setName(String newName) { + name = newName; + } + + public String getGender() { + return gender; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datatype/NumTest.java b/BeginningJava8Fundamentals/src/com/jdojo/datatype/NumTest.java new file mode 100644 index 0000000..6164f7d --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datatype/NumTest.java @@ -0,0 +1,32 @@ +// NumTest.java +package com.jdojo.datatype; + +public class NumTest { + public static void main(String[] args) { + int anInt = 100; + long aLong = 200L; + byte aByte = 65; + short aShort = -902; + char aChar = 'A'; + float aFloat = 10.98F; + double aDouble = 899.89; + + // Print values of the variables + System.out.println("anInt = " + anInt); + System.out.println("aLong = " + aLong); + System.out.println("aByte = " + aByte); + System.out.println("aShort = " + aShort); + System.out.println("aChar = " + aChar); + System.out.println("aFloat = " + aFloat); + System.out.println("aDouble = " + aDouble); + System.out.println("aDouble = " + aDouble); + + // Print sone double constants + System.out.println("Max double = " + Double.MAX_VALUE); + System.out.println("Min double = " + Double.MIN_VALUE); + System.out.println("Positive infinity for double = " + Double.POSITIVE_INFINITY); + System.out.println("Negative infinity for double = " + Double.NEGATIVE_INFINITY); + System.out.println("Not-a-Number for double = " + Double.NaN); + System.out.println("double takes " + Double.BYTES + " bytes"); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/AdjustDates.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/AdjustDates.java new file mode 100644 index 0000000..2ddf993 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/AdjustDates.java @@ -0,0 +1,28 @@ +// AdjustDates.java +package com.jdojo.datetime; + +import java.time.DayOfWeek; +import java.time.LocalDate; +import java.time.temporal.TemporalAdjuster; +import java.time.temporal.TemporalAdjusters; + +public class AdjustDates { + public static void main(String[] args) { + LocalDate today = LocalDate.now(); + System.out.println("Today: " + today); + + // Use a DateAdjuster to adjust today’s date to the next Monday + LocalDate nextMonday = today.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); + System.out.println("Next Monday: " + nextMonday); + + // Use a DateAdjuster to adjust today’s date to the last day of month + LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth()); + System.out.println("Last day of month: " + lastDayOfMonth); + + // Create an adjuster that retruns a date after 3 months and 2 days + TemporalAdjuster adjuster = TemporalAdjusters.ofDateAdjuster( + (LocalDate date) -> date.plusMonths(3).plusDays(2)); + LocalDate dayAfter3Mon2Day = today.with(adjuster); + System.out.println("Date after 3 months and 2 days: " + dayAfter3Mon2Day); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/ChristmasDay.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/ChristmasDay.java new file mode 100644 index 0000000..11341a0 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/ChristmasDay.java @@ -0,0 +1,25 @@ +// ChristmasDay.java +package com.jdojo.datetime; + +import java.time.LocalDate; +import java.time.Month; +import java.time.MonthDay; +import java.time.Year; +import java.time.format.TextStyle; +import java.util.Locale; + +public class ChristmasDay { + public static void main(String[] args) { + MonthDay dec25 = MonthDay.of(Month.DECEMBER, 25); + Year year = Year.now(); + + // Construct and print Christmas days in next five years + for (int i = 1; i <= 5; i++) { + LocalDate ld = year.plusYears(i).atMonthDay(dec25); + int yr = ld.getYear(); + String weekDay = ld.getDayOfWeek() + .getDisplayName(TextStyle.FULL, Locale.getDefault()); + System.out.format("Christmas in %d is on %s.%n", yr, weekDay); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/CurrentDateTime.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/CurrentDateTime.java new file mode 100644 index 0000000..f51edf9 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/CurrentDateTime.java @@ -0,0 +1,29 @@ +// CurrentDateTime.java +package com.jdojo.datetime; + +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.LocalDateTime; +import java.time.ZonedDateTime; +import static java.time.Month.JANUARY; + +public class CurrentDateTime { + public static void main(String[] args) { + // Get current date, time, and datetime + LocalDate dateOnly = LocalDate.now(); + LocalTime timeOnly = LocalTime.now(); + LocalDateTime dateTime = LocalDateTime.now(); + ZonedDateTime dateTimeWithZone = ZonedDateTime.now(); + + System.out.println("Current Date: " + dateOnly); + System.out.println("Current Time: " + timeOnly); + System.out.println("Current Date and Time: " + dateTime); + System.out.println("Current Date, Time, and Zone: " + dateTimeWithZone); + + // Construct a birth date and time from date-time components + LocalDate myBirthDate = LocalDate.of(1968, JANUARY, 12); + LocalTime myBirthTime = LocalTime.of(7, 30); + System.out.println("My Birth Date: " + myBirthDate); + System.out.println("My Birth Time:: " + myBirthTime); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/CurrentLegacyDate.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/CurrentLegacyDate.java new file mode 100644 index 0000000..9895170 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/CurrentLegacyDate.java @@ -0,0 +1,15 @@ +// CurrentLegacyDate.java +package com.jdojo.datetime; + +import java.util.Date; + +public class CurrentLegacyDate { + public static void main (String[] args) { + // Create a new Date object + Date currentDate = new Date(); + System.out.println("Current date: " + currentDate); + + // Get the milliseconds value of the current date + long millis = currentDate.getTime(); + System.out.println("Current datetime in millis: " + millis); } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/CustomAdjusterTest.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/CustomAdjusterTest.java new file mode 100644 index 0000000..285bb8f --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/CustomAdjusterTest.java @@ -0,0 +1,31 @@ +// CustomAdjusterTest.java +package com.jdojo.datetime; + +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.Month; +import java.time.ZoneId; +import java.time.ZonedDateTime; + +public class CustomAdjusterTest { + public static void main(String[] args) { + LocalDate ld1 = LocalDate.of(2013, Month.DECEMBER, 12); // Thursday + LocalDate ld2 = LocalDate.of(2013, Month.DECEMBER, 13); // Friday + LocalDate ld3 = LocalDate.of(2013, Month.DECEMBER, 14); // Saturday + + LocalDate ld1Adjusted = ld1.with(CustomAdjusters.WEEKDAYS_WITH_NO_FRIDAY_13); + System.out.println(ld1 + " adjusted to " + ld1Adjusted); + + LocalDate ld2Adjusted = ld2.with(CustomAdjusters.WEEKDAYS_WITH_NO_FRIDAY_13); + System.out.println(ld2 + " adjusted to " + ld2Adjusted); + + LocalDate ld3Adjusted = ld3.with(CustomAdjusters.WEEKDAYS_WITH_NO_FRIDAY_13); + System.out.println(ld3 + " adjusted to " + ld3Adjusted); + + // Use it to adjust a ZonedDateTime + ZonedDateTime zdt = + ZonedDateTime.of(ld2, LocalTime.of(8, 45), ZoneId.of("America/Chicago")); + ZonedDateTime zdtAdjusted = zdt.with(CustomAdjusters.WEEKDAYS_WITH_NO_FRIDAY_13); + System.out.println(zdt + " adjusted to " + zdtAdjusted); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/CustomAdjusters.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/CustomAdjusters.java new file mode 100644 index 0000000..88ff653 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/CustomAdjusters.java @@ -0,0 +1,31 @@ +// CustomAdjusters.java +package com.jdojo.datetime; + +import java.time.DayOfWeek; +import static java.time.DayOfWeek.FRIDAY; +import static java.time.DayOfWeek.MONDAY; +import static java.time.DayOfWeek.SATURDAY; +import static java.time.DayOfWeek.SUNDAY; +import java.time.LocalDate; +import java.time.temporal.TemporalAdjuster; +import java.time.temporal.TemporalAdjusters; + +public class CustomAdjusters { + public final static TemporalAdjuster WEEKDAYS_WITH_NO_FRIDAY_13 = + TemporalAdjusters.ofDateAdjuster(CustomAdjusters::getWeekDayNoFriday13); + + // No public constructor as it is a utility class + private CustomAdjusters() { } + + private static LocalDate getWeekDayNoFriday13(LocalDate date) { + // Initialize the new date with the original one + LocalDate newDate = date; + + DayOfWeek day = date.getDayOfWeek(); + if (day == SATURDAY || day == SUNDAY || (day == FRIDAY && date.getDayOfMonth() == 13)) { + // Return next Monday + newDate = date.with(TemporalAdjusters.next(MONDAY)); + } + return newDate; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/CustomQueries.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/CustomQueries.java new file mode 100644 index 0000000..f9b6454 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/CustomQueries.java @@ -0,0 +1,22 @@ +// CustomQueries.java +package com.jdojo.datetime; + +import java.time.DayOfWeek; +import static java.time.DayOfWeek.FRIDAY; +import static java.time.temporal.ChronoField.DAY_OF_MONTH; +import static java.time.temporal.ChronoField.DAY_OF_WEEK; +import java.time.temporal.TemporalAccessor; + +public class CustomQueries { + public static Boolean isFriday13(TemporalAccessor temporal) { + if (temporal.isSupported(DAY_OF_MONTH) && temporal.isSupported(DAY_OF_WEEK)) { + int dayOfMonth = temporal.get(DAY_OF_MONTH); + int weekDay = temporal.get(DAY_OF_WEEK); + DayOfWeek dayOfWeek = DayOfWeek.of(weekDay); + if (dayOfMonth == 13 && dayOfWeek == FRIDAY) { + return Boolean.TRUE; + } + } + return Boolean.FALSE; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/DateAndInstant.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/DateAndInstant.java new file mode 100644 index 0000000..e7df52f --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/DateAndInstant.java @@ -0,0 +1,21 @@ +// DateAndInstant.java +package com.jdojo.datetime; + +import java.util.Date; +import java.time.Instant; + +public class DateAndInstant { + public static void main(String[] args) { + // Get the current date + Date dt = new Date(); + System.out.println("Date: " + dt); + + // Convert the Date to an Insatnt + Instant in = dt.toInstant(); + System.out.println("Instant: " + in); + + // Convert the Instant back to a Date + Date dt2 = Date.from(in); + System.out.println("Date: " + dt2); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/DateTimeZoneConversion.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/DateTimeZoneConversion.java new file mode 100644 index 0000000..56f2a05 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/DateTimeZoneConversion.java @@ -0,0 +1,24 @@ +// DateTimeZoneConversion.java +package com.jdojo.datetime; + +import java.time.LocalDateTime; +import java.time.Month; +import java.time.ZoneId; +import java.time.ZonedDateTime; + +public class DateTimeZoneConversion { + public static void main(String[] args) { + LocalDateTime ldt = LocalDateTime.of(2012, Month.MAY, 14, 16, 30); + + ZoneId usCentral = ZoneId.of("America/Chicago"); + ZonedDateTime zdt = ZonedDateTime.of(ldt, usCentral); + System.out.println("In US Central Time Zone:" + zdt); + + ZoneId asiaKolkata = ZoneId.of("Asia/Kolkata"); + ZonedDateTime zdt2 = zdt.withZoneSameInstant(asiaKolkata); + System.out.println("In Asia/Kolkata Time Zone:" + zdt2); + + ZonedDateTime zdt3 = zdt.withZoneSameInstant(ZoneId.of("Z")); + System.out.println("In UTC Time Zone:" + zdt3); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/FormattingDateTime.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/FormattingDateTime.java new file mode 100644 index 0000000..6d3a495 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/FormattingDateTime.java @@ -0,0 +1,44 @@ +// FormattingDateTime.java +package com.jdojo.datetime; + +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.Month; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.time.temporal.Temporal; +import java.util.Locale; + +public class FormattingDateTime { + public static void main(String[] args) { + LocalDate ld = LocalDate.of(2012, Month.APRIL, 30); + System.out.println("Formatting date:" + ld); + format(ld, "M/d/yyyy"); + format(ld, "MM/dd/yyyy"); + format(ld, "MMM dd, yyyy"); + format(ld, "MMMM dd, yyyy"); + format(ld, "EEEE, MMMM dd, yyyy"); + format(ld, "'Month' q 'in' QQQ"); + format(ld, "[MM-dd-yyyy][' at' HH:mm:ss]"); + + LocalTime lt = LocalTime.of(16, 30, 5, 78899); + System.out.println("\nFormatting time:" + lt); + format(lt, "HH:mm:ss"); + format(lt, "KK:mm:ss a"); + format(lt, "[MM-dd-yyyy][' at' HH:mm:ss]"); + + ZoneId usCentral = ZoneId.of("America/Chicago"); + ZonedDateTime zdt = ZonedDateTime.of(ld, lt, usCentral); + System.out.println("\nFormatting zoned datetime:" + zdt); + format(zdt, "MM/dd/yyyy HH:mm:ssXXX"); + format(zdt, "MM/dd/yyyy VV"); + format(zdt, "[MM-dd-yyyy][' at' HH:mm:ss]"); + } + + public static void format(Temporal co, String pattern) { + DateTimeFormatter fmt = DateTimeFormatter.ofPattern(pattern, Locale.US); + String str = fmt.format(co); + System.out.println(pattern + ": " + str); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/Friday13Query.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/Friday13Query.java new file mode 100644 index 0000000..163dced --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/Friday13Query.java @@ -0,0 +1,29 @@ +// Friday13Query.java +package com.jdojo.datetime; + +import java.time.DayOfWeek; +import java.time.temporal.TemporalAccessor; +import java.time.temporal.TemporalQuery; +import static java.time.temporal.ChronoField.DAY_OF_MONTH; +import static java.time.temporal.ChronoField.DAY_OF_WEEK; +import static java.time.DayOfWeek.FRIDAY; + +public class Friday13Query implements TemporalQuery { + public final static Friday13Query IS_FRIDAY_13 = new Friday13Query(); + + // No objects can be created + private Friday13Query() {} + + @Override + public Boolean queryFrom(TemporalAccessor temporal) { + if (temporal.isSupported(DAY_OF_MONTH) && temporal.isSupported(DAY_OF_WEEK)) { + int dayOfMonth = temporal.get(DAY_OF_MONTH); + int weekDay = temporal.get(DAY_OF_WEEK); + DayOfWeek dayOfWeek = DayOfWeek.of(weekDay); + if (dayOfMonth == 13 && dayOfWeek == FRIDAY) { + return Boolean.TRUE; + } + } + return Boolean.FALSE; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/GregorianCalendarAndNewDateTime.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/GregorianCalendarAndNewDateTime.java new file mode 100644 index 0000000..6a218bb --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/GregorianCalendarAndNewDateTime.java @@ -0,0 +1,55 @@ +// GregorianCalendarAndNewDateTime.java +package com.jdojo.datetime; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.OffsetDateTime; +import java.time.OffsetTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; + +import java.util.GregorianCalendar; +import java.util.TimeZone; + +public class GregorianCalendarAndNewDateTime { + public static void main(String[] args) { + // Create a GC for the default time zone + GregorianCalendar gc = new GregorianCalendar(2014, 1, 11, 15, 45, 50); + System.out.println("Gregorian Calendar: " + gc.getTime()); + + // Convert the GC to a LocalDate + LocalDate ld = gc.toZonedDateTime().toLocalDate(); + System.out.println("Local Date: " + ld); + + // Convert the GC to a LocalTime + LocalTime lt = gc.toZonedDateTime().toLocalTime(); + System.out.println("Local Time: " + lt); + + // Convert the GC to a LocalDateTime + LocalDateTime ldt = gc.toZonedDateTime().toLocalDateTime(); + System.out.println("Local DateTime: " + ldt); + + // Convert the GC to an OffsetDate + OffsetDateTime od = gc.toZonedDateTime().toOffsetDateTime(); + System.out.println("Offset Date: " + od); + + // Convert the GC to an OffsetTime + OffsetTime ot = gc.toZonedDateTime().toOffsetDateTime().toOffsetTime(); + System.out.println("Offset Time: " + ot); + + // Convert the GC to an ZonedDateTime + ZonedDateTime zdt = gc.toZonedDateTime(); + System.out.println("Zoned DateTime: " + zdt); + + // Convert the ZonedDateTime to a GC. In GC month starts at 0 + // and in new API at 1 + ZoneId zoneId = zdt.getZone(); + TimeZone timeZone = TimeZone.getTimeZone(zoneId); + System.out.println("Zone ID: " + zoneId); + System.out.println("Time Zone ID: " + timeZone.getID()); + + GregorianCalendar gc2 = GregorianCalendar.from(zdt); + System.out.println("Gregorian Calendar: " + gc2.getTime()); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/GregorianDate.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/GregorianDate.java new file mode 100644 index 0000000..90e6008 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/GregorianDate.java @@ -0,0 +1,39 @@ +// GregorianDate .java +package com.jdojo.datetime; + +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; + +public class GregorianDate { + public static void main(String[] args) { + GregorianCalendar gc = new GregorianCalendar(); + System.out.println("Current Date: " + getStr(gc)); + + // Add 1 year + gc.add(Calendar.YEAR, 1); + System.out.println("After adding a year: " + getStr(gc)); + + // Add 15 days + gc.add(Calendar.DATE, 15); + System.out.println("After adding 15 days: " + getStr(gc)); + + long millis = gc.getTimeInMillis(); + Date dt = gc.getTime(); + System.out.println("Time in millis: " + millis); + System.out.println("Time as Date: " + dt); + } + + public static String getStr(GregorianCalendar gc) { + int day = gc.get(Calendar.DAY_OF_MONTH); + int month = gc.get(Calendar.MONTH); + int year = gc.get(Calendar.YEAR); + int hour = gc.get(Calendar.HOUR); + int minute = gc.get(Calendar.MINUTE); + int second = gc.get(Calendar.SECOND); + + String str = day + "/" + (month + 1) + "/" + year + " " + + hour + ":" + minute + ":" + second; + return str; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/InstantDurationTest.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/InstantDurationTest.java new file mode 100644 index 0000000..d964223 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/InstantDurationTest.java @@ -0,0 +1,33 @@ +// InstantDurationTest.java +package com.jdojo.datetime; + +import java.time.Duration; +import java.time.Instant; + +public class InstantDurationTest { + public static void main(String[] args) { + Instant i1 = Instant.ofEpochSecond(20); + Instant i2 = Instant.ofEpochSecond(55); + System.out.println("i1:" + i1); + System.out.println("i2:" + i2); + + Duration d1 = Duration.ofSeconds(55); + Duration d2 = Duration.ofSeconds(-17); + System.out.println("d1:" + d1); + System.out.println("d2:" + d2); + + // Compare instants + System.out.println("i1.isBefore(i2):" + i1.isBefore(i2)); + System.out.println("i1.isAfter(i2):" + i1.isAfter(i2)); + + // Add and subtract durations to instants + Instant i3 = i1.plus(d1); + Instant i4 = i2.minus(d2); + System.out.println("i1.plus(d1):" + i3); + System.out.println("i2.minus(d2):" + i4); + + // Add two durations + Duration d3 = d1.plus(d2); + System.out.println("d1.plus(d2):" + d3); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/InterCalendarDates.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/InterCalendarDates.java new file mode 100644 index 0000000..24fba39 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/InterCalendarDates.java @@ -0,0 +1,20 @@ +// InterCalendarDates.java +package com.jdojo.datetime; + +import java.time.LocalDate; +import java.time.chrono.ThaiBuddhistDate; + +public class InterCalendarDates { + public static void main(String[] args) { + ThaiBuddhistDate thaiBuddhistNow = ThaiBuddhistDate.now(); + LocalDate isoNow = LocalDate.now(); + System.out.println("Thai Buddhist Current Date: " + thaiBuddhistNow); + System.out.println("ISO Current Date: " + isoNow); + + // Convert Thai Buddhist date to ISo date and vice-versa + ThaiBuddhistDate thaiBuddhistNow2 = ThaiBuddhistDate.from(isoNow); + LocalDate isoNow2 = LocalDate.from(thaiBuddhistNow); + System.out.println("Thai Buddhist Current Date from ISO: " + thaiBuddhistNow2); + System.out.println("ISO Current Date from Thai Buddhist: " + isoNow2); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/LocalDateTimeTest.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/LocalDateTimeTest.java new file mode 100644 index 0000000..2a04e4c --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/LocalDateTimeTest.java @@ -0,0 +1,32 @@ +// LocalDateTimeTest.java +package com.jdojo.datetime; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.Month; + +public class LocalDateTimeTest { + public static void main(String[] args) { + // Create a local date and time + LocalDate ld = LocalDate.of(2012, Month.MAY, 11); + LocalTime lt = LocalTime.of(8, 52, 23); + System.out.println("ld: " + ld); + System.out.println("ld.isLeapYear(): " + ld.isLeapYear()); + System.out.println("lt: " + lt); + + // Create a local datetime from the local date and time + LocalDateTime ldt = LocalDateTime.of(ld, lt); + System.out.println("ldt: " + ldt); + + // Add 2 months and 25 minutes to the local datetime + LocalDateTime ldt2 = ldt.plusMonths(2).plusMinutes(25) ; + System.out.println("ldt2: " + ldt2); + + // Derive the local date and time from the localdatetime + LocalDate ld2 = LocalDate.from(ldt2); + LocalTime lt2 = LocalTime.from(ldt2); + System.out.println("ld2: " + ld2); + System.out.println("lt2: " + lt2); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/LocalTimeFromZonedDateTime.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/LocalTimeFromZonedDateTime.java new file mode 100644 index 0000000..0d426d2 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/LocalTimeFromZonedDateTime.java @@ -0,0 +1,38 @@ +// LocalTimeFromZonedDateTime.java +package com.jdojo.datetime; + +import java.time.LocalTime; +import java.time.ZonedDateTime; +import java.time.temporal.TemporalQueries; + +public class LocalTimeFromZonedDateTime { + public static void main(String[] args) { + ZonedDateTime zdt = ZonedDateTime.now(); + + // Use the toLocalTime() method of the ZonedDateTime class (preferred) + LocalTime lt1 = zdt.toLocalTime(); + + // Use the from() methdo of the LocalTime class + LocalTime lt2 = LocalTime.from(zdt); + + // Use the localTime() query + LocalTime lt3 = zdt.query(TemporalQueries.localTime()); + + // Use the LocalTime::from method as a query + LocalTime lt4 = zdt.query(LocalTime::from); + + // Get all time components and construct a LocalTime + int hours = zdt.getHour(); + int minutes = zdt.getMinute(); + int seconds = zdt.getSecond(); + int nanos = zdt.getNano(); + LocalTime lt5 = LocalTime.of(hours, minutes, seconds, nanos); + + // Print all LocalTimes + System.out.println("lt1: " + lt1); + System.out.println("lt2: " + lt2); + System.out.println("lt3: " + lt3); + System.out.println("lt4: " + lt4); + System.out.println("lt5: " + lt5); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/LocalizedFormats.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/LocalizedFormats.java new file mode 100644 index 0000000..c45a43b --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/LocalizedFormats.java @@ -0,0 +1,60 @@ +// LocalizedFormats.java +package com.jdojo.datetime; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.Month; +import java.time.format.DateTimeFormatter; +import static java.time.format.FormatStyle.FULL; +import static java.time.format.FormatStyle.LONG; +import static java.time.format.FormatStyle.MEDIUM; +import static java.time.format.FormatStyle.SHORT; + +import java.util.Locale; + +public class LocalizedFormats { + public static void main(String[] args) { + LocalDate ld = LocalDate.of(2012, Month.APRIL, 19); + LocalTime lt = LocalTime.of(16, 30, 20); + LocalDateTime ldt = LocalDateTime.of(ld, lt); + + DateTimeFormatter fmt = DateTimeFormatter.ofLocalizedDate(SHORT); + System.out.println("Formatter Default Locale: " + fmt.getLocale()); + System.out.println("Short Date: " + fmt.format(ld)); + + fmt = DateTimeFormatter.ofLocalizedDate(MEDIUM); + System.out.println("Medium Date: " + fmt.format(ld)); + + fmt = DateTimeFormatter.ofLocalizedDate(LONG); + System.out.println("Long Date: " + fmt.format(ld)); + + fmt = DateTimeFormatter.ofLocalizedDate(FULL); + System.out.println("Full Date: " + fmt.format(ld)); + + fmt = DateTimeFormatter.ofLocalizedTime(SHORT); + System.out.println("Short Time: " + fmt.format(lt)); + + fmt = DateTimeFormatter.ofLocalizedDateTime(SHORT); + System.out.println("Short Datetime: " + fmt.format(ldt)); + + fmt = DateTimeFormatter.ofLocalizedDateTime(MEDIUM); + System.out.println("Medium Datetime: " + fmt.format(ldt)); + + // Use German locale to format the datetime in medius style + fmt = DateTimeFormatter.ofLocalizedDateTime(MEDIUM) + .withLocale(Locale.GERMAN); + System.out.println("German Medium Datetime: " + fmt.format(ldt)); + + // Use Indian(English) locale to format datetime in short style + fmt = DateTimeFormatter.ofLocalizedDateTime(SHORT) + .withLocale(new Locale("en", "IN")); + System.out.println("Indian(en) Short Datetime: " + fmt.format(ldt)); + + // Use Indian(English) locale to format datetime in medium style + fmt = DateTimeFormatter.ofLocalizedDateTime(MEDIUM) + .withLocale(new Locale("en","IN")); + System.out.println("Indian(en) Medium Datetime: " + fmt.format(ldt)); + + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/MonthTest.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/MonthTest.java new file mode 100644 index 0000000..7ecb8c6 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/MonthTest.java @@ -0,0 +1,29 @@ +// MonthTest.java +package com.jdojo.datetime; + +import java.time.LocalDate; +import java.time.Month; + +public class MonthTest { + public static void main(String[] args) { + // Use Month.JULY as a method argument + LocalDate ld1 = LocalDate.of(2012, Month.JULY, 1); + + // Derive a Month from a local date + Month m1 = Month.from(ld1); + + // Create a Month from an int value 2 + Month m2 = Month.of(2); + + // Get the next month from m2 + Month m3 = m2.plus(1); + + // Get the Month from a local date + Month m4 = ld1.getMonth(); + + // Convert an enum constant to an int + int m5 = m2.getValue(); + + System.out.format("%s, %s, %s, %s, %d%n", m1, m2, m3, m4, m5); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/OffsetDateTimeTest.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/OffsetDateTimeTest.java new file mode 100644 index 0000000..fdfe76a --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/OffsetDateTimeTest.java @@ -0,0 +1,50 @@ +// OffsetDateTimeTest.java +package com.jdojo.datetime; + +import java.time.Instant; +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.OffsetDateTime; +import java.time.OffsetTime; +import java.time.ZoneId; +import java.time.ZoneOffset; + +public class OffsetDateTimeTest { + public static void main(String[] args) { + // Creete a zone-offset +05:30 + ZoneOffset offset = ZoneOffset.ofHoursMinutes(5, 30); + + // Get the current offset time + OffsetTime ot1 = OffsetTime.now(); + System.out.println("Current offset time: " + ot1); + + // Create an offset time + OffsetTime ot2 = OffsetTime.of(16, 40, 28, 0, offset); + System.out.println("An offset time: " + ot2); + + // Get the current offset datetime + OffsetDateTime odt1 = OffsetDateTime.now(); + System.out.println("Current offset datetime: " + odt1); + + // Create an offset datetime + OffsetDateTime odt2 = OffsetDateTime.of(2012, 5, 11, + 18, 10, 30, 0, + offset); + System.out.println("An offset datetime: " + odt2); + + // Get the local date and time from the offset datetime + LocalDate ld1 = odt1.toLocalDate(); + LocalTime lt1 = odt1.toLocalTime(); + System.out.println("Current Local Date: " + ld1); + System.out.println("Current Local Time: " + lt1); + + // Get the instant from the offset datetime + Instant i1 = odt1.toInstant(); + System.out.println("Current Instant: " + i1); + + // Create an offset datetime from the instant + ZoneId usChicago = ZoneId.of("America/Chicago"); + OffsetDateTime odt3 = OffsetDateTime.ofInstant(i1, usChicago); + System.out.println("Offset datetime from instant: " + odt3); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/OptionalSectionTest.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/OptionalSectionTest.java new file mode 100644 index 0000000..eb166d7 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/OptionalSectionTest.java @@ -0,0 +1,29 @@ +// OptionalSectionTest.java +package com.jdojo.datetime; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.Month; +import java.time.format.DateTimeFormatter; + +public class OptionalSectionTest { + public static void main(String[] args) { + // A pattern with an optional section + String pattern = "MM/dd/yyyy[ 'at' HH:mm:ss]"; + DateTimeFormatter fmt = DateTimeFormatter.ofPattern(pattern); + + LocalDate ld = LocalDate.of(2012, Month.MAY, 30); + LocalTime lt = LocalTime.of(17, 30, 12); + LocalDateTime ldt = LocalDateTime.of(ld,lt); + + // Format a date. Optional section will be skipped because a + // date does not have time (HH, mm, and ss) information. + String str1 = fmt.format(ld); + System.out.println(str1); + + // Format a datetime. Optional section will be output. + String str2 = fmt.format(ldt); + System.out.println(str2); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/ParseBestTest.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/ParseBestTest.java new file mode 100644 index 0000000..801ea5a --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/ParseBestTest.java @@ -0,0 +1,43 @@ +// ParseBestTest.java +package com.jdojo.datetime; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; +import java.time.temporal.TemporalAccessor; + +public class ParseBestTest { + public static void main(String[] args) { + DateTimeFormatter parser = DateTimeFormatter.ofPattern("yyyy-MM-dd['T'HH:mm:ss[Z]]"); + parseStr(parser, "2012-05-31"); + parseStr(parser, "2012-05-31T16:30:12"); + parseStr(parser, "2012-05-31T16:30:12-0500"); + parseStr(parser, "2012-05-31Hello"); + } + + public static void parseStr(DateTimeFormatter formatter, String text) { + try { + TemporalAccessor ta = formatter.parseBest(text, + OffsetDateTime::from, + LocalDateTime::from, + LocalDate::from); + if (ta instanceof OffsetDateTime) { + OffsetDateTime odt = OffsetDateTime.from(ta); + System.out.println("OffsetDateTime: " + odt); + } else if (ta instanceof LocalDateTime) { + LocalDateTime ldt = LocalDateTime.from(ta); + System.out.println("LocalDateTime: " + ldt); + } else if (ta instanceof LocalDate) { + LocalDate ld = LocalDate.from(ta); + System.out.println("LocalDate: " + ld); + } else { + System.out.println("Parsing returned: " + ta); + } + } + catch (DateTimeParseException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/Partials.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/Partials.java new file mode 100644 index 0000000..d4289b3 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/Partials.java @@ -0,0 +1,44 @@ +// Partials.java +package com.jdojo.datetime; + +import java.time.Month; +import java.time.MonthDay; +import java.time.Year; +import java.time.YearMonth; + +public class Partials { + public static void main(String[] args) { + // Use Year + Year y1 = Year.of(2012); // 2012 + Year y2 = y1.minusYears(1); // 2011 + Year y3 = y1.plusYears(1); // 2013 + Year y4 = Year.now(); // current year + if (y1.isLeap()) { + System.out.println(y1 + " is a leap year."); + } + else { + System.out.println(y1 + " is not a leap year."); + } + + // Use YearMonth + YearMonth ym1 = YearMonth.of(2012, Month.MAY); // 2012-05 + + // Get the number of days in the month + int monthLen = ym1.lengthOfMonth(); // 31 + System.out.println("Days in month in " + ym1 + ": " + monthLen); + + // Get the number of days in the year + int yearLen = ym1.lengthOfYear(); // 366 + System.out.println("Days in year in " + ym1 + ": " + yearLen); + + // Use MonthDay + MonthDay md1 = MonthDay.of(Month.DECEMBER, 25); + MonthDay md2 = MonthDay.of(Month.FEBRUARY, 29); + if (md2.isValidYear(2009)) { + System.out.println(md2 + " occurred in 2009"); + } + else { + System.out.println(md2 + " did not occur in 2009"); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/PeriodTest.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/PeriodTest.java new file mode 100644 index 0000000..b6adec1 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/PeriodTest.java @@ -0,0 +1,27 @@ +// PeriodTest.java +package com.jdojo.datetime; + +import java.time.Duration; +import java.time.LocalDateTime; +import java.time.Month; +import java.time.Period; +import java.time.ZoneId; +import java.time.ZonedDateTime; + +public class PeriodTest { + public static void main(String[] args) { + ZoneId usCentral = ZoneId.of("America/Chicago"); + LocalDateTime ldt = LocalDateTime.of(2012, Month.MARCH, 10, 7, 30); + ZonedDateTime zdt1 = ZonedDateTime.of(ldt, usCentral); + Period p1 = Period.ofDays(1); + Duration d1 = Duration.ofHours(24); + + // Add a period of 1 day and a duration of 24 hours + ZonedDateTime zdt2 = zdt1.plus(p1); + ZonedDateTime zdt3 = zdt1.plus(d1); + + System.out.println("Start Datetime: " + zdt1); + System.out.println("After 1 Day period: " + zdt2); + System.out.println("After 24 Hours duration: " + zdt3); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/PrintAllZoneIds.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/PrintAllZoneIds.java new file mode 100644 index 0000000..046f08c --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/PrintAllZoneIds.java @@ -0,0 +1,14 @@ +// PrintAllZoneIds.java +package com.jdojo.datetime; + +import java.time.ZoneId; +import java.util.Set; + +public class PrintAllZoneIds { + public static void main(String[] args) { + Set zoneIds = ZoneId.getAvailableZoneIds(); + for (String zoneId: zoneIds) { + System.out.println(zoneId); + } + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/QueryTest.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/QueryTest.java new file mode 100644 index 0000000..5f2cd2b --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/QueryTest.java @@ -0,0 +1,38 @@ +// QueryTest.java +package com.jdojo.datetime; + +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.ZonedDateTime; +import java.time.temporal.TemporalQueries; +import java.time.temporal.TemporalQuery; +import java.time.temporal.TemporalUnit; + +public class QueryTest { + public static void main(String[] args) { + // Get references of the precision and local date queries + TemporalQuery precisionQuery = TemporalQueries.precision(); + TemporalQuery localDateQuery = TemporalQueries.localDate(); + + // Query a LocalDate + LocalDate ld = LocalDate.now(); + TemporalUnit precision = ld.query(precisionQuery); + LocalDate queryDate = ld.query(localDateQuery); + System.out.println("Precision of LocalDate: " + precision); + System.out.println("LocalDate of LocalDate: " + queryDate); + + // Query a LocalTime + LocalTime lt = LocalTime.now(); + precision = lt.query(precisionQuery); + queryDate = lt.query(localDateQuery); + System.out.println("Precision of LocalTime: " + precision); + System.out.println("LocalDate of LocalTime: " + queryDate); + + // Query a ZonedDateTime + ZonedDateTime zdt = ZonedDateTime.now(); + precision = zdt.query(precisionQuery); + queryDate = zdt.query(localDateQuery); + System.out.println("Precision of ZonedDateTime: " + precision); + System.out.println("LocalDate of ZonedDateTime: " + queryDate); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/TimeBetween.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/TimeBetween.java new file mode 100644 index 0000000..8d7707d --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/TimeBetween.java @@ -0,0 +1,35 @@ +// TimeBetween.java +package com.jdojo.datetime; + +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.Month; +import static java.time.temporal.ChronoUnit.DAYS; +import static java.time.temporal.ChronoUnit.HOURS; +import static java.time.temporal.ChronoUnit.MINUTES; + +public class TimeBetween { + public static void main(String[] args) { + LocalDate ld1 = LocalDate.of(2014, Month.JANUARY, 7); + LocalDate ld2 = LocalDate.of(2014, Month.MAY, 18); + long days = DAYS.between(ld1, ld2); + + LocalTime lt1 = LocalTime.of(7, 0); + LocalTime lt2 = LocalTime.of(9, 30); + long hours = HOURS.between(lt1, lt2); + long minutes = MINUTES.between(lt1, lt2); + + System.out.println("Using between (days): " + days); + System.out.println("Using between (hours): " + hours); + System.out.println("Using between (minutes): " + minutes); + + // Using the until() method + long days2 = ld1.until(ld2, DAYS); + long hours2 = lt1.until(lt2, HOURS); + long minutes2 = lt1.until(lt2, MINUTES); + + System.out.println("Using until (days): " + days2); + System.out.println("Using until (hours): " + hours2); + System.out.println("Using until (minutes): " + minutes2); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/ZoneOffsetTest.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/ZoneOffsetTest.java new file mode 100644 index 0000000..e304d2e --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/ZoneOffsetTest.java @@ -0,0 +1,26 @@ +// ZoneOffsetTest.java +package com.jdojo.datetime; +import java.time.ZoneOffset; + +public class ZoneOffsetTest { + public static void main(String[] args) { + // Create zone-offset using hour, minute, and second + ZoneOffset zos1 = ZoneOffset.ofHours(-6); + ZoneOffset zos2 = ZoneOffset.ofHoursMinutes(5, 30); + ZoneOffset zos3 = ZoneOffset.ofHoursMinutesSeconds(8, 30, 45); + System.out.println(zos1); + System.out.println(zos2); + System.out.println(zos3); + + // Create zone-offset using offset ID as a string + ZoneOffset zos4 = ZoneOffset.of("+05:00"); + ZoneOffset zos5 = ZoneOffset.of("Z"); // Same as ZoneOffset.UTC + System.out.println(zos4); + System.out.println(zos5); + + // Print the values for zone offset constants + System.out.println("ZoneOffset.UTC: " + ZoneOffset.UTC); + System.out.println("ZoneOffset.MIN: " + ZoneOffset.MIN); + System.out.println("ZoneOffset.MAX: " + ZoneOffset.MAX); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/ZoneRulesTest.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/ZoneRulesTest.java new file mode 100644 index 0000000..dc7399d --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/ZoneRulesTest.java @@ -0,0 +1,39 @@ +// ZoneRulesTest.java +package com.jdojo.datetime; + +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZoneOffset; +import java.time.zone.ZoneOffsetTransition; +import java.time.zone.ZoneRules; +import java.util.List; + +public class ZoneRulesTest { + public static void main(String[] args) { + LocalDateTime now = LocalDateTime.now(); + System.out.println("Current Date Time: " + now); + + ZoneId fixedZoneId = ZoneId.of("+06:00"); + ZoneId bdDhaka = ZoneId.of("Asia/Dhaka"); + ZoneId usChicago = ZoneId.of("America/Chicago"); + + // Print some zone rules for ZoneIds + printDetails(fixedZoneId, now); + printDetails(bdDhaka, now); + printDetails(usChicago, now); + } + + public static void printDetails(ZoneId zoneId, LocalDateTime now) { + System.out.println("Zone ID: " + zoneId.getId()); + + ZoneRules rules = zoneId.getRules(); + boolean isFixedOffset = rules.isFixedOffset(); + System.out.println("isFixedOffset(): " + isFixedOffset); + + ZoneOffset offset = rules.getOffset(now); + System.out.println("Zone offset: " + offset); + + List transitions = rules.getTransitions(); + System.out.println(transitions); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/datetime/ZonedDateTimeTest.java b/BeginningJava8Fundamentals/src/com/jdojo/datetime/ZonedDateTimeTest.java new file mode 100644 index 0000000..37cf307 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/datetime/ZonedDateTimeTest.java @@ -0,0 +1,48 @@ +// ZonedDateTimeTest.java +package com.jdojo.datetime; + +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.Month; +import java.time.OffsetDateTime; +import java.time.ZoneId; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; + +public class ZonedDateTimeTest { + public static void main(String[] args) { + // Get the current zoned datetime for the system default time zone + ZonedDateTime zdt1 = ZonedDateTime.now(); + System.out.println("Current zoned datetime:" + zdt1); + + // Create a local datetime + LocalDateTime ldt = LocalDateTime.of(2012, Month.MARCH, 11, 7, 30); + + // Create some zoned datetimes + ZoneId usCentralZone = ZoneId.of("America/Chicago"); + ZonedDateTime zdt2 = ZonedDateTime.of(ldt, usCentralZone); + System.out.println(zdt2); + + // Get zone-offset and zone id + ZoneOffset offset = zdt2.getOffset(); + ZoneId zone = zdt2.getZone(); + System.out.println("Offset:" + offset + ", Zone:" + zone); + + // Subtract 10 hours. Zone-offset changes from -05:00 to -06:00 + ZonedDateTime zdt3 = zdt2.minusHours(10); + System.out.println(zdt3); + + // Create a datetime in Asia/Kolkata time zone + ZoneId indiaKolkataZone = ZoneId.of("Asia/Kolkata"); + ZonedDateTime zdt4 = ZonedDateTime.of(ldt, indiaKolkataZone); + System.out.println(zdt4); + + // Perform some conversions on zoned date time + LocalDateTime ldt2 = zdt4.toLocalDateTime(); + OffsetDateTime odt = zdt4.toOffsetDateTime(); + Instant i1 = zdt4.toInstant(); + System.out.println("To local datetime: " + ldt2); + System.out.println("To offset datetime: " + odt); + System.out.println("To instant: " + i1); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/enums/Command.java b/BeginningJava8Fundamentals/src/com/jdojo/enums/Command.java new file mode 100644 index 0000000..1d4f4c7 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/enums/Command.java @@ -0,0 +1,6 @@ +// Command.java +package com.jdojo.enums; + +public interface Command { + void execute(); +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/enums/CommandList.java b/BeginningJava8Fundamentals/src/com/jdojo/enums/CommandList.java new file mode 100644 index 0000000..6ba9910 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/enums/CommandList.java @@ -0,0 +1,18 @@ +// CommandList.java +package com.jdojo.enums; + +public enum CommandList implements Command { + RUN { + public void execute() { + System.out.println("Running..."); + } + }, + JUMP { + public void execute() { + System.out.println("Jumping..."); + } + }; + + // Force all constants to implement the execute() method. + public abstract void execute(); +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/enums/CommandTest.java b/BeginningJava8Fundamentals/src/com/jdojo/enums/CommandTest.java new file mode 100644 index 0000000..548e0f8 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/enums/CommandTest.java @@ -0,0 +1,11 @@ +// CommandTest.java +package com.jdojo.enums; + +public class CommandTest { + public static void main(String... args) { + // Execute all command in the command list + for(Command cmd : CommandList.values()) { + cmd.execute(); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/enums/Day.java b/BeginningJava8Fundamentals/src/com/jdojo/enums/Day.java new file mode 100644 index 0000000..9917b48 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/enums/Day.java @@ -0,0 +1,6 @@ +// Day.java +package com.jdojo.enums; + +public enum Day { + MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/enums/EnumSetTest.java b/BeginningJava8Fundamentals/src/com/jdojo/enums/EnumSetTest.java new file mode 100644 index 0000000..435388e --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/enums/EnumSetTest.java @@ -0,0 +1,29 @@ +// EnumSetTest.java +package com.jdojo.enums; + +import java.util.EnumSet; + +public class EnumSetTest { + public static void main(String[] args) { + // Get all constants of the Day enum + EnumSet allDays = EnumSet.allOf(Day.class); + print(allDays, "All days: " ); + + // Get all constants from MONDAY to FRIDAY of the Day enum + EnumSet weekDays = EnumSet.range(Day.MONDAY, Day.FRIDAY); + print(weekDays, "Weekdays: "); + + // Get all constants that are not from MONDAY to FRIDAY of the Day enum + // Essentially, we will get days representing weekends + EnumSet weekends = EnumSet.complementOf(weekDays); + print(weekends, "Weekends: "); + } + + public static void print(EnumSet days, String msg) { + System.out.print(msg); + for(Day d : days) { + System.out.print(d + " "); + } + System.out.println(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/enums/ListEnumConstants.java b/BeginningJava8Fundamentals/src/com/jdojo/enums/ListEnumConstants.java new file mode 100644 index 0000000..9d7f3e7 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/enums/ListEnumConstants.java @@ -0,0 +1,12 @@ +// ListEnumConstants.java +package com.jdojo.enums; + +public class ListEnumConstants { + public static void main(String[] args) { + for(Severity s : Severity.values()) { + String name = s.name(); + int ordinal = s.ordinal(); + System.out.println(name + "(" + ordinal + ")"); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/enums/Person.java b/BeginningJava8Fundamentals/src/com/jdojo/enums/Person.java new file mode 100644 index 0000000..74ae575 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/enums/Person.java @@ -0,0 +1,6 @@ +// Person.java +package com.jdojo.enums; + +public class Person { + public enum Gender {MALE, FEMALE} +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/enums/Severity.java b/BeginningJava8Fundamentals/src/com/jdojo/enums/Severity.java new file mode 100644 index 0000000..484ba18 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/enums/Severity.java @@ -0,0 +1,6 @@ +// Severity.java +package com.jdojo.enums; + +public enum Severity { + LOW, MEDIUM, HIGH, URGENT; +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/enums/SmartSeverity.java b/BeginningJava8Fundamentals/src/com/jdojo/enums/SmartSeverity.java new file mode 100644 index 0000000..cb55326 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/enums/SmartSeverity.java @@ -0,0 +1,19 @@ +// SmartSeverity.java +package com.jdojo.enums; + +public enum SmartSeverity { + LOW(30), MEDIUM(15), HIGH(7), URGENT(1); + + // Declare an instance variable + private int projectedTurnaroundDays; + + // Declare a private constructor + private SmartSeverity(int projectedTurnaroundDays) { + this.projectedTurnaroundDays = projectedTurnaroundDays; + } + + // Declare a public method to get the turnaround days + public int getProjectedTurnaroundDays() { + return projectedTurnaroundDays; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/enums/SmartSeverityTest.java b/BeginningJava8Fundamentals/src/com/jdojo/enums/SmartSeverityTest.java new file mode 100644 index 0000000..708effe --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/enums/SmartSeverityTest.java @@ -0,0 +1,14 @@ +// SmartSeverityTest.java +package com.jdojo.enums; + +public class SmartSeverityTest { + public static void main(String[] args) { + for(SmartSeverity s : SmartSeverity.values()) { + String name = s.name(); + int ordinal = s.ordinal(); + int days = s.getProjectedTurnaroundDays(); + System.out.println("name=" + name + + ", ordinal=" + ordinal + ", days=" + days); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/enums/SuperSmartSeverity.java b/BeginningJava8Fundamentals/src/com/jdojo/enums/SuperSmartSeverity.java new file mode 100644 index 0000000..ec31cff --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/enums/SuperSmartSeverity.java @@ -0,0 +1,51 @@ +// SuperSmartSeverity.java +package com.jdojo.enums; + +public enum SuperSmartSeverity { + LOW("Low Priority", 30) { + public double getProjectedCost() { + return 1000.0; + } + }, + MEDIUM("Medium Priority", 15) { + public double getProjectedCost() { + return 2000.0; + } + }, + HIGH("High Priority", 7) { + public double getProjectedCost() { + return 3000.0; + } + }, + URGENT("Urgent Priority", 1) { + public double getProjectedCost() { + return 5000.0; + } + }; + + // Declare instance variables + private String description; + private int projectedTurnaroundDays; + + // Declare a private constructor + private SuperSmartSeverity(String description, + int projectedTurnaroundDays){ + this.description = description; + this.projectedTurnaroundDays = projectedTurnaroundDays; + } + + // Declare a public method to get the turn around days + public int getProjectedTurnaroundDays() { + return projectedTurnaroundDays; + } + + // Override the toString() method in the Enum class to return description + @Override + public String toString() { + return this.description; + } + + // Provide getProjectedCost() abstract method, so all constants override and provide + // implementation for it in their body + public abstract double getProjectedCost(); +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/enums/SuperSmartSeverityTest.java b/BeginningJava8Fundamentals/src/com/jdojo/enums/SuperSmartSeverityTest.java new file mode 100644 index 0000000..b174926 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/enums/SuperSmartSeverityTest.java @@ -0,0 +1,19 @@ +// SuperSmartSeverityTest.java +package com.jdojo.enums; + +public class SuperSmartSeverityTest { + public static void main(String[] args) { + for(SuperSmartSeverity s : SuperSmartSeverity.values()) { + String name = s.name(); + String desc = s.toString(); + int ordinal = s.ordinal(); + int projectedTurnaroundDays = s.getProjectedTurnaroundDays(); + double projectedCost = s.getProjectedCost(); + System.out.println("name=" + name + + ", description=" + desc + + ", ordinal=" + ordinal + + ", turnaround days=" + projectedTurnaroundDays + + ", projected cost=" + projectedCost); + } + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/DivideByZero.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/DivideByZero.java new file mode 100644 index 0000000..fa9d449 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/DivideByZero.java @@ -0,0 +1,10 @@ +// DivideByZero.java +package com.jdojo.exception; + +public class DivideByZero { + public static void main(String[] args) { + int x = 10, y = 0, z; + z = x/y; + System.out.println("z = " + z); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/DivideByZeroWithTryCatch.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/DivideByZeroWithTryCatch.java new file mode 100644 index 0000000..285db97 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/DivideByZeroWithTryCatch.java @@ -0,0 +1,21 @@ +// DivideByZeroWithTryCatch.java +package com.jdojo.exception; + +public class DivideByZeroWithTryCatch { + public static void main(String[] args) { + int x = 10, y = 0, z; + try { + z = x / y; + System.out.println("z = " + z); + } + catch(ArithmeticException e) { + // Get the description of the exception + String msg = e.getMessage(); + + // Print a custom error message + System.out.println("An error has occurred. The error is: " + msg); + } + + System.out.println("At the end of the program."); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/FinallyTest.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/FinallyTest.java new file mode 100644 index 0000000..2a9ecfe --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/FinallyTest.java @@ -0,0 +1,55 @@ +// FinallyTest.java +package com.jdojo.exception; + +public class FinallyTest { + public static void main(String[] args) { + int x = 10, y = 0, z; + try { + System.out.println("Before dividing x by y."); + z = x / y; + System.out.println("After dividing x by y."); + } + catch (ArithmeticException e) { + System.out.println("Inside catch block - 1."); + } + finally { + System.out.println("Inside finally block - 1."); + } + + System.out.println("-------------------------------"); + + try { + System.out.println("Before setting z to 2449."); + z = 2449; + System.out.println("After setting z to 2449."); + } + catch (Exception e) { + System.out.println("Inside catch block - 2."); + } + finally { + System.out.println("Inside finally block - 2."); + } + + System.out.println("-------------------------------"); + + try { + System.out.println("Inside try block - 3."); + } + finally { + System.out.println("Inside finally block - 3."); + } + + System.out.println("-------------------------------"); + + try { + System.out.println("Before executing System.exit()."); + System.exit(0); + System.out.println("After executing System.exit()."); + } + finally { + // This finally block will not be executed + // because application exits in try block + System.out.println("Inside finally block - 4."); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/MyException.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/MyException.java new file mode 100644 index 0000000..bc2f5ac --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/MyException.java @@ -0,0 +1,20 @@ +// MyException.java +package com.jdojo.exception; + +public class MyException extends Exception { + public MyException() { + super(); + } + + public MyException(String message) { + super(message); + } + + public MyException(String message, Throwable cause) { + super(message, cause); + } + + public MyException(Throwable cause) { + super(cause); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/MyResource.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/MyResource.java new file mode 100644 index 0000000..4ba46c1 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/MyResource.java @@ -0,0 +1,29 @@ +// MyResource.java +package com.jdojo.exception; + +public class MyResource implements AutoCloseable { + private int level; + private boolean exceptionOnClose; + + public MyResource(int level, boolean exceptionOnClose) { + this.level = level; + this.exceptionOnClose = exceptionOnClose; + System.out.println("Creating MyResource. Level = " + level); + } + + public void use() { + if (level <= 0) { + throw new RuntimeException("Low in level."); + } + System.out.println("Using MyResource level " + this.level); + level--; + } + + @Override + public void close() { + if (exceptionOnClose) { + throw new RuntimeException("Error in closing"); + } + System.out.println("Closing MyResource..."); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput.java new file mode 100644 index 0000000..f16b848 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput.java @@ -0,0 +1,21 @@ +// ReadInput.java +package com.jdojo.exception; + +import java.io.IOException; + +public class ReadInput { + public static char readChar() { + char c = '\u0000'; + int input = 0; + try { + input = System.in.read(); + if (input != -1) { + c = (char)input; + } + } + catch (IOException e) { + System.out.print("IOException occurred while reading input."); + } + return c; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput2.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput2.java new file mode 100644 index 0000000..2173e0f --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput2.java @@ -0,0 +1,16 @@ +// ReadInput2.java +package com.jdojo.exception; + +import java.io.IOException; + +public class ReadInput2 { + public static char readChar() throws IOException { + char c = '\u0000'; + int input = 0; + input = System.in.read(); + if (input != -1) { + c = (char)input; + } + return c; + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput2Test2.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput2Test2.java new file mode 100644 index 0000000..3a1a844 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput2Test2.java @@ -0,0 +1,18 @@ +// ReadInput2Test2.java +package com.jdojo.exception; + +import java.io.IOException; + +public class ReadInput2Test2 { + public static void main(String[] args) { + char c = '\u0000'; + try { + System.out.print("Enter some text and then press Enter key:"); + c = ReadInput2.readChar(); + System.out.println("The first character you entered is: " + c); + } + catch(IOException e) { + System.out.println("Error occurred while reading input."); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput2Test3.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput2Test3.java new file mode 100644 index 0000000..36c6212 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInput2Test3.java @@ -0,0 +1,13 @@ +// ReadInput2Test3.java +package com.jdojo.exception; + +import java.io.IOException; + +public class ReadInput2Test3 { + public static void main(String[] args) throws IOException { + char c = '\u0000'; + System.out.print("Enter some text and then press Enter key: "); + c = ReadInput2.readChar(); + System.out.print("The first character you entered is: " + c); + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInputTest.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInputTest.java new file mode 100644 index 0000000..42dff84 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/ReadInputTest.java @@ -0,0 +1,10 @@ +// ReadInputTest.java +package com.jdojo.exception; + +public class ReadInputTest { + public static void main(String[] args) { + System.out.print("Enter some text and press Enter key: "); + char c = ReadInput.readChar(); + System.out.println("First character you entered is: " + c); + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/RethrowTest.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/RethrowTest.java new file mode 100644 index 0000000..c541b77 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/RethrowTest.java @@ -0,0 +1,28 @@ +// RethrowTest.java +package com.jdojo.exception; + +public class RethrowTest { + public static void main(String[] args) { + try { + m1(); + } + catch(MyException e) { + // Print the stack trace + e.printStackTrace(); + } + } + + public static void m1() throws MyException { + try { + m2(); + } + catch(MyException e) { + e.fillInStackTrace(); + throw e; + } + } + + public static void m2() throws MyException { + throw new MyException("An error has occurred."); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/SimpleTryWithResource.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/SimpleTryWithResource.java new file mode 100644 index 0000000..64aa760 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/SimpleTryWithResource.java @@ -0,0 +1,13 @@ +// SimpleTryWithResource.java +package com.jdojo.exception; + +public class SimpleTryWithResource { + public static void main(String[] args) { + // Create and use a resource of MyResource type. + // Its close() method will be called automatically */ + try (MyResource mr = new MyResource(2, false)) { + mr.use(); + mr.use(); + } + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/StackFrameTest.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/StackFrameTest.java new file mode 100644 index 0000000..ef22781 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/StackFrameTest.java @@ -0,0 +1,49 @@ +// StackFrameTest.java +package com.jdojo.exception; + +public class StackFrameTest { + public static void main(String[] args) { + m1(); + } + + public static void m1() { + m2(); + } + + public static void m2() { + m3(); + } + + public static void m3() { + // Create a Throwable object that will hold the stack state + // at this point for the thread that executes the following statement + Throwable t = new Throwable(); + + // Get the stack trace elements + StackTraceElement[] frames = t.getStackTrace(); + + // Print details about the stack frames + printStackDetails(frames); + } + + public static void printStackDetails(StackTraceElement[] frames) { + System.out.println("Frame count: " + frames.length); + + for (int i = 0; i < frames.length; i++) { + // Get frame details + int frameIndex = i; // i = 0 means top frame + String fileName = frames[i].getFileName(); + String className = frames[i].getClassName(); + String methodName = frames[i].getMethodName(); + int lineNumber = frames[i].getLineNumber(); + + // Print frame details + System.out.println("Frame Index: " + frameIndex); + System.out.println("File Name: " + fileName); + System.out.println("Class Name: " + className); + System.out.println("Method Name: " + methodName); + System.out.println("Line Number: " + lineNumber); + System.out.println("---------------------------"); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/StackTraceAsStringTest.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/StackTraceAsStringTest.java new file mode 100644 index 0000000..2f8bfa7 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/StackTraceAsStringTest.java @@ -0,0 +1,38 @@ +// StackTraceAsStringTest.java +package com.jdojo.exception; + +import java.io.StringWriter; +import java.io.PrintWriter; + +public class StackTraceAsStringTest { + public static void main(String[] args) { + try { + m1(); + } + catch(MyException e) { + String str = getStackTrace(e); + + // Print the stack trace to the standard output + System.out.println(str); + } + } + + public static void m1() throws MyException { + m2(); + } + + public static void m2() throws MyException { + throw new MyException("Some error has occurred."); + } + + public static String getStackTrace(Throwable e) { + StringWriter strWriter = new StringWriter(); + PrintWriter printWriter = new PrintWriter(strWriter); + e.printStackTrace(printWriter); + + // Get the stack trace as a string + String str = strWriter.toString(); + + return str; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/exception/StackTraceTest.java b/BeginningJava8Fundamentals/src/com/jdojo/exception/StackTraceTest.java new file mode 100644 index 0000000..504b056 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/exception/StackTraceTest.java @@ -0,0 +1,21 @@ +// StackTraceTest.java +package com.jdojo.exception; + +public class StackTraceTest { + public static void main(String[] args) { + try { + m1(); + } + catch(MyException e) { + e.printStackTrace(); // Print the stack trace + } + } + + public static void m1() throws MyException { + m2(); + } + + public static void m2() throws MyException { + throw new MyException("Some error has occurred."); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/format/DecimalFormatter.java b/BeginningJava8Fundamentals/src/com/jdojo/format/DecimalFormatter.java new file mode 100644 index 0000000..7cdb2d5 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/format/DecimalFormatter.java @@ -0,0 +1,43 @@ +// DecimalFormatter.java +package com.jdojo.format; + +import java.text.DecimalFormat; +import java.text.ParsePosition; + +public class DecimalFormatter { + private static DecimalFormat formatter = new DecimalFormat(); + public static void main (String[] args){ + formatNumber("##.##", 12.745); + formatNumber("##.##", 12.746); + formatNumber("0000.0000", 12.735); + formatNumber("#.##", -12.735); + + // Positive and negative number format + formatNumber("#.##;(#.##)", -12.735); + + // Parse a string to decimal number + String str = "XY4,123.983"; + String pattern = "#,###.###"; + formatter.applyPattern(pattern); + + // Create a ParsePosition object to specify the first digit of + // number in string. It is 4 in "XY4,123.983" and its index is 2. + ParsePosition pp = new ParsePosition(2); + + Number numberObject = formatter.parse(str, pp); + + double value = numberObject.doubleValue(); + System.out.println("Parsed Value is " + value); + } + + public static void formatNumber(String pattern, double value) { + // Apply the pattern + formatter.applyPattern ( pattern ); + + // Format the number + String formattedNumber = formatter.format(value) ; + + System.out.println("Number:" + value + ", Pattern:" + pattern + + ", Formatted Number:" + formattedNumber); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/format/DefaultNumberFormatters.java b/BeginningJava8Fundamentals/src/com/jdojo/format/DefaultNumberFormatters.java new file mode 100644 index 0000000..4ff3383 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/format/DefaultNumberFormatters.java @@ -0,0 +1,30 @@ +// DefaultNumberFormatters.java +package com.jdojo.format; + +import java.text.NumberFormat; +import java.util.Locale; + +public class DefaultNumberFormatters { + public static void main(String[] args){ + double value = 1566789.785 ; + + // Default locale + printFormatted(Locale.getDefault(), value); + + // Indian locale + // (Rupee is the Indian currency. Short form is Rs.) + Locale indianLocale = new Locale("en", "IN"); + printFormatted(indianLocale, value); + } + + public static void printFormatted(Locale locale, double value) { + // Get number and currency formatter + NumberFormat nf = NumberFormat.getInstance(locale); + NumberFormat cf = NumberFormat.getCurrencyInstance(locale); + + System.out.println("Formatting value: " + value + " for locale: " + locale); + System.out.println("Number: " + nf.format(value)); + System.out.println("Currency: " + cf.format(value)); + System.out.println(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/format/FormattablePerson.java b/BeginningJava8Fundamentals/src/com/jdojo/format/FormattablePerson.java new file mode 100644 index 0000000..f39edcf --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/format/FormattablePerson.java @@ -0,0 +1,38 @@ +// FormattablePerson.java +package com.jdojo.format; + +import java.util.Formattable; +import java.util.Formatter; +import java.util.FormattableFlags; + +public class FormattablePerson implements Formattable { + private String firstName = "Unknown"; + private String lastName = "Unknown"; + + public FormattablePerson(String firstName, String lastName ) { + this.firstName = firstName; + this.lastName = lastName; + } + + // Other code goes here... + + public void formatTo(Formatter formatter, int flags, int width, + int precision) { + String str = this.firstName + " " + this.lastName; + + int alternateFlagValue = FormattableFlags.ALTERNATE & flags; + if (alternateFlagValue == FormattableFlags.ALTERNATE) { + str = this.lastName + ", " + this.firstName; + } + + // Check if uppercase variant of the conversio is being used + int upperFlagValue = FormattableFlags.UPPERCASE & flags; + if (upperFlagValue == FormattableFlags.UPPERCASE) { + str = str.toUpperCase(); + } + + // Call the format() method of formatter argument so that out + // result is stored in it and the caller will get it + formatter.format(str); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/format/ParseTimeStamp.java b/BeginningJava8Fundamentals/src/com/jdojo/format/ParseTimeStamp.java new file mode 100644 index 0000000..fe76f06 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/format/ParseTimeStamp.java @@ -0,0 +1,35 @@ +// ParseTimeStamp.java +package com.jdojo.format; + +import java.text.ParsePosition; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +public class ParseTimeStamp { + public static void main(String[] args){ + String input = "2003-04-03 09:10:40.325"; + + // Prepare the pattern + String pattern = "yyyy-MM-dd HH:mm:ss.SSS" ; + + SimpleDateFormat sdf = new SimpleDateFormat(pattern); + + // Parse the text into a Date object + Date dt = sdf.parse(input, new ParsePosition(0)); + System.out.println(dt); + + // Get the Calendar instance + Calendar cal = Calendar.getInstance(); + + // Set the time + cal.setTime(dt); + + // Print time parts + System.out.println("Hour:" + cal.get(Calendar.HOUR)); + System.out.println("Minute:" + cal.get(Calendar.MINUTE)); + System.out.println("Second:" + cal.get(Calendar.SECOND)); + System.out.println("Millisecond:"+ cal.get(Calendar.MILLISECOND)); + + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/format/PredefinedDateFormats.java b/BeginningJava8Fundamentals/src/com/jdojo/format/PredefinedDateFormats.java new file mode 100644 index 0000000..b921c99 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/format/PredefinedDateFormats.java @@ -0,0 +1,62 @@ +// PredefinedDateFormats.java +package com.jdojo.format; + +import java.text.DateFormat; +import java.util.Date; +import java.util.Locale; + +public class PredefinedDateFormats { + public static void main(String[] args) { + // Get current date + Date today = new Date(); + + // Print date in the default locale format + Locale defaultLocale = Locale.getDefault(); + printLocaleDetails(defaultLocale); + printDate(defaultLocale, today); + + // Print date in French format + printLocaleDetails(Locale.FRANCE); + printDate(Locale.FRANCE, today); + + // Print date in German format. We could also use Locale.GERMANY instead of new Locale ("de", "DE") + Locale germanLocale = new Locale ("de", "DE"); + printLocaleDetails(germanLocale); + printDate(germanLocale, today); + } + + public static void printLocaleDetails (Locale locale){ + String languageCode = locale.getLanguage(); + String languageName = locale.getDisplayLanguage(); + String countryCode = locale.getCountry(); + String countryName = locale.getDisplayCountry(); + + // Print the locale info + System.out.println("Language: " + languageName + + "(" + languageCode + "); " + + "Country: " + countryName + + "(" + countryCode + ")" ); + } + + public static void printDate (Locale locale, Date date){ + DateFormat formatter; + String formattedDate; + + // Get the date instance for SHORT style for locale + formatter = DateFormat.getDateInstance(DateFormat.SHORT, locale); + + // Format the date and print it + formattedDate = formatter.format(date); + System.out.println("SHORT: " + formattedDate); + + // Get the date instance for MEDIUM style for locale + formatter = DateFormat.getDateInstance(DateFormat.MEDIUM, locale); + + // Format the date and print it + formattedDate = formatter.format(date); + System.out.println("MEDIUM: " + formattedDate); + + // Print a blank line at the end + System.out.println(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/format/PrintfTest.java b/BeginningJava8Fundamentals/src/com/jdojo/format/PrintfTest.java new file mode 100644 index 0000000..b832381 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/format/PrintfTest.java @@ -0,0 +1,24 @@ +// PrintfTest.java +package com.jdojo.format; + +import java.util.Date; + +public class PrintfTest { + public static void main(String[] args) { + // Formatting strings + System.out.printf("%1$s, %2$s, and %3$s %n", "Fu", "Hu", "Lo"); + System.out.printf("%3$s, %2$s, and %1$s %n", "Fu", "Hu", "Lo"); + + // Formatting numbers + System.out.printf("%1$4d, %2$4d, %3$4d %n", 1, 10, 100); + System.out.printf("%1$4d, %2$4d, %3$4d %n", 10, 100, 1000); + System.out.printf("%1$-4d, %2$-4d, %3$-4d %n", 1, 10, 100); + System.out.printf("%1$-4d, %2$-4d, %3$-4d %n", 10, 100, 1000); + + // Formatting date and time + Date dt = new Date(); + System.out.printf("Today is %tD %n", dt); + System.out.printf("Today is %tF %n", dt); + System.out.printf("Today is %tc %n", dt); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/AOSub.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/AOSub.java new file mode 100644 index 0000000..162a85f --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/AOSub.java @@ -0,0 +1,17 @@ +// AOSub.java +package com.jdojo.inheritance; + +public class AOSub extends AOSuper { + public void print() { + // Call print() method of AOSuper class + super.print(); + + // Print a message + System.out.println("Inside AOSub.print()"); + } + + public void callOverridenPrint() { + // Call print() method of AOSuper class + super.print(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/AOSuper.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/AOSuper.java new file mode 100644 index 0000000..4f2424c --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/AOSuper.java @@ -0,0 +1,8 @@ +// AOSuper.java +package com.jdojo.inheritance; + +public class AOSuper { + public void print() { + System.out.println("Inside AOSuper.print()"); + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/AOTest.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/AOTest.java new file mode 100644 index 0000000..fe74f78 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/AOTest.java @@ -0,0 +1,10 @@ +// AOTest.java +package com.jdojo.inheritance; + +public class AOTest { + public static void main(String[] args) { + AOSub aoSub = new AOSub(); + aoSub.print(); + aoSub.callOverridenPrint(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Adder.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Adder.java new file mode 100644 index 0000000..b143d6f --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Adder.java @@ -0,0 +1,12 @@ +// Adder.java +package com.jdojo.inheritance; + +public class Adder { + public double add(int a, double b) { + return a + b; + } + + public double add(double a, int b) { + return a + b; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/AdderTest.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/AdderTest.java new file mode 100644 index 0000000..a158d50 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/AdderTest.java @@ -0,0 +1,9 @@ +// AdderTest.java +package com.jdojo.inheritance; + +public class AdderTest { + public static void main(String[] args) { + Adder a = new Adder(); + double d = a.add(2, 3); // A compiler error + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/CSub.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/CSub.java new file mode 100644 index 0000000..3f7c386 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/CSub.java @@ -0,0 +1,9 @@ +// CSub.java +package com.jdojo.inheritance; + +public class CSub extends CSuper { + public CSub() { + super(); // Injected by the compiler + System.out.println("Inside CSub() constructor."); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/CSuper.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/CSuper.java new file mode 100644 index 0000000..2739d25 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/CSuper.java @@ -0,0 +1,9 @@ +// CSuper.java +package com.jdojo.inheritance; + +public class CSuper { + public CSuper() { + super(); // Injected by the compiler + System.out.println("Inside CSuper() constructor."); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/CTest.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/CTest.java new file mode 100644 index 0000000..9d1b2e9 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/CTest.java @@ -0,0 +1,8 @@ +// CTest.java +package com.jdojo.inheritance; + +public class CTest { + public static void main(String[] args) { + CSub cs = new CSub(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Circle.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Circle.java new file mode 100644 index 0000000..cf86099 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Circle.java @@ -0,0 +1,26 @@ +// Circle.java +package com.jdojo.inheritance; + +public class Circle extends Shape { + private double radius; + + public Circle(double radius) { + super("Circle"); + this.radius = radius; + } + + // Provide an implementation for inherited abstract draw() method + public void draw() { + System.out.println("Drawing a circle..."); + } + + // Provide an implementation for inherited abstract getArea() method + public double getArea() { + return Math.PI * radius * radius; + } + + // Provide an implementation for inherited abstract getPerimeter() method + public double getPerimeter() { + return 2.0 * Math.PI * radius; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/EarlyBindingSub.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/EarlyBindingSub.java new file mode 100644 index 0000000..3931085 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/EarlyBindingSub.java @@ -0,0 +1,14 @@ +// EarlyBindingSub.java +package com.jdojo.inheritance; + +public class EarlyBindingSub extends EarlyBindingSuper{ + // An instance variable + public String str = "EarlyBindingSub"; + + // A static variable + public static int count = 200; + + public static void print() { + System.out.println("Inside EarlyBindingSub.print()"); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/EarlyBindingSuper.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/EarlyBindingSuper.java new file mode 100644 index 0000000..5d4dd9d --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/EarlyBindingSuper.java @@ -0,0 +1,14 @@ +// EarlyBindingSuper.java +package com.jdojo.inheritance; + +public class EarlyBindingSuper { + // An instance variable + public String str = "EarlyBindingSuper"; + + // A static variable + public static int count = 100; + + public static void print() { + System.out.println("Inside EarlyBindingSuper.print()"); + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/EarlyBindingTest.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/EarlyBindingTest.java new file mode 100644 index 0000000..20afb15 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/EarlyBindingTest.java @@ -0,0 +1,59 @@ +// EarlyBindingTest.java +package com.jdojo.inheritance; + +public class EarlyBindingTest { + public static void main(String[] args) { + EarlyBindingSuper ebSuper = new EarlyBindingSuper(); + EarlyBindingSub ebSub = new EarlyBindingSub(); + + // Will access EarlyBindingSuper.str + System.out.println(ebSuper.str); + + // Will access EarlyBindingSuper.count + System.out.println(ebSuper.count); + + // Will access EarlyBindingSuper.print() + ebSuper.print(); + + System.out.println("------------------------------"); + + // Will access EarlyBindingSub.str + System.out.println(ebSub.str); + + // Will access EarlyBindingSub.count + System.out.println(ebSub.count); + + // Will access EarlyBindingSub.print() + ebSub.print(); + + System.out.println("------------------------------"); + + // Will access EarlyBindingSuper.str + System.out.println(((EarlyBindingSuper)ebSub).str); + + // Will access EarlyBindingSuper.count + System.out.println(((EarlyBindingSuper)ebSub).count); + + // Will access EarlyBindingSuper.print() + ((EarlyBindingSuper)ebSub).print(); + + System.out.println("------------------------------"); + + // Assign the ebSub to ebSuper + ebSuper = ebSub; // Upcasting + + /* Now access methods and fields using ebSuper variable, which is + referring to a EarlyBindingSub object + */ + + // Will access EarlyBindingSuper.str + System.out.println(ebSuper.str); + + // Will access EarlyBindingSuper.count + System.out.println(ebSuper.count); + + // Will access EarlyBindingSuper.print() + ebSuper.print(); + System.out.println("------------------------------"); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/EmpUtil.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/EmpUtil.java new file mode 100644 index 0000000..dab78dd --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/EmpUtil.java @@ -0,0 +1,12 @@ +// EmpUtil.java +package com.jdojo.inheritance; + +public class EmpUtil { + public static void printName(Employee emp){ + // Get the name of employee + String name = emp.getName(); + + // Print employee name + System.out.println(name); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Employee.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Employee.java new file mode 100644 index 0000000..cb05006 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Employee.java @@ -0,0 +1,14 @@ +// Employee.java +package com.jdojo.inheritance; + +public class Employee { + private String name = "Unknown"; + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Employee2.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Employee2.java new file mode 100644 index 0000000..d230afd --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Employee2.java @@ -0,0 +1,18 @@ +// Employee2.java +package com.jdojo.inheritance; + +public class Employee2 { + private String name = "Unknown"; + + public Employee2(String name) { + this.name = name; + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSub.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSub.java new file mode 100644 index 0000000..6f89590 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSub.java @@ -0,0 +1,9 @@ +// FHidingSub.java +package com.jdojo.inheritance; + +public class FHidingSub extends FHidingSuper { + public void print() { + System.out.println("num: " + num); + System.out.println("name: " + name); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSub2.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSub2.java new file mode 100644 index 0000000..c7caf57 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSub2.java @@ -0,0 +1,15 @@ +// FHidingSub2.java +package com.jdojo.inheritance; + +public class FHidingSub2 extends FHidingSuper{ + // Hides num field in FHidingSuper class + private int num = 200; + + // Hides name field in FHidingSuper class + private String name = "Wally Inman"; + + public void print() { + System.out.println("num: " + num); + System.out.println("name: " + name); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSub3.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSub3.java new file mode 100644 index 0000000..843a493 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSub3.java @@ -0,0 +1,24 @@ +// FHidingSub3.java +package com.jdojo.inheritance; + +public class FHidingSub3 extends FHidingSuper{ + // Hides the num field in FHidingSuper class + private int num = 200; + + // Hides the name field in FHidingSuper class + private String name = "Wally Inman"; + + public void print() { + // FHidingSub3.num + System.out.println("num: " + num); + + // FHidingSuper.num + System.out.println("super.num: " + super.num); + + // FHidingSub3.name + System.out.println("name: " + name); + + // FHidingSuper.name + System.out.println("super.name: " + super.name); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSuper.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSuper.java new file mode 100644 index 0000000..f5aac91 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingSuper.java @@ -0,0 +1,7 @@ +// FHidingSuper.java +package com.jdojo.inheritance; + +public class FHidingSuper { + protected int num = 100; + protected String name = "John Jacobs"; +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingTest.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingTest.java new file mode 100644 index 0000000..85fa062 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingTest.java @@ -0,0 +1,9 @@ +// FHidingTest.java +package com.jdojo.inheritance; + +public class FHidingTest { + public static void main(String[] args) { + FHidingSub fhSub = new FHidingSub(); + fhSub.print(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingTest2.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingTest2.java new file mode 100644 index 0000000..c77d56a --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingTest2.java @@ -0,0 +1,9 @@ +// FHidingTest2.java +package com.jdojo.inheritance; + +public class FHidingTest2 { + public static void main(String[] args) { + FHidingSub2 fhSub2 = new FHidingSub2(); + fhSub2.print(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingTest3.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingTest3.java new file mode 100644 index 0000000..a34e0c7 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/FHidingTest3.java @@ -0,0 +1,9 @@ +// FHidingTest3.java +package com.jdojo.inheritance; + +public class FHidingTest3 { + public static void main(String[] args) { + FHidingSub3 fhSub3 = new FHidingSub3(); + fhSub3.print(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/GenericSuper.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/GenericSuper.java new file mode 100644 index 0000000..b5739db --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/GenericSuper.java @@ -0,0 +1,12 @@ +// GenericSuper.java +package com.jdojo.inheritance; + +public class GenericSuper { + public void m1(T a) { + // Code goes here + } + + public

    void m2(P a) { + // Code goes here + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/LateBindingSub.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/LateBindingSub.java new file mode 100644 index 0000000..d918596 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/LateBindingSub.java @@ -0,0 +1,8 @@ +// LateBindingSub.java +package com.jdojo.inheritance; + +public class LateBindingSub extends LateBindingSuper{ + public void print() { + System.out.println("Inside LateBindingSub.print()"); + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/LateBindingSuper.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/LateBindingSuper.java new file mode 100644 index 0000000..d72262d --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/LateBindingSuper.java @@ -0,0 +1,8 @@ +// LateBindingSuper.java +package com.jdojo.inheritance; + +public class LateBindingSuper { + public void print() { + System.out.println("Inside LateBindingSuper.print()"); + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/LateBindingTest.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/LateBindingTest.java new file mode 100644 index 0000000..d6fe1d1 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/LateBindingTest.java @@ -0,0 +1,25 @@ +// LateBindingTest.java +package com.jdojo.inheritance; + +public class LateBindingTest { + public static void main(String[] args) { + LateBindingSuper lbSuper = new LateBindingSuper(); + LateBindingSub lbSub = new LateBindingSub(); + + // Will access EarlyBindingSuper.print() + lbSuper.print(); // #1 + + // Will access EarlyBindingSub.print() + lbSub.print(); // #2 + + // Will access EarlyBindingSub.print() + ((LateBindingSuper)lbSub).print(); // #3 + + // Assign the lbSub to lbSuper + lbSuper = lbSub; // Upcasting + + // Will access EarlyBindingSub.print() because lbSuper + // is referring to a LateBindingSub object + lbSuper.print(); // #4 + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/MHidingSub.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/MHidingSub.java new file mode 100644 index 0000000..de51649 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/MHidingSub.java @@ -0,0 +1,8 @@ +// MHidingSub.java +package com.jdojo.inheritance; + +public class MHidingSub extends MHidingSuper { + public static void print() { + System.out.println("Inside MHidingSub.print()"); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/MHidingSuper.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/MHidingSuper.java new file mode 100644 index 0000000..2ec733b --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/MHidingSuper.java @@ -0,0 +1,8 @@ +// MHidingSuper.java +package com.jdojo.inheritance; + +public class MHidingSuper { + public static void print() { + System.out.println("Inside MHidingSuper.print()"); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/MHidingTest.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/MHidingTest.java new file mode 100644 index 0000000..a68ca1a --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/MHidingTest.java @@ -0,0 +1,29 @@ +// MHidingTest.java +package com.jdojo.inheritance; + +public class MHidingTest { + public static void main(String[] args) { + MHidingSuper mhSuper = new MHidingSub(); + MHidingSub mhSub = new MHidingSub(); + + System.out.println("#1"); + + // #1 + MHidingSuper.print(); + mhSuper.print(); + + System.out.println("#2"); + + // #2 + MHidingSub.print(); + mhSub.print(); + ((MHidingSuper) mhSub).print(); + + System.out.println("#3"); + + // #3 + mhSuper = mhSub; + mhSuper.print(); + ((MHidingSub) mhSuper).print(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Manager.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Manager.java new file mode 100644 index 0000000..8b8288b --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Manager.java @@ -0,0 +1,6 @@ +// Manager.java +package com.jdojo.inheritance; + +public class Manager extends Employee { + // No code is needed for now +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Manager2.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Manager2.java new file mode 100644 index 0000000..ee29ce0 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Manager2.java @@ -0,0 +1,8 @@ +// Manager2.java +package com.jdojo.inheritance; + +public class Manager2 extends Employee2 { + public Manager2(String name) { + super(name); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Manager2Test.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Manager2Test.java new file mode 100644 index 0000000..8c2ed53 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Manager2Test.java @@ -0,0 +1,10 @@ +// Manager2Test.java +package com.jdojo.inheritance; + +public class Manager2Test { + public static void main(String[] args) { + Manager2 mgr = new Manager2("John Jacobs"); + String name = mgr.getName(); + System.out.println("Manager name: " + name); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/OverloadingTest.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/OverloadingTest.java new file mode 100644 index 0000000..6322399 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/OverloadingTest.java @@ -0,0 +1,52 @@ +// OverloadingTest.java +package com.jdojo.inheritance; + +public class OverloadingTest { + public double add(int a, int b) { + System.out.println("Inside add(int a, int b)"); + double s = a + b; + return s; + } + + public double add(double a, double b) { + System.out.println("Inside add(double a, double b)"); + double s = a + b; + return s; + } + + public void test(Employee e) { + System.out.println("Inside test(Employee e)"); + } + + public void test(Manager e) { + System.out.println("Inside test(Manager m)"); + } + + public static void main(String[] args) { + OverloadingTest ot = new OverloadingTest(); + + int i = 10; + int j = 15; + double d1 = 10.4; + double d2 = 2.5; + float f1 = 2.3F; + float f2 = 4.5F; + short s1 = 2; + short s2 = 6; + + ot.add(i, j); + ot.add(d1, j); + ot.add(i, s1); + ot.add(s1, s2); + ot.add(f1, f2); + ot.add(f1, s2); + + Employee emp = new Employee(); + Manager mgr = new Manager(); + ot.test(emp); + ot.test(mgr); + + emp = mgr; + ot.test(emp); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Rectangle.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Rectangle.java new file mode 100644 index 0000000..cad2b19 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Rectangle.java @@ -0,0 +1,29 @@ +// Rectangle.java +package com.jdojo.inheritance; + +public class Rectangle extends Shape { + private double width; + private double height; + + public Rectangle(double width, double height) { + // Set the shape name as "Rectangle" + super("Rectangle"); + this.width = width; + this.height = height; + } + + // Provide an implementation for inherited abstract draw() method + public void draw() { + System.out.println("Drawing a rectangle..."); + } + + // Provide an implementation for inherited abstract getArea() method + public double getArea() { + return width * height; + } + + // Provide an implementation for inherited abstract getPerimeter() method + public double getPerimeter() { + return 2.0 * (width + height); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Shape.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Shape.java new file mode 100644 index 0000000..06e47e6 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/Shape.java @@ -0,0 +1,27 @@ +// Shape.java +package com.jdojo.inheritance; + +public abstract class Shape { + private String name; + + public Shape() { + this.name = "Unknown shape"; + } + + public Shape(String name) { + this.name = name; + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + // Abstract methods + public abstract void draw(); + public abstract double getArea(); + public abstract double getPerimeter(); +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/ShapeUtil.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/ShapeUtil.java new file mode 100644 index 0000000..825fd0e --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/ShapeUtil.java @@ -0,0 +1,25 @@ +// ShapeUtil.java +package com.jdojo.inheritance; + +public class ShapeUtil { + public static void drawShapes(Shape[] list) { + for (int i = 0; i < list.length; i++) { + // Draw a shape, no matter what it is + list[i].draw(); // Late binding + } + } + + public static void printShapeDetails(Shape[] list) { + for (int i = 0; i < list.length; i++) { + // Gather details about the shape + String name = list[i].getName(); // Late Binding + double area = list[i].getArea(); // Late binding + double perimeter = list[i].getPerimeter(); // Late binding + + // Print details + System.out.println("Name: " + name); + System.out.println("Area: " + area); + System.out.println("Perimeter: " + perimeter); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/ShapeUtilTest.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/ShapeUtilTest.java new file mode 100644 index 0000000..1da1320 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/ShapeUtilTest.java @@ -0,0 +1,17 @@ +// ShapeUtilTest +package com.jdojo.inheritance; + +public class ShapeUtilTest { + public static void main(String[] args) { + // Create some shapes, draw, and print their details + Shape[] shapeList = new Shape[2]; + shapeList[0] = new Rectangle(2.0, 4.0); // Upcasting + shapeList[1] = new Circle(5.0); // Upcasting + + // Draw all shapes + ShapeUtil.drawShapes(shapeList); + + // Print details of all shapes + ShapeUtil.printShapeDetails(shapeList); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/SimplestInheritanceTest.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/SimplestInheritanceTest.java new file mode 100644 index 0000000..13484f3 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/SimplestInheritanceTest.java @@ -0,0 +1,18 @@ +// SimplestInheritanceTest.java +package com.jdojo.inheritance; + +public class SimplestInheritanceTest { + public static void main(String[] args) { + // Create an object of the Manager class + Manager mgr = new Manager(); + + // Set the name of the manager + mgr.setName("Leslie Zanders"); + + // Get the name of the manager + String mgrName = mgr.getName(); + + // Display the manager name + System.out.println("Manager Name: " + mgrName); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/inheritance/UpcastTest.java b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/UpcastTest.java new file mode 100644 index 0000000..3fcc628 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/inheritance/UpcastTest.java @@ -0,0 +1,16 @@ +// UpcastTest.java +package com.jdojo.inheritance; + +public class UpcastTest { + public static void main(String[] args) { + Employee emp = new Employee(); + emp.setName("Ken Wood"); + + Manager mgr = new Manager(); + mgr.setName("Ken Furr"); // Inheritance of setName() at work + + // Print names + EmpUtil.printName(emp); + EmpUtil.printName(mgr); // Upcasting at work + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Cat.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Cat.java new file mode 100644 index 0000000..78fd205 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Cat.java @@ -0,0 +1,14 @@ +// Cat.java +package com.jdojo.interfaces; + +public class Cat implements Walkable { + private String name; + + public Cat(String name) { + this.name = name; + } + + public void walk() { + System.out.println(name + " (a cat) is walking."); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/CharitySinger.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/CharitySinger.java new file mode 100644 index 0000000..72496fd --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/CharitySinger.java @@ -0,0 +1,14 @@ +// CharitySinger.java +package com.jdojo.interfaces; + +public interface CharitySinger extends Singer { + @Override + default void setRate(double rate) { + // A no-op + } + + @Override + default double getRate() { + return 0.0; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/CharitySingerPlayer.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/CharitySingerPlayer.java new file mode 100644 index 0000000..0804d79 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/CharitySingerPlayer.java @@ -0,0 +1,15 @@ +// CharitySingerPlayer.java +package com.jdojo.interfaces; + +public interface CharitySingerPlayer extends CharitySinger, Player { + // Override the setRate() method with an abstract method + @Override + void setRate(double rate); + + // Override the getRate() method with a default method that calls the + // Player superinterface getRate() method + @Override + default double getRate() { + return Player.super.getRate(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Choices.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Choices.java new file mode 100644 index 0000000..8878d20 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Choices.java @@ -0,0 +1,7 @@ +// Choices.java +package com.jdojo.interfaces; + +public interface Choices { + public static final int YES = 1; + public static final int NO = 2; +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/ChoicesTest.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/ChoicesTest.java new file mode 100644 index 0000000..937d2a7 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/ChoicesTest.java @@ -0,0 +1,9 @@ +// ChoicesTest.java +package com.jdojo.interfaces; + +public class ChoicesTest { + public static void main(String[] args) { + System.out.println("Choices.YES = " + Choices.YES); + System.out.println("Choices.NO = " + Choices.NO); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/ComparablePerson.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/ComparablePerson.java new file mode 100644 index 0000000..c3a682e --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/ComparablePerson.java @@ -0,0 +1,43 @@ +// ComparablePerson.java +package com.jdojo.interfaces; + +public class ComparablePerson implements Comparable { + + private String firstName; + private String lastName; + + public ComparablePerson(String firstName, String lastName) { + this.firstName = firstName; + this.lastName = lastName; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + // Compares two persons based on their last names. If last names are + // the same, use first names + public int compareTo(ComparablePerson anotherPerson) { + int diff = getLastName().compareTo(anotherPerson.getLastName()); + if (diff == 0) { + diff = getFirstName().compareTo(anotherPerson.getFirstName()); + } + return diff; + } + + public String toString() { + return getLastName() + ", " + getFirstName(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/ComparablePersonTest.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/ComparablePersonTest.java new file mode 100644 index 0000000..dd25caf --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/ComparablePersonTest.java @@ -0,0 +1,28 @@ +// ComparablePersonTest.java +package com.jdojo.interfaces; + +import java.util.Arrays; + +public class ComparablePersonTest { + public static void main(String[] args) { + ComparablePerson[] persons = new ComparablePerson[] { + new ComparablePerson("John", "Jacobs"), + new ComparablePerson("Jeff", "Jacobs"), + new ComparablePerson("Wally", "Inman")}; + + System.out.println("Before sorting..."); + print(persons); + + // Sort the persons list + Arrays.sort(persons); + + System.out.println("\nAfter sorting..."); + print(persons); + } + + public static void print(ComparablePerson[] persons) { + for(ComparablePerson person: persons){ + System.out.println(person); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/ComparablePersonTest2.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/ComparablePersonTest2.java new file mode 100644 index 0000000..06bf5d9 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/ComparablePersonTest2.java @@ -0,0 +1,64 @@ +// ComparablePersonTest2.java +package com.jdojo.interfaces; + +import java.util.Arrays; +import java.util.Comparator; + +public class ComparablePersonTest2 { + public static void main(String[] args) { + ComparablePerson[] persons = new ComparablePerson[]{ + new ComparablePerson("John", "Jacobs"), + new ComparablePerson("Jeff", "Jacobs"), + new ComparablePerson("Wally", "Inman")}; + + System.out.println("Original array..."); + print(persons); + + // Sort using first name + Comparator fnComparator = new FirstNameComparator(); + Arrays.sort(persons, fnComparator); + System.out.println("\nAfter sorting on first name..."); + print(persons); + + // Sort using last name + Comparator lnComparator = new LastNameComparator(); + Arrays.sort(persons, lnComparator); + System.out.println("\nAfter sorting on last name..."); + print(persons); + + // Sort using first name, then last name + Comparator firstLastComparator = + fnComparator.thenComparing(lnComparator); + Arrays.sort(persons, firstLastComparator); + System.out.println("\nAfter sorting on first, then last name..."); + print(persons); + + // Sort using first name, then last name in reversed order + Comparator firstLastReverseComparator = + firstLastComparator.reversed(); + Arrays.sort(persons, firstLastReverseComparator); + System.out.println("\nAfter sorting on first, then last name in reversed..."); + print(persons); + + // Sort using first name, then last name using null first + Comparator nullFirstComparator = + Comparator.nullsFirst(firstLastComparator); + ComparablePerson[] personsWithNulls = new ComparablePerson[]{ + new ComparablePerson("John", "Jacobs"), + null, + new ComparablePerson("Jeff", "Jacobs"), + new ComparablePerson("Wally", "Inman"), + null}; + + Arrays.sort(personsWithNulls, nullFirstComparator); + System.out.println("\nAfter sorting on first, then last name " + + "using null first..."); + print(personsWithNulls); + } + + public static void print(ComparablePerson[] persons) { + for (ComparablePerson person : persons) { + System.out.println(person); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Duck.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Duck.java new file mode 100644 index 0000000..f8321e5 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Duck.java @@ -0,0 +1,14 @@ +// Duck.java +package com.jdojo.interfaces; + +public class Duck implements Walkable { + private String name; + + public Duck(String name) { + this.name = name; + } + + public void walk() { + System.out.println(name + " (a duck) is walking."); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/FirstNameComparator.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/FirstNameComparator.java new file mode 100644 index 0000000..a9cdef8 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/FirstNameComparator.java @@ -0,0 +1,13 @@ +// FirstNameComparator.java +package com.jdojo.interfaces; + +import java.util.Comparator; + +public class FirstNameComparator implements Comparator { + public int compare(ComparablePerson p1, ComparablePerson p2) { + String firstName1 = p1.getFirstName(); + String firstName2 = p2.getFirstName(); + int diff = firstName1.compareTo(firstName2); + return diff; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Fish.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Fish.java new file mode 100644 index 0000000..f5fabd3 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Fish.java @@ -0,0 +1,14 @@ +// Fish.java +package com.jdojo.interfaces; + +public class Fish implements Swimmable { + private String name; + + public Fish(String name) { + this.name = name; + } + + public void swim() { + System.out.println(name + " (a fish) is swimming."); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Generous.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Generous.java new file mode 100644 index 0000000..ca3d783 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Generous.java @@ -0,0 +1,6 @@ +// Generous.java +package com.jdojo.interfaces; + +public interface Generous { + void give(); +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/GenerousGiver.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/GenerousGiver.java new file mode 100644 index 0000000..7f20474 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/GenerousGiver.java @@ -0,0 +1,7 @@ +// GenerousGiver.java +package com.jdojo.interfaces; + +public class GenerousGiver extends Giver implements Generous { + public void give() { + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Giver.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Giver.java new file mode 100644 index 0000000..87c930b --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Giver.java @@ -0,0 +1,5 @@ +// Giver.java +package com.jdojo.interfaces; + +public class Giver { +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Job.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Job.java new file mode 100644 index 0000000..224bfca --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Job.java @@ -0,0 +1,21 @@ +// Job.java +package com.jdojo.interfaces; + +public interface Job { + // A nested class + class EmptyJob implements Job { + private EmptyJob() { + // Do not allow outside to create its object + } + + public void runJob() { + System.out.println("Nothing serious to run..."); + } + } + + // A constant field + Job EMPTY_JOB = new EmptyJob(); + + // An abstract method + void runJob(); +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/JobTest.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/JobTest.java new file mode 100644 index 0000000..7979c4f --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/JobTest.java @@ -0,0 +1,12 @@ +// JobTest.java +package com.jdojo.interfaces; + +public class JobTest { + public static void main(String[] args) { + submitJob(Job.EMPTY_JOB); + } + + public static void submitJob(Job job) { + job.runJob(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/LastNameComparator.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/LastNameComparator.java new file mode 100644 index 0000000..e0e1649 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/LastNameComparator.java @@ -0,0 +1,13 @@ +// LastNameComparator.java +package com.jdojo.interfaces; + +import java.util.Comparator; + +public class LastNameComparator implements Comparator { + public int compare(ComparablePerson p1, ComparablePerson p2) { + String lastName1 = p1.getLastName(); + String lastName2 = p2.getFirstName(); + int diff = lastName1.compareTo(lastName2); + return diff; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Melodist.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Melodist.java new file mode 100644 index 0000000..f985029 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Melodist.java @@ -0,0 +1,31 @@ +// Melodist.java +package com.jdojo.interfaces; + +public class Melodist implements SingerWriter { + private String name; + private double rate = 500.00; + + public Melodist(String name) { + this.name = name; + } + + @Override + public void sing() { + System.out.println(name + " is singing."); + } + + @Override + public void setRate(double rate) { + this.rate = rate; + } + + @Override + public double getRate() { + return rate; + } + + @Override + public void write() { + System.out.println(name + " is writing"); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Movable.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Movable.java new file mode 100644 index 0000000..b4b7314 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Movable.java @@ -0,0 +1,17 @@ +// Movable.java +package com.jdojo.interfaces; + +public interface Movable { + void setX(double x); + void setY(double y); + double getX(); + double getY(); + + // A default method + default void move(double deltaX, double deltaY) { + double newX = getX() + deltaX; + double newY = getY() + deltaY; + setX(newX); + setY(newY); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/MovableTest.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/MovableTest.java new file mode 100644 index 0000000..d038964 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/MovableTest.java @@ -0,0 +1,19 @@ +// MovableTest.java +package com.jdojo.interfaces; + +public class MovableTest { + public static void main(String[] args) { + // Create a Pen and assign its reference to a Movable variable + Movable p1 = new Pen(); + System.out.println(p1); + + // Move the Pen using absolute cocordinates + p1.setX(10.0); + p1.setY(5.0); + System.out.println(p1); + + // Move the Pen using relative cocordinates + p1.move(5.0, 2.0); + System.out.println(p1); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Munificent.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Munificent.java new file mode 100644 index 0000000..d160190 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Munificent.java @@ -0,0 +1,6 @@ +// Munificent.java +package com.jdojo.interfaces; + +public interface Munificent extends Generous { + void giveALot(); +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/MunificentGiver.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/MunificentGiver.java new file mode 100644 index 0000000..a5031f8 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/MunificentGiver.java @@ -0,0 +1,10 @@ +// MunificentGiver.java +package com.jdojo.interfaces; + +public class MunificentGiver extends Giver implements Munificent { + public void give() { + } + + public void giveALot() { + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Named.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Named.java new file mode 100644 index 0000000..126d6df --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Named.java @@ -0,0 +1,18 @@ +// Named.java +package com.jdojo.interfaces; + +public interface Named { + void setName(String name); + + default String getName() { + return "John Doe"; + } + + default void setNickname(String nickname) { + throw new UnsupportedOperationException("setNickname"); + } + + default String getNickname() { + throw new UnsupportedOperationException("getNickname"); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Pen.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Pen.java new file mode 100644 index 0000000..95a249b --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Pen.java @@ -0,0 +1,36 @@ +// Pen.java +package com.jdojo.interfaces; + +public class Pen implements Movable { + private double x; + private double y; + + public Pen() { + // By default, the pen is at (0.0, 0.0) + } + + public Pen(double x, double y) { + this.x = x; + this.y = y; + } + + public void setX(double x) { + this.x = x; + } + + public void setY(double y) { + this.y = y; + } + + public double getX() { + return x; + } + + public double getY() { + return y; + } + + public String toString() { + return "Pen(" + x + ", " + y + ")"; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Person.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Person.java new file mode 100644 index 0000000..651b8d8 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Person.java @@ -0,0 +1,14 @@ +// Person.java +package com.jdojo.interfaces; + +public class Person implements Walkable { + private String name; + + public Person(String name) { + this.name = name; + } + + public void walk() { + System.out.println(name + " (a person) is walking."); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Player.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Player.java new file mode 100644 index 0000000..323d6da --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Player.java @@ -0,0 +1,11 @@ +// Player.java +package com.jdojo.interfaces; + +public interface Player { + void play(); + void setRate(double rate); + + default double getRate() { + return 300.0; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Singer.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Singer.java new file mode 100644 index 0000000..5f6b227 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Singer.java @@ -0,0 +1,8 @@ +// Singer.java +package com.jdojo.interfaces; + +public interface Singer { + void sing(); + void setRate(double rate); + double getRate(); +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/SingerPlayer.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/SingerPlayer.java new file mode 100644 index 0000000..73dc13a --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/SingerPlayer.java @@ -0,0 +1,13 @@ +// SingerPlayer.java +package com.jdojo.interfaces; + +public interface SingerPlayer extends Singer, Player{ + // Override the getRate() method with a default method that calls the + // Player superinterface getRate() method + @Override + default double getRate() { + double playerRate = Player.super.getRate(); + double singerPlayerRate = playerRate * 3.5; + return singerPlayerRate; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/SingerWriter.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/SingerWriter.java new file mode 100644 index 0000000..aabb82f --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/SingerWriter.java @@ -0,0 +1,6 @@ +// SingerWriter.java +package com.jdojo.interfaces; + +public interface SingerWriter extends Singer, Writer { + // No code +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/StingyGiver.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/StingyGiver.java new file mode 100644 index 0000000..89caad5 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/StingyGiver.java @@ -0,0 +1,7 @@ +// StingyGiver.java +package com.jdojo.interfaces; + +public final class StingyGiver extends Giver { + public void giveALittle() { + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Swimmable.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Swimmable.java new file mode 100644 index 0000000..27dc386 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Swimmable.java @@ -0,0 +1,6 @@ +// Swimmable.java +package com.jdojo.interfaces; + +public interface Swimmable { + void swim(); +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/SwimmableTest.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/SwimmableTest.java new file mode 100644 index 0000000..9261a04 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/SwimmableTest.java @@ -0,0 +1,33 @@ +// SwimmableTest.java +package com.jdojo.interfaces; + +public class SwimmableTest { + // Interface type to define instance variable + private Swimmable iSwimmable; + + // Interface type to define parameter type for a constructor + public SwimmableTest(Swimmable aSwimmable) { + this.iSwimmable = aSwimmable; + } + + // Interface type to define return type of a method + public Swimmable getSwimmable() { + return this.iSwimmable; + } + + // Interface type to define parameter type for a method + public void setSwimmable(Swimmable newSwimmable) { + this.iSwimmable = newSwimmable; + } + + public void letItSwim(){ + // Interface type to declare a local variable + Swimmable localSwimmable = null; + + localSwimmable = this.iSwimmable; + + // An interface variable can be used to invoke any method + // declared in the interface and the Object class + localSwimmable.swim(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Turtle.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Turtle.java new file mode 100644 index 0000000..1894608 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Turtle.java @@ -0,0 +1,25 @@ +// Turtle.java +package com.jdojo.interfaces; + +public class Turtle implements Walkable, Swimmable{ + private String name; + + public Turtle(String name) { + this.name = name; + } + + // Adding a bite() method to the Turtle class + public void bite() { + System.out.println(name + " (a turtle) is biting."); + } + + // Implementation for the walk() method of the Walkable interface + public void walk() { + System.out.println(name + " (a turtle) is walking."); + } + + // Implementation for the swim() method of the Swimmable interface + public void swim() { + System.out.println(name + " (a turtle) is swimming."); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/TurtleTest.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/TurtleTest.java new file mode 100644 index 0000000..76a26fa --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/TurtleTest.java @@ -0,0 +1,25 @@ +// TurtleTest.java +package com.jdojo.interfaces; + +public class TurtleTest { + public static void main(String[] args) { + Turtle turti = new Turtle("Turti"); + + // Using Turtle type as Turtle, Walkable and Swimmable + letItBite(turti); + letItWalk(turti); + letItSwim(turti); + } + + public static void letItBite(Turtle t) { + t.bite(); + } + + public static void letItWalk(Walkable w) { + w.walk(); + } + + public static void letItSwim(Swimmable s) { + s.swim();; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Walkable.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Walkable.java new file mode 100644 index 0000000..05f8a82 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Walkable.java @@ -0,0 +1,14 @@ +// Walkable.java +package com.jdojo.interfaces; + +public interface Walkable { + // An abstract method + void walk(); + + // A static convenience method + public static void letThemWalk(Walkable[] list) { + for (int i = 0; i < list.length; i++) { + list[i].walk(); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Walkables.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Walkables.java new file mode 100644 index 0000000..f337e7d --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Walkables.java @@ -0,0 +1,10 @@ +// Walkables.java +package com.jdojo.interfaces; + +public class Walkables { + public static void letThemWalk(Walkable[] list) { + for (Walkable w : list) { + w.walk(); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/WalkablesTest.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/WalkablesTest.java new file mode 100644 index 0000000..e083625 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/WalkablesTest.java @@ -0,0 +1,14 @@ +// WalkablesTest.java +package com.jdojo.interfaces; + +public class WalkablesTest { + public static void main(String[] args) { + Walkable[] w = new Walkable[3]; + w[0] = new Person("Jack"); + w[1] = new Duck("Jeff"); + w[2] = new Person("John"); + + // Let everyone walk + Walkables.letThemWalk(w); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Writer.java b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Writer.java new file mode 100644 index 0000000..382cff0 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/interfaces/Writer.java @@ -0,0 +1,8 @@ +// Writer.java +package com.jdojo.interfaces; + +public interface Writer { + void write(); + void setRate(double rate); + double getRate(); +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/intro/Welcome.java b/BeginningJava8Fundamentals/src/com/jdojo/intro/Welcome.java new file mode 100644 index 0000000..a92e182 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/intro/Welcome.java @@ -0,0 +1,8 @@ +// Welcome.java +package com.jdojo.intro; + +class Welcome { + public static void main(String[] args) { + System.out.println("Welcome to the Java world."); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/BadImmutableTest.java b/BeginningJava8Fundamentals/src/com/jdojo/object/BadImmutableTest.java new file mode 100644 index 0000000..16d8d57 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/BadImmutableTest.java @@ -0,0 +1,17 @@ +// BadImmutableTest.java +package com.jdojo.object; + +public class BadImmutableTest { + public static void main(String[] args) { + IntHolderWrapper ihw = new IntHolderWrapper(101); + + int value = ihw.getValue(); + System.out.println("#1 value = " + value); + + IntHolder holder = ihw.getIntHolder(); + holder.setValue(207); + + value = ihw.getValue(); + System.out.println("#2 value = " + value); + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/Book.java b/BeginningJava8Fundamentals/src/com/jdojo/object/Book.java new file mode 100644 index 0000000..c465392 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/Book.java @@ -0,0 +1,42 @@ +// Book.java +package com.jdojo.object; + +public class Book { + private String title; + private String author; + private int pageCount; + private boolean hardCover; + private double price; + + /* Other code goes here */ + + /* Must implement the equals() method too. */ + + public int hashCode() { + int hash = 37; + int code = 0; + + // Use title + code = (title == null ? 0 : title.hashCode()); + hash = hash * 59 + code; + + // Use author + code = (author == null ? 0 : author.hashCode()); + hash = hash * 59 + code; + + // Use pageCount + code = pageCount; + hash = hash * 59 + code; + + // Use hardCover + code = (hardCover ? 1 : 0); + hash = hash * 59 + code; + + // Use price + long priceBits = Double.doubleToLongBits(price); + code = (int)(priceBits ^ (priceBits >>> 32)); + hash = hash * 59 + code; + + return hash; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/CloningTest.java b/BeginningJava8Fundamentals/src/com/jdojo/object/CloningTest.java new file mode 100644 index 0000000..c5230f3 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/CloningTest.java @@ -0,0 +1,23 @@ +// CloningTest.java +package com.jdojo.object; + +public class CloningTest { + public static void main(String[] args) { + DoubleHolder dh = new DoubleHolder(100.00); + + // Clone dh + DoubleHolder dhClone = (DoubleHolder)dh.clone(); + + // Print the values in original and clone + System.out.println("Original:" + dh.getValue()); + System.out.println("Clone :" + dhClone.getValue()); + + // Change the value in original and clone + dh.setValue(200.00); + dhClone.setValue(400.00); + + // Print the values in original and clone again + System.out.println("Original:" + dh.getValue()); + System.out.println("Clone :" + dhClone.getValue()); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/DeepClone.java b/BeginningJava8Fundamentals/src/com/jdojo/object/DeepClone.java new file mode 100644 index 0000000..3d0765f --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/DeepClone.java @@ -0,0 +1,33 @@ +// DeepClone.java +package com.jdojo.object; + +public class DeepClone implements Cloneable { + private DoubleHolder holder = new DoubleHolder(0.0); + + public DeepClone(double value) { + this.holder.setValue(value); + } + + public void setValue(double value) { + this.holder.setValue(value); + } + + public double getValue() { + return this.holder.getValue(); + } + + public Object clone() { + DeepClone copy = null; + try { + copy = (DeepClone)super.clone(); + + // Need to clone the holder reference variable too + copy.holder = (DoubleHolder)this.holder.clone(); + } + catch (CloneNotSupportedException e) { + e.printStackTrace(); + } + + return copy; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/DeepCloneTest.java b/BeginningJava8Fundamentals/src/com/jdojo/object/DeepCloneTest.java new file mode 100644 index 0000000..634e614 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/DeepCloneTest.java @@ -0,0 +1,21 @@ +// DeepCloneTest.java +package com.jdojo.object; + +public class DeepCloneTest { + public static void main(String[] args) { + DeepClone sc = new DeepClone(100.00); + DeepClone scClone = (DeepClone)sc.clone(); + + // Print the value in original and clone + System.out.println("Original:" + sc.getValue()); + System.out.println("Clone :" + scClone.getValue()); + + // Change the value in original and it will not change the value + // for clone because we have done deep cloning + sc.setValue(200.00); + + // Print the value in original and clone + System.out.println("Original:" + sc.getValue()); + System.out.println("Clone :" + scClone.getValue()); + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/DoubleHolder.java b/BeginningJava8Fundamentals/src/com/jdojo/object/DoubleHolder.java new file mode 100644 index 0000000..65ca37d --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/DoubleHolder.java @@ -0,0 +1,32 @@ +// DoubleHolder.java +package com.jdojo.object; + +public class DoubleHolder implements Cloneable { + private double value; + + public DoubleHolder(double value) { + this.value = value; + } + + public void setValue(double value) { + this.value = value; + } + + public double getValue() { + return this.value; + } + + public Object clone() { + DoubleHolder copy = null; + try { + // Call the clone() method of the Object class, which will do a + // bit-by-bit copy and return the reference of the clone + copy = (DoubleHolder) super.clone(); + } + catch (CloneNotSupportedException e) { + // If anything goes wrong during cloning, print the error details + e.printStackTrace(); + } + return copy; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/Finalize.java b/BeginningJava8Fundamentals/src/com/jdojo/object/Finalize.java new file mode 100644 index 0000000..9a2760a --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/Finalize.java @@ -0,0 +1,16 @@ +// Finalize.java +package com.jdojo.object; + +public class Finalize { + private int x; + + public Finalize(int x) { + this.x = x; + } + + public void finalize() { + System.out.println("Finalizing " + this.x); + + /* Perform any cleanup work here... */ + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/FinalizeTest.java b/BeginningJava8Fundamentals/src/com/jdojo/object/FinalizeTest.java new file mode 100644 index 0000000..7bcbe0b --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/FinalizeTest.java @@ -0,0 +1,11 @@ +// FinalizeTest.java +package com.jdojo.object; + +public class FinalizeTest { + public static void main(String[] args) { + // Create many objects, say 20000 objects. + for(int i = 0; i < 20000; i++) { + new Finalize(i); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/IntHolder.java b/BeginningJava8Fundamentals/src/com/jdojo/object/IntHolder.java new file mode 100644 index 0000000..6ccce98 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/IntHolder.java @@ -0,0 +1,18 @@ +// IntHolder.java +package com.jdojo.object; + +public class IntHolder { + private int value; + + public IntHolder(int value) { + this.value = value; + } + + public void setValue(int value) { + this.value = value; + } + + public int getValue() { + return value; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/IntHolderWrapper.java b/BeginningJava8Fundamentals/src/com/jdojo/object/IntHolderWrapper.java new file mode 100644 index 0000000..ec434bf --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/IntHolderWrapper.java @@ -0,0 +1,18 @@ +// IntHolderWrapper.java +package com.jdojo.object; + +public class IntHolderWrapper { + private final IntHolder valueHolder; + + public IntHolderWrapper(int value) { + this.valueHolder = new IntHolder(value); + } + + public IntHolder getIntHolder() { + return this.valueHolder; + } + + public int getValue() { + return this.valueHolder.getValue(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/IntHolderWrapper2.java b/BeginningJava8Fundamentals/src/com/jdojo/object/IntHolderWrapper2.java new file mode 100644 index 0000000..786f844 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/IntHolderWrapper2.java @@ -0,0 +1,23 @@ +// IntHolderWrapper2.java +package com.jdojo.object; + +public class IntHolderWrapper2 { + private final IntHolder valueHolder; + + public IntHolderWrapper2(int value) { + this.valueHolder = new IntHolder(value); + } + + public IntHolder getIntHolder() { + // Make a copy of valueHolder + int v = this.valueHolder.getValue(); + IntHolder copy = new IntHolder(v); + + // Return the copy instead of the original + return copy; + } + + public int getValue() { + return this.valueHolder.getValue(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/IntHolderWrapper3.java b/BeginningJava8Fundamentals/src/com/jdojo/object/IntHolderWrapper3.java new file mode 100644 index 0000000..98b01e3 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/IntHolderWrapper3.java @@ -0,0 +1,21 @@ +// IntHolderWrapper3.java +package com.jdojo.object; + +public class IntHolderWrapper3 { + private final IntHolder valueHolder; + + public IntHolderWrapper3(int value) { + this.valueHolder = new IntHolder(value); + } + + public IntHolderWrapper3(IntHolder holder) { + // Must make a copy of holder parameter + this.valueHolder = new IntHolder(holder.getValue()); + + /* Following implementation is incorrect. Client code will be able to change the + state of the object using holder reference later */ + //this.valueHolder = holder; /* do not use it */ + } + + /* Rest of the code goes here... */ +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/IntWrapper.java b/BeginningJava8Fundamentals/src/com/jdojo/object/IntWrapper.java new file mode 100644 index 0000000..6626b15 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/IntWrapper.java @@ -0,0 +1,14 @@ +// IntWrapper.java +package com.jdojo.object; + +public class IntWrapper { + private final int value; + + public IntWrapper(int value) { + this.value = value; + } + + public int getValue() { + return value; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/IntWrapper2.java b/BeginningJava8Fundamentals/src/com/jdojo/object/IntWrapper2.java new file mode 100644 index 0000000..431e52f --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/IntWrapper2.java @@ -0,0 +1,24 @@ +// IntWrapper2.java +package com.jdojo.object; + +public class IntWrapper2 { + private final int value; + private int halfValue = Integer.MAX_VALUE; + + public IntWrapper2(int value) { + this.value = value; + } + + public int getValue() { + return value; + } + + public int getHalfValue() { + // Compute half value if it is not already computed + if (this.halfValue == Integer.MAX_VALUE) { + // Cache the half value for future use + this.halfValue = this.value / 2; + } + return this.halfValue; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/ObjectsTest.java b/BeginningJava8Fundamentals/src/com/jdojo/object/ObjectsTest.java new file mode 100644 index 0000000..8ff12a0 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/ObjectsTest.java @@ -0,0 +1,62 @@ +// ObjectsTest.java +package com.jdojo.object; + +import java.time.Instant; +import java.util.Objects; +import java.util.function.Supplier; + +public class ObjectsTest { + public static void main(String[] args) { + // Compute hash code for two integers, a char, and a string + int hash = Objects.hash(10, 8900, '\u20b9', "Hello"); + System.out.println("Hash Code is " + hash); + + // Test for equality + boolean isEqual = Objects.equals(null, null); + System.out.println("null is equal to null: " + isEqual); + + isEqual = Objects.equals(null, "XYZ"); + System.out.println("null is equal to XYZ: " + isEqual); + + // toString() method test + System.out.println("toString(null) is " + Objects.toString(null)); + System.out.println("toString(null, \"XXX\") is " + Objects.toString(null, "XXX")); + + // Testing requireNonNull(T obj, String message) + try { + printName("Doug Dyer"); + printName(null); + } + catch (NullPointerException e) { + System.out.println(e.getMessage()); + } + + // requireNonNull(T obj, Supplier messageSupplier) + try { + // Using a lambda expression to create a Supplier object. + // The Supplier returns a timestamped message. + Supplier messageSupplier = () -> "Name is required. Error generated on " + Instant.now(); + printNameWithSuplier("Babalu", messageSupplier); + printNameWithSuplier(null, messageSupplier); + } + catch (NullPointerException e) { + System.out.println(e.getMessage()); + } + } + + public static void printName(String name) { + // Test name for not null. Generate a NullPointerException if it is null. + Objects.requireNonNull(name, "Name is required."); + + // Print the name if the above statement dod not throw an exception + System.out.println("Name is " + name); + } + + public static void printNameWithSuplier(String name, Supplier messageSupplier) { + // Test name for not null. Generate a NullPointerException if it is null. + Objects.requireNonNull(name, messageSupplier); + + // Print the name if the above statement dod not throw an exception + System.out.println("Name is " + name); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/Point.java b/BeginningJava8Fundamentals/src/com/jdojo/object/Point.java new file mode 100644 index 0000000..1d3733e --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/Point.java @@ -0,0 +1,18 @@ +// Point.java +package com.jdojo.object; + +public class Point { + private int x; + private int y; + + public Point(int x, int y) { + this.x = x; + this.y = y; + } + + // Re-implement toString() method of the Object class + public String toString() { + String str = "(" + x + ", " + y + ")"; + return str; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/ShallowClone.java b/BeginningJava8Fundamentals/src/com/jdojo/object/ShallowClone.java new file mode 100644 index 0000000..a7c5c1c --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/ShallowClone.java @@ -0,0 +1,29 @@ +// ShallowClone.java +package com.jdojo.object; + +public class ShallowClone implements Cloneable { + private DoubleHolder holder = new DoubleHolder(0.0); + + public ShallowClone(double value) { + this.holder.setValue(value); + } + + public void setValue(double value) { + this.holder.setValue(value); + } + + public double getValue() { + return this.holder.getValue(); + } + + public Object clone() { + ShallowClone copy = null; + try { + copy = (ShallowClone)super.clone(); + } + catch (CloneNotSupportedException e) { + e.printStackTrace(); + } + return copy; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/ShallowCloneTest.java b/BeginningJava8Fundamentals/src/com/jdojo/object/ShallowCloneTest.java new file mode 100644 index 0000000..cc47c0e --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/ShallowCloneTest.java @@ -0,0 +1,21 @@ +// ShallowCloneTest.java +package com.jdojo.object; + +public class ShallowCloneTest { + public static void main(String[] args) { + ShallowClone sc = new ShallowClone(100.00); + ShallowClone scClone = (ShallowClone)sc.clone(); + + // Print the value in original and clone + System.out.println("Original:" + sc.getValue()); + System.out.println("Clone :" + scClone.getValue()); + + // Change the value in original and it will change the value + // for clone too because we have done shallow cloning + sc.setValue(200.00); + + // Print the value in original and clone + System.out.println("Original:" + sc.getValue()); + System.out.println("Clone :" + scClone.getValue()); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/SmartCat.java b/BeginningJava8Fundamentals/src/com/jdojo/object/SmartCat.java new file mode 100644 index 0000000..03aa754 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/SmartCat.java @@ -0,0 +1,43 @@ +// SmartCat.java +package com.jdojo.object; + +public class SmartCat { + private String name; + + public SmartCat(String name) { + this.name = name; + } + + /* Re-implement the equals() method */ + public boolean equals(Object otherObject) { + // Are they the same? + if (this == otherObject) { + return true; + } + + // Is otherObject a null reference? + if (otherObject == null) { + return false; + } + + // Do they belong to the same class? + if (this.getClass() != otherObject.getClass()) { + return false; + } + + // Get the reference of otherObject is a SmartCat variable + SmartCat otherCat = (SmartCat)otherObject; + + // Do they have the same names + boolean isSameName = (this.name == null? otherCat.name == null + :this.name.equals(otherCat.name) ); + + return isSameName; + } + + /* Re-implement the hashCode() method, which is a requirement + when you re-implement equals() method */ + public int hashCode() { + return (this.name == null? 0 : this.name.hashCode()); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/SmartIntHolder.java b/BeginningJava8Fundamentals/src/com/jdojo/object/SmartIntHolder.java new file mode 100644 index 0000000..40f4396 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/SmartIntHolder.java @@ -0,0 +1,25 @@ +// SmartIntHolder.java +package com.jdojo.object; + +public class SmartIntHolder { + private int value; + + public SmartIntHolder(int value) { + this.value = value; + } + + public void setValue(int value) { + this.value = value; + } + + public int getValue() { + return value; + } + + // Re-implement toString() method of the Object class + public String toString() { + // Return the stored value as a string + String str = String.valueOf(this.value); + return str; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/SmartPoint.java b/BeginningJava8Fundamentals/src/com/jdojo/object/SmartPoint.java new file mode 100644 index 0000000..ca9c825 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/SmartPoint.java @@ -0,0 +1,44 @@ +// SmartPoint.java +package com.jdojo.object; + +public class SmartPoint { + private int x; + private int y; + + public SmartPoint(int x, int y) { + this.x = x; + this.y = y; + } + + /* Re-implement the equals() method */ + public boolean equals(Object otherObject) { + // Are the same? + if (this == otherObject) { + return true; + } + + // Is otherObject a null reference? + if (otherObject == null) { + return false; + } + + // Do they belong to the same class? + if (this.getClass() != otherObject.getClass()) { + return false; + } + + // Get the reference of otherObject in a SmartPoint variable + SmartPoint otherPoint = (SmartPoint)otherObject; + + // Do they have the same x and y co-ordinates + boolean isSamePoint = (this.x == otherPoint.x && this.y == otherPoint.y); + + return isSamePoint; + } + + /* Re-implement hashCode() method of the Object class, + which is a requirement when you re-implement equals() method */ + public int hashCode() { + return (this.x + this.y); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/object/SmartPointTest.java b/BeginningJava8Fundamentals/src/com/jdojo/object/SmartPointTest.java new file mode 100644 index 0000000..69cc1ad --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/object/SmartPointTest.java @@ -0,0 +1,23 @@ +// SmartPointTest.java +package com.jdojo.object; + +public class SmartPointTest { + public static void main(String[] args) { + SmartPoint pt1 = new SmartPoint(10, 10); + SmartPoint pt2 = new SmartPoint(10, 10); + SmartPoint pt3 = new SmartPoint(12, 19); + SmartPoint pt4 = pt1; + + System.out.println("pt1 == pt1: " + (pt1 == pt1)); + System.out.println("pt1.equals(pt1): " + pt1.equals(pt1)); + + System.out.println("pt1 == pt2: " + (pt1 == pt2)); + System.out.println("pt1.equals(pt2): " + pt1.equals(pt2)); + + System.out.println("pt1 == pt3: " + (pt1 == pt3)); + System.out.println("pt1.equals(pt3): " + pt1.equals(pt3)); + + System.out.println("pt1 == pt4: " + (pt1 == pt4)); + System.out.println("pt1.equals(pt4): " + pt1.equals(pt4)); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/operator/ArithOperator.java b/BeginningJava8Fundamentals/src/com/jdojo/operator/ArithOperator.java new file mode 100644 index 0000000..a00778c --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/operator/ArithOperator.java @@ -0,0 +1,52 @@ +// ArithOperator.java +package com.jdojo.operator; + +class ArithOperator { + public static void main ( String[] args ) { + int num = 120; + double realNum = 25.5F; + double veryBigNum = 25.8 / 0.0; + double garbage = 0.0 / 0.0; + boolean test = true; + + // Print the value of num + System.out.println ("num = " + num); + + // Print the value of realNum + System.out.println ("realNum = " + realNum); + + // Print the value of veryBigNum + System.out.println ("veryBigNum = " + veryBigNum); + + // Print the value of garbage + System.out.println ("garbage = " + garbage); + + // Print the value of test + System.out.println ("test = " + test); + + // Print the maximum value of int type + System.out.println ("Maximum int = " + Integer.MAX_VALUE); + + // Print the maximum value of double type + System.out.println ("Maximum double = " + Double.MAX_VALUE); + + // Print the sum of two numbers + System.out.println ("12.5 + 100 = " + (12.5 + 100)); + + // Print the difference of two numbers + System.out.println ("12.5 - 100 = " + (12.5 - 100)); + + // Print the multiplication of two numbers + System.out.println ("12.5 * 100 = " + (12.5 * 100)); + + // Print the result of division + System.out.println ("12.5 / 100 = " + (12.5 / 100)); + + // Print the result of modulus + System.out.println ("12.5 % 100 = " + (12.5 % 100)); + + // Print the result of string concatenation + System.out.println ("\"abc\" + \"xyz\" = " + "\"" + ("abc" + "xyz") + "\""); + + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/profiles/HelloCompact1.java b/BeginningJava8Fundamentals/src/com/jdojo/profiles/HelloCompact1.java new file mode 100644 index 0000000..6bd7c66 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/profiles/HelloCompact1.java @@ -0,0 +1,8 @@ +// HelloCompact1.java +package com.jdojo.profiles; + +public class HelloCompact1 { + public static void main(String[] args) { + System.out.println("Hello compact1 profile!"); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/profiles/RowSetTest.java b/BeginningJava8Fundamentals/src/com/jdojo/profiles/RowSetTest.java new file mode 100644 index 0000000..e6a29bd --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/profiles/RowSetTest.java @@ -0,0 +1,21 @@ +// RowSetTest.java +package com.jdojo.profiles; + +import java.sql.SQLException; +import javax.sql.rowset.JdbcRowSet; +import javax.sql.rowset.RowSetFactory; +import javax.sql.rowset.RowSetProvider; + +public class RowSetTest { + public static void main(String[] args) { + try { + RowSetFactory rsFactory = RowSetProvider.newFactory(); + JdbcRowSet jdbcRs = rsFactory.createJdbcRowSet(); + + // More code goes here + } + catch (SQLException e) { + e.printStackTrace(); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/profiles/SwingTest.java b/BeginningJava8Fundamentals/src/com/jdojo/profiles/SwingTest.java new file mode 100644 index 0000000..d22ed15 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/profiles/SwingTest.java @@ -0,0 +1,12 @@ +// SwingTest.java +package com.jdojo.profiles; + +import javax.swing.JFrame; + +public class SwingTest { + public static void main(String[] args) { + JFrame frame = new JFrame("Compact Profiles"); + frame.setSize(300, 300); + frame.setVisible(true); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/regex/AdvanceFindReplace.java b/BeginningJava8Fundamentals/src/com/jdojo/regex/AdvanceFindReplace.java new file mode 100644 index 0000000..7f55b5f --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/regex/AdvanceFindReplace.java @@ -0,0 +1,47 @@ +package com.jdojo.regex; + +import java.util.regex.Pattern; +import java.util.regex.Matcher; + +public class AdvanceFindReplace { + public static void main (String[] args) { + String regex = "\\b\\d+\\b"; + StringBuffer sb = new StringBuffer(); + String replacementText = ""; + String matchedText = ""; + + String text = "A train carrying 125 men and women was traveling at" + + " the speed of 100 miles per hour. " + + "The train fare was 75 dollars per person." ; + + Pattern p = Pattern.compile(regex); + Matcher m = p.matcher(text); + + while (m.find()) { + matchedText = m.group(); + + // Convert the text into an integer for comparing + int num = Integer.parseInt(matchedText); + + // Prepare the replacement text + if (num == 100) { + replacementText = "a hundred"; + } + else if (num < 100) { + replacementText = "less than a hundred"; + } + else { + replacementText = "more than a hundred"; + } + + m.appendReplacement(sb, replacementText); + } + + // Append the tail + m.appendTail(sb); + + // Display the old and new text + System.out.println("Old Text: " + text); + System.out.println("New Text: " + sb.toString()); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/regex/MatchAndreplace.java b/BeginningJava8Fundamentals/src/com/jdojo/regex/MatchAndreplace.java new file mode 100644 index 0000000..e4f80d2 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/regex/MatchAndreplace.java @@ -0,0 +1,26 @@ +// MatchAndreplace.java +package com.jdojo.regex; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class MatchAndreplace { + public static void main(String[] args) { + // Prepare the regular expression + String regex = "\\b(\\d{3})(\\d{3})(\\d{4})\\b"; + String replacementText = "($1) $2-$3"; + String source = "3342449027, 2339829, and 6152534734"; + + // Compile the regular expression + Pattern p = Pattern.compile(regex); + + // Get Matcher object + Matcher m = p.matcher(source); + + // Replace the phone numbers by formatted phone numbers + String formattedSource = m.replaceAll(replacementText); + + System.out.println("Text: " + source ); + System.out.println("Formatted Text: " + formattedSource ); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/regex/MatchBoundary.java b/BeginningJava8Fundamentals/src/com/jdojo/regex/MatchBoundary.java new file mode 100644 index 0000000..19932a5 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/regex/MatchBoundary.java @@ -0,0 +1,17 @@ +// MatchBoundary.java +package com.jdojo.regex; + +public class MatchBoundary { + public static void main(String[] args) { + // Prepare regular expression. Use \\b to get \b inside the string literal. + String regex = "\\bapple\\b"; + String replacementStr = "orange"; + String inputStr = "I have an apple and five pineapples"; + String newStr = inputStr.replaceAll(regex, replacementStr); + + System.out.println("Regular Expression: " + regex); + System.out.println("Input String: " + inputStr); + System.out.println("Replacement String: " + replacementStr); + System.out.println("New String: " + newStr); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/regex/NamedGroups.java b/BeginningJava8Fundamentals/src/com/jdojo/regex/NamedGroups.java new file mode 100644 index 0000000..7a8c752 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/regex/NamedGroups.java @@ -0,0 +1,30 @@ +// NamedGroups.java +package com.jdojo.regex; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class NamedGroups { + public static void main(String[] args) { + // Prepare the regular expression + String regex = + "\\b(?\\d{3})(?\\d{3})(?\\d{4})\\b"; + + // Reference first two groups by names and the thrd oen as its number + String replacementText = "(${areaCode}) ${prefix}-$3"; + + String source = "3342449027, 2339829, and 6152534734"; + + // Compile the regular expression + Pattern p = Pattern.compile(regex); + + // Get Matcher object + Matcher m = p.matcher(source); + + // Replace the phone numbers by formatted phone numbers + String formattedSource = m.replaceAll(replacementText); + + System.out.println("Text: " + source); + System.out.println("Formatted Text: " + formattedSource); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/regex/PatternMatcher.java b/BeginningJava8Fundamentals/src/com/jdojo/regex/PatternMatcher.java new file mode 100644 index 0000000..d554d18 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/regex/PatternMatcher.java @@ -0,0 +1,51 @@ +// PatternMatcher.java +package com.jdojo.regex; + +import java.util.regex.Pattern; +import java.util.regex.Matcher; + +public class PatternMatcher { + public static void main(String[] args) { + String regex = "[abc]@."; + + String source = "cric@jdojo.com is a valid email address"; + PatternMatcher.findPattern(regex, source); + + source = "kelly@jdojo.com is invalid"; + PatternMatcher.findPattern(regex, source); + + source = "a@band@yea@u"; + PatternMatcher.findPattern(regex, source); + + source = "There is an @ sign here"; + PatternMatcher.findPattern(regex, source); + } + + public static void findPattern(String regex, String source) { + // Compile regex into a Pattern object + Pattern p = Pattern.compile(regex); + + // Get a Matcher object + Matcher m = p.matcher(source); + + boolean found = false ; + + // Print regex and source text + System.out.println("\nRegex:" + regex); + System.out.println("Text:" + source); + + // Perform find + while (m.find()) { + System.out.println("Matched Text:" + m.group() + ", Start:" + m.start() + ", " + + "End:" + m.end()); + + // We found at least one match. Set the found flag to true + found = true; + } + + if (!found) { + // We did not find any match + System.out.println("No match found"); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/regex/PhoneMatcher.java b/BeginningJava8Fundamentals/src/com/jdojo/regex/PhoneMatcher.java new file mode 100644 index 0000000..84995ee --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/regex/PhoneMatcher.java @@ -0,0 +1,28 @@ +// PhoneMatcher.java +package com.jdojo.regex; + +import java.util.regex.Pattern; +import java.util.regex.Matcher; + +public class PhoneMatcher { + public static void main(String[] args) { + // Prepare regular expression. A group of 3 digits followed by 7 digits. + String regex = "\\b(\\d{3})\\d{7}\\b"; + String source = "3342449027, 2339829, and 6152534734"; + + // Compile the regular expression + Pattern p = Pattern.compile(regex); + + // Get Matcher object + Matcher m = p.matcher(source); + + // Start matching and display the found area codes + while(m.find()) { + // Display the phone number and area code. Note that group 1 captures first 3 digits of match, whereas group 0 will have the entire phone number. The matched text can be obtained using m.group() or m.group(0)*/ + String phone = m.group(); + String areaCode = m.group(1); + System.out.println("Phone: " + phone + + ", Area Code: " + areaCode); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/regex/RegexMatch.java b/BeginningJava8Fundamentals/src/com/jdojo/regex/RegexMatch.java new file mode 100644 index 0000000..6df98ce --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/regex/RegexMatch.java @@ -0,0 +1,26 @@ +// RegexMatch.java +package com.jdojo.regex; + +public class RegexMatch { + public static void main(String[] args) { + // Prepare a regular expression to represent a pattern + String regex = ".@."; + + // Try matching many strings against the regular expression + RegexMatch.matchIt("a@k", regex); + RegexMatch.matchIt("webmaster@jdojo.com", regex); + RegexMatch.matchIt("r@j", regex); + RegexMatch.matchIt("a%N", regex); + RegexMatch.matchIt(".@.", regex); + } + + public static void matchIt(String str, String regex) { + // Test for pattern match + if (str.matches(regex)) { + System.out.println(str + " matches the regex " + regex); + } + else { + System.out.println(str + " does not match the regex " + regex); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/statement/PrintMatrix.java b/BeginningJava8Fundamentals/src/com/jdojo/statement/PrintMatrix.java new file mode 100644 index 0000000..8d4272b --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/statement/PrintMatrix.java @@ -0,0 +1,22 @@ +// PrintMatrix.java +package com.jdojo.statement; + +public class PrintMatrix { + public static void main(String[] args) { + for(int i = 1; i <= 3; i++) { + for(int j = 1; j <= 3; j++) { + System.out.print(i + "" + j); + + // Print a tab, except for the last number in a row + if (j < 3) { + System.out.print("\t"); + } + } + + // Print a new line, except after the last line + if (i < 3) { + System.out.println(); + } + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/string/CollatorStringComparison.java b/BeginningJava8Fundamentals/src/com/jdojo/string/CollatorStringComparison.java new file mode 100644 index 0000000..8aeca63 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/string/CollatorStringComparison.java @@ -0,0 +1,38 @@ +// CollatorStringComparison.java +package com.jdojo.string; + +import java.text.Collator; +import java.util.Locale; + +public class CollatorStringComparison { + public static void main(String[] args) { + // Create a Locale object for US + Locale USLocale = new Locale("en", "US"); + + // Get collator instance for US + Collator c = Collator.getInstance(USLocale); + String str1 = "cat"; + String str2 = "Dog"; + + int diff = c.compare(str1, str2); + + System.out.print("Comparing using Collator class: "); + print(diff, str1, str2); + + System.out.print("Comparing using String class: "); + diff = str1.compareTo(str2); + print(diff, str1, str2); + } + + public static void print(int diff, String str1, String str2) { + if (diff > 0) { + System.out.println(str1 + " comes after " + str2); + } + else if (diff < 0) { + System.out.println(str1 + " comes before " + str2); + } + else { + System.out.println(str1 + " and " + str2 + " are considered the same." ); + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/string/Palindrome.java b/BeginningJava8Fundamentals/src/com/jdojo/string/Palindrome.java new file mode 100644 index 0000000..b86136d --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/string/Palindrome.java @@ -0,0 +1,53 @@ +// Palindrome.java +package com.jdojo.string; + +public class Palindrome { + public static void main(String[] args) { + String str1 = "hello"; + boolean b1 = Palindrome.isPalindrome(str1); + System.out.println(str1 + " is a palindrome: " + b1 ); + + String str2 = "noon"; + boolean b2 = Palindrome.isPalindrome(str2); + System.out.println(str2 + " is a palindrome: " + b2 ); + } + + public static boolean isPalindrome(String inputString) { + // Check for null argument. + if (inputString == null) { + throw new IllegalArgumentException("String cannot be null."); + } + + // Get the length of string + int len = inputString.length(); + + // In case of an empty string and one character strings, + // we do not need to do any comparisions. + // They are always palindromes. + if (len <= 1) { + return true; + } + + // Convert the string into uppercase, so we can make the comparisons case insensitive + String newStr = inputString.toUpperCase(); + + // Initialize the result variable to true + boolean result = true; + + // Get the number of comparison to be done + int counter = len / 2; + + // Do the comparison + for (int i = 0; i < counter; i++) { + if (newStr.charAt(i)!= newStr.charAt(len - 1 - i)) { + // It is not a palindrome + result = false; + + // Exit the loop + break; + } + } + + return result; + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/string/StringBuilderTest.java b/BeginningJava8Fundamentals/src/com/jdojo/string/StringBuilderTest.java new file mode 100644 index 0000000..1b25a47 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/string/StringBuilderTest.java @@ -0,0 +1,43 @@ +// StringBuilderTest.java +package com.jdojo.string; + +public class StringBuilderTest { + public static void main(String[] args) { + // Create an empty StringNuffer + StringBuilder sb = new StringBuilder(); + printDetails(sb); + + // Append "blessings" + sb.append("blessings"); + printDetails(sb); + + // Insert "Good " in the beginning + sb.insert(0, "Good "); + printDetails(sb); + + // Delete the first o + sb.deleteCharAt(1); + printDetails(sb); + + // Append " be with you" + sb.append(" be with you"); + printDetails(sb); + + // Set the length to 3 + sb.setLength(3); + printDetails(sb); + + // Reverse the content + sb.reverse(); + printDetails(sb); + } + + public static void printDetails(StringBuilder sb) { + System.out.println("Content: \"" + sb + "\""); + System.out.println("Length: " + sb.length()); + System.out.println("Capacity: " + sb.capacity()); + + // Print an empty line to separate results + System.out.println(); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/string/StringComparison.java b/BeginningJava8Fundamentals/src/com/jdojo/string/StringComparison.java new file mode 100644 index 0000000..917fa85 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/string/StringComparison.java @@ -0,0 +1,16 @@ +// StringComparison.java +package com.jdojo.string; + +public class StringComparison { + public static void main(String[] args) { + String apple = new String("Apple") ; + String orange = new String("Orange") ; + + System.out.println(apple.equals(orange)); + System.out.println(apple.equals(apple)); + System.out.println(apple == apple); + System.out.println(apple == orange); + System.out.println(apple.compareTo(apple)); + System.out.println(apple.compareTo(orange)); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/string/StringInSwitch.java b/BeginningJava8Fundamentals/src/com/jdojo/string/StringInSwitch.java new file mode 100644 index 0000000..9f9fa89 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/string/StringInSwitch.java @@ -0,0 +1,36 @@ +// StringInSwitch.java +package com.jdojo.string; + +public class StringInSwitch { + public static void main(String[] args) { + operate("on"); + operate("off"); + operate("ON"); + operate("Nothing"); + operate("OFF"); + operate(null); + } + + public static void operate(String status) { + // Check for null + if (status == null) { + System.out.println("status cannot be null."); + return; + } + + // Convert to lowercase + status = status.toLowerCase(); + + switch (status) { + case "on": + System.out.println("Turn on"); + break; + case "off": + System.out.println("Turn off"); + break; + default: + System.out.println("Unknown command"); + break; + } + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/string/StringLength.java b/BeginningJava8Fundamentals/src/com/jdojo/string/StringLength.java new file mode 100644 index 0000000..43e0f52 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/string/StringLength.java @@ -0,0 +1,18 @@ +// StringLength.java +package com.jdojo.string; + +public class StringLength { + public static void main (String[] args) { + // Create two string objects + String str1 = new String() ; + String str2 = new String("Hello") ; + + // Get the length of str1 and str2 + int len1 = str1.length(); + int len2 = str2.length(); + + // Display the length of str1 and str2 + System.out.println("Length of \"" + str1 + "\" = " + len1); + System.out.println("Length of \"" + str2 + "\" = " + len2); + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/utility/Calc.java b/BeginningJava8Fundamentals/src/com/jdojo/utility/Calc.java new file mode 100644 index 0000000..00e6f80 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/utility/Calc.java @@ -0,0 +1,88 @@ +// Calc.java +package com.jdojo.utility; + +/** + * A utility class to perform basic calculations on numbers. + * All methods in this class are static. It + * provides methods to perform addition, subtraction, + * multiplication and division. + * + * @author Kishori Sharan + * @since Version 1.0 + */ +public final class Calc { + /** + * Stop someone from instantiating this class. This class is not + * meant for instantiation as all its methods are + * static. + */ + private Calc() { + } + + /** + * Performs addition on two numbers. It returns the result of + * n1 + n2 as an int. If the result + * of n1 + n2 exceeds the range of the + * int data type, it will not return the correct + * result. For bigger numbers, use {@link #add(long, long)}. + * + * @param n1 The first number + * @param n2 The second number + * @return Returns the value of n1 + n2 + */ + public static int add(int n1, int n2) { + return n1 + n2; + } + + /** + * Performs addition on two numbers. It returns the result of + * n1 + n2 as a long. + * + * @param n1 The first number + * @param n2 The second number + * @return Returns the value of n1 + n2 + */ + public static long add(long n1, long n2) { + return n1 + n2; + } + + /** + * Returns the result of n1 - n2. + * + * @param n1 The first number + * @param n2 The second number + * @return Returns the result of n1 - n2 + */ + public static int subtract(int n1, int n2) { + return n1 - n2; + } + + /** + * Returns the result of multiplication of n1 and + * n2. It may return incorrect result if the value of + * the multiplication of n1 and n2 + * exceeds the range of the int data type. + * + * @param n1 The multiplicand + * @param n2 The multiplier + * @return Returns the result of multiplication of + * n1 and n2 + */ + public static int multiply(int n1, int n2) { + return n1 * n2; + } + + /** + * Returns the result of integer division of n1 by + * n2. + * + * @param n1 The dividend + * @param n2 The divisor + * @return Returns the result of n1 / n2 + * @throws ArithmeticException If n2 is zero. + */ + public static int divide(int n1, int n2) + throws ArithmeticException { + return n1 / n2; + } +} \ No newline at end of file diff --git a/BeginningJava8Fundamentals/src/com/jdojo/utility/package-info.java b/BeginningJava8Fundamentals/src/com/jdojo/utility/package-info.java new file mode 100644 index 0000000..03e03e8 --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/utility/package-info.java @@ -0,0 +1,7 @@ +/** + * Contains utility classes. More description for + * com.jdojo.utility package goes here. + * @since 1.1 + * @version 1.9 + */ +package com.jdojo.utility; diff --git a/BeginningJava8Fundamentals/src/com/jdojo/wrapper/CachedWrapperObjects.java b/BeginningJava8Fundamentals/src/com/jdojo/wrapper/CachedWrapperObjects.java new file mode 100644 index 0000000..6704e4a --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/wrapper/CachedWrapperObjects.java @@ -0,0 +1,32 @@ +// CachedWrapperObjects.java +package com.jdojo.wrapper; + +public class CachedWrapperObjects { + public static void main(String[] args) { + System.out.println("Using the constructor:"); + + // Create two Integer objects using constructors + Integer iv1 = new Integer(25); + Integer iv2 = new Integer(25); + System.out.println("iv1 = iv1 = " + iv1 + ", iv2 = " + iv2); + + // Compare iv1 and iv2 references + System.out.println("iv1 == iv2: " + (iv1 == iv2)); + + // Let us see if they are equal in values + System.out.println("iv1.equals(iv2): " + iv1.equals(iv2)); + + System.out.println("\nUsing the valueOf() method:"); + + // Create two Integer objects using the valueOf() + Integer iv3 = Integer.valueOf(25); + Integer iv4 = Integer.valueOf(25); + System.out.println("iv3 = " + iv3 + ", iv4 = " + iv4); + + // Compare iv3 and iv4 references + System.out.println("iv3 == iv4: " + (iv3 == iv4)); + + // Let us see if they are qual in values + System.out.println("iv3.equals(iv4): " + iv3.equals(iv4)); + } +} diff --git a/BeginningJava8Fundamentals/src/com/jdojo/wrapper/MathUtil.java b/BeginningJava8Fundamentals/src/com/jdojo/wrapper/MathUtil.java new file mode 100644 index 0000000..080864d --- /dev/null +++ b/BeginningJava8Fundamentals/src/com/jdojo/wrapper/MathUtil.java @@ -0,0 +1,31 @@ +// MathUtil.java +package com.jdojo.wrapper; + +public class MathUtil { + public static Integer add(Integer a, Integer b) { + int aValue = a.intValue(); + int bValue = b.intValue(); + int resultValue = aValue + bValue; + Integer result = Integer.valueOf(resultValue); + return result; + } + + public static void main(String[] args) { + int iValue = 200; + int jValue = 300; + int kValue; /* will hold result as int */ + + // Box iValue and jValue into Integer objects + Integer i = Integer.valueOf(iValue); + Integer j = Integer.valueOf(jValue); + + // Store returned value of the add() method in an Integer object k + Integer k = MathUtil.add(i, j); + + // Unbox Integer object's int value into kValue int variable + kValue = k.intValue(); + + // Display the result using int variables + System.out.println(iValue + " + " + jValue + " = " + kValue); + } +}