+ * public class ExtendedPassword extends Password {
+ * private int decryptedPassword;
+ * public ExtendedPassword(int password) {
+ * super(password);
+ * this.decryptedPassword = password;
+ * }
+ *
+ * \@Override public void storePassword() {
+ * System.out.println("Saving password as " + this.decryptedPassword);
+ * }
+ * }
+ *
+ */
+ final void storePassword() {
+ System.out.println("Saving password as " + encryptedPassword);
+ }
+
+ boolean logMeIn(int password) {
+ if (encryptDecrypt(password) == encryptedPassword) {
+ System.out.println("Welcome");
+ return true;
+ } else {
+ System.out.println("Can't let you in buddy.");
+ return false;
+ }
+ }
+}
diff --git a/Section11/src/main/java/exercise/finalkeyword/PasswordMain.java b/Section11/src/main/java/exercise/finalkeyword/PasswordMain.java
new file mode 100644
index 0000000..2fa2e4f
--- /dev/null
+++ b/Section11/src/main/java/exercise/finalkeyword/PasswordMain.java
@@ -0,0 +1,13 @@
+package exercise.finalkeyword;
+
+public class PasswordMain {
+ public static void main(String[] args) {
+ Password password = new Password(123456);
+ password.storePassword();
+ password.logMeIn(1);
+ password.logMeIn(-1);
+ password.logMeIn(0);
+ password.logMeIn(123465);
+ password.logMeIn(123456);
+ }
+}
diff --git a/Section11/src/main/java/exercise/static_initializer/SIBExample.java b/Section11/src/main/java/exercise/static_initializer/SIBExample.java
new file mode 100644
index 0000000..62607de
--- /dev/null
+++ b/Section11/src/main/java/exercise/static_initializer/SIBExample.java
@@ -0,0 +1,29 @@
+package exercise.static_initializer;
+
+public class SIBExample {
+ //This variable will be like constant
+ public static final String howYouDoin;
+
+ static {
+ howYouDoin = "How you doing dear?";
+ System.out.println("First static block called");
+ }
+
+ static {
+ System.out.println("Second static init block called");
+ }
+
+ public SIBExample() {
+ //Below will be compile error
+// howYouDoin = "dfdfd";
+ System.out.println("Constructor called");
+ }
+
+ public static String getString() {
+ return "SIBExample{" +
+ howYouDoin +
+ "}";
+ }
+
+
+}
diff --git a/Section11/src/main/java/exercise/static_initializer/SIBExampleMain.java b/Section11/src/main/java/exercise/static_initializer/SIBExampleMain.java
new file mode 100644
index 0000000..82e5d33
--- /dev/null
+++ b/Section11/src/main/java/exercise/static_initializer/SIBExampleMain.java
@@ -0,0 +1,9 @@
+package exercise.static_initializer;
+
+public class SIBExampleMain {
+
+ public static void main(String[] args) {
+ SIBExample sibExample = new SIBExample();
+ System.out.println(SIBExample.getString());
+ }
+}
diff --git a/Section11/src/test/java/challenge/packages/SeriesTest.java b/Section11/src/test/java/challenge/packages/SeriesTest.java
new file mode 100644
index 0000000..24a229b
--- /dev/null
+++ b/Section11/src/test/java/challenge/packages/SeriesTest.java
@@ -0,0 +1,57 @@
+package challenge.packages;
+
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+
+import java.util.stream.Stream;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+class SeriesTest {
+
+ public static Stream