diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..74a90eb
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..8f47e5a
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/java-course.iml b/.idea/java-course.iml
new file mode 100644
index 0000000..cf6b305
--- /dev/null
+++ b/.idea/java-course.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..0ee0ea1
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..edb5d78
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/0/7/07aec024d050b8e8f89abefe26c85019f79c8fb4 b/.idea/sonarlint/issuestore/0/7/07aec024d050b8e8f89abefe26c85019f79c8fb4
new file mode 100644
index 0000000..c6686f6
--- /dev/null
+++ b/.idea/sonarlint/issuestore/0/7/07aec024d050b8e8f89abefe26c85019f79c8fb4
@@ -0,0 +1,2 @@
+
+? java:S106"+Replace this use of System.out by a logger.(男
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d b/.idea/sonarlint/issuestore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/index.pb b/.idea/sonarlint/issuestore/index.pb
new file mode 100644
index 0000000..9b606cf
--- /dev/null
+++ b/.idea/sonarlint/issuestore/index.pb
@@ -0,0 +1,61 @@
+
+9
+ README.md,8\e\8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d
+r
+BJavaCourse/src/main/java/com/rinftech/practice/eight/Solution.java,0\7\07aec024d050b8e8f89abefe26c85019f79c8fb4
+
+Q.idea/sonarlint/securityhotspotstore/0/7/07aec024d050b8e8f89abefe26c85019f79c8fb4,d\a\dabb3ab522f2649315f9ac82631373a9149057a5
+q
+AJavaCourse/src/main/java/com/rinftech/practice/nine/Solution.java,b\a\bad9a3534687de0da3f59ab0580d8dfa3d613fe4
+r
+BJavaCourse/src/main/java/com/rinftech/practice/three/Employee.java,5\f\5fc62f436b3e610cd271c77b40bea955a673fbe8
+o
+?JavaCourse/src/main/java/com/rinftech/practice/seven/Tiger.java,5\3\539c8f58cab7ef3f03e432deff02495bb6bbe799
+s
+CJavaCourse/src/main/java/com/rinftech/practice/four/Motorcycle.java,9\3\934c196dc1051f26b12a69c13134d61c302c646b
+p
+@JavaCourse/src/main/java/com/rinftech/practice/six/Triangle.java,3\7\37fe83cd20770be032ed9d98dcc1803eae5219e1
+q
+AJavaCourse/src/main/java/com/rinftech/practice/seven/Panther.java,6\1\613928b041355cb0b48200d2f79bb76339af9b76
+q
+AJavaCourse/src/main/java/com/rinftech/practice/four/Solution.java,e\2\e29e5d2b4996d8b996178d0f15ff4da45ac20f9c
+q
+AJavaCourse/src/main/java/com/rinftech/practice/five/Solution.java,3\5\35288459da2322a03c777f2c08ea180475f92ede
+p
+@JavaCourse/src/main/java/com/rinftech/practice/one/Solution.java,6\1\611904412ed8c69075cd20a69c8989ff47bdbca0
+p
+@JavaCourse/src/main/java/com/rinftech/practice/three/Person.java,5\f\5ff75db058af2536b5bba01bdf99a9610ca4bb1f
+p
+@JavaCourse/src/main/java/com/rinftech/practice/six/Solution.java,7\1\7137677eb1e3547807ffe61780dddbc66c1b2bcb
+p
+@JavaCourse/src/main/java/com/rinftech/practice/four/Vehicle.java,1\4\143092c19fa9f572b3be37fe646ad3cc2a635f30
+p
+@JavaCourse/src/main/java/com/rinftech/practice/two/Solution.java,7\0\70320c3bbc172273b349e0daa4bc3f4dc5aab4e3
+n
+>JavaCourse/src/main/java/com/rinftech/practice/six/Circle.java,e\3\e3a56159d91371163310e62e0bdc28cd2efc2168
+n
+>JavaCourse/src/main/java/com/rinftech/practice/four/Truck.java,9\4\9437a0f5d940fd503699383d1ae94a483ba6e923
+q
+AJavaCourse/src/main/java/com/rinftech/practice/six/Rectangle.java,5\8\58dd3ebb53d9e08b0e7b4ff04f07c7d000be5a41
+l
+JavaCourse/src/main/java/com/rinftech/practice/seven/Lion.java,8\c\8c2451e632c1fdd80694ba93b4a3546307ee5521
+p
+@JavaCourse/src/main/java/com/rinftech/practice/ten/Solution.java,e\1\e16bee6426c72cf98e8b8e585a6d767e1a69e29d
+]
+-.idea/sonarlint/securityhotspotstore/index.pb,8\8\88a9255124c95bdc913197c120a8d560edc59c8e
+S
+#.idea/sonarlint/issuestore/index.pb,9\f\9fe84ebb15faf917b7def6236dba604453cc61e0
+
+Q.idea/sonarlint/securityhotspotstore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d,1\0\10a03f31c4dce92cb371e761ce9429428bb6c176
+w
+G.idea/sonarlint/issuestore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d,b\4\b4a0b63ce8560bbc5de0f9995c20cc861dc2adb3
+m
+=JavaCourse/src/main/java/com/rinftech/practice/six/Shape.java,c\3\c35ae6878f13756f6d6d1f6f6bde66148d1566f8
+r
+BJavaCourse/src/main/java/com/rinftech/practice/three/Solution.java,5\3\53a94e37cc01ed1d1591b8fd12e8ed95c47362e2
\ No newline at end of file
diff --git a/.idea/sonarlint/securityhotspotstore/0/7/07aec024d050b8e8f89abefe26c85019f79c8fb4 b/.idea/sonarlint/securityhotspotstore/0/7/07aec024d050b8e8f89abefe26c85019f79c8fb4
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d b/.idea/sonarlint/securityhotspotstore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/index.pb b/.idea/sonarlint/securityhotspotstore/index.pb
new file mode 100644
index 0000000..9b606cf
--- /dev/null
+++ b/.idea/sonarlint/securityhotspotstore/index.pb
@@ -0,0 +1,61 @@
+
+9
+ README.md,8\e\8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d
+r
+BJavaCourse/src/main/java/com/rinftech/practice/eight/Solution.java,0\7\07aec024d050b8e8f89abefe26c85019f79c8fb4
+
+Q.idea/sonarlint/securityhotspotstore/0/7/07aec024d050b8e8f89abefe26c85019f79c8fb4,d\a\dabb3ab522f2649315f9ac82631373a9149057a5
+q
+AJavaCourse/src/main/java/com/rinftech/practice/nine/Solution.java,b\a\bad9a3534687de0da3f59ab0580d8dfa3d613fe4
+r
+BJavaCourse/src/main/java/com/rinftech/practice/three/Employee.java,5\f\5fc62f436b3e610cd271c77b40bea955a673fbe8
+o
+?JavaCourse/src/main/java/com/rinftech/practice/seven/Tiger.java,5\3\539c8f58cab7ef3f03e432deff02495bb6bbe799
+s
+CJavaCourse/src/main/java/com/rinftech/practice/four/Motorcycle.java,9\3\934c196dc1051f26b12a69c13134d61c302c646b
+p
+@JavaCourse/src/main/java/com/rinftech/practice/six/Triangle.java,3\7\37fe83cd20770be032ed9d98dcc1803eae5219e1
+q
+AJavaCourse/src/main/java/com/rinftech/practice/seven/Panther.java,6\1\613928b041355cb0b48200d2f79bb76339af9b76
+q
+AJavaCourse/src/main/java/com/rinftech/practice/four/Solution.java,e\2\e29e5d2b4996d8b996178d0f15ff4da45ac20f9c
+q
+AJavaCourse/src/main/java/com/rinftech/practice/five/Solution.java,3\5\35288459da2322a03c777f2c08ea180475f92ede
+p
+@JavaCourse/src/main/java/com/rinftech/practice/one/Solution.java,6\1\611904412ed8c69075cd20a69c8989ff47bdbca0
+p
+@JavaCourse/src/main/java/com/rinftech/practice/three/Person.java,5\f\5ff75db058af2536b5bba01bdf99a9610ca4bb1f
+p
+@JavaCourse/src/main/java/com/rinftech/practice/six/Solution.java,7\1\7137677eb1e3547807ffe61780dddbc66c1b2bcb
+p
+@JavaCourse/src/main/java/com/rinftech/practice/four/Vehicle.java,1\4\143092c19fa9f572b3be37fe646ad3cc2a635f30
+p
+@JavaCourse/src/main/java/com/rinftech/practice/two/Solution.java,7\0\70320c3bbc172273b349e0daa4bc3f4dc5aab4e3
+n
+>JavaCourse/src/main/java/com/rinftech/practice/six/Circle.java,e\3\e3a56159d91371163310e62e0bdc28cd2efc2168
+n
+>JavaCourse/src/main/java/com/rinftech/practice/four/Truck.java,9\4\9437a0f5d940fd503699383d1ae94a483ba6e923
+q
+AJavaCourse/src/main/java/com/rinftech/practice/six/Rectangle.java,5\8\58dd3ebb53d9e08b0e7b4ff04f07c7d000be5a41
+l
+JavaCourse/src/main/java/com/rinftech/practice/seven/Lion.java,8\c\8c2451e632c1fdd80694ba93b4a3546307ee5521
+p
+@JavaCourse/src/main/java/com/rinftech/practice/ten/Solution.java,e\1\e16bee6426c72cf98e8b8e585a6d767e1a69e29d
+]
+-.idea/sonarlint/securityhotspotstore/index.pb,8\8\88a9255124c95bdc913197c120a8d560edc59c8e
+S
+#.idea/sonarlint/issuestore/index.pb,9\f\9fe84ebb15faf917b7def6236dba604453cc61e0
+
+Q.idea/sonarlint/securityhotspotstore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d,1\0\10a03f31c4dce92cb371e761ce9429428bb6c176
+w
+G.idea/sonarlint/issuestore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d,b\4\b4a0b63ce8560bbc5de0f9995c20cc861dc2adb3
+m
+=JavaCourse/src/main/java/com/rinftech/practice/six/Shape.java,c\3\c35ae6878f13756f6d6d1f6f6bde66148d1566f8
+r
+BJavaCourse/src/main/java/com/rinftech/practice/three/Solution.java,5\3\53a94e37cc01ed1d1591b8fd12e8ed95c47362e2
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/eight/Solution.java b/JavaCourse/src/main/java/com/rinftech/practice/eight/Solution.java
new file mode 100644
index 0000000..df4cd5a
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/eight/Solution.java
@@ -0,0 +1,23 @@
+package com.rinftech.practice.eight;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Solution {
+ public static void main(String[] args) {
+ List list = new ArrayList<>();
+ list.add("Red");
+ list.add("Green");
+ list.add("Black");
+ list.add("White");
+ list.add("Pink");
+ int firstIndex = 1;
+ int secondIndex = 4;
+
+ String aux = list.get(firstIndex);
+ list.set(firstIndex, list.get(secondIndex));
+ list.set(secondIndex, aux);
+
+ System.out.println("The modified list: " + list);
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/five/Solution.java b/JavaCourse/src/main/java/com/rinftech/practice/five/Solution.java
new file mode 100644
index 0000000..66a9680
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/five/Solution.java
@@ -0,0 +1,26 @@
+package com.rinftech.practice.five;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class Solution {
+ public static void main(String[] args) {
+ String [] firstArray = { "Python", "Java", "GoLang", "Lisp" };
+ String [] secondArray = { "Java", "C++", "Apples", "Hamburger", "Lisp" };
+
+ String [] resultArray = findCommonElements(firstArray, secondArray);
+ System.out.println("Common elements:");
+ for (String element : resultArray)
+ System.out.println(element);
+
+ }
+
+ public static String[] findCommonElements(String[] firstArray, String[] secondArray) {
+ List auxList = new ArrayList<>();
+ for (String s : firstArray)
+ if (Arrays.asList(secondArray).contains(s))
+ auxList.add(s);
+ return auxList.toArray(new String[0]);
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/four/Car.java b/JavaCourse/src/main/java/com/rinftech/practice/four/Car.java
new file mode 100644
index 0000000..f25fb9e
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/four/Car.java
@@ -0,0 +1,7 @@
+package com.rinftech.practice.four;
+
+public class Car extends Vehicle{
+ public Car(String make, String model, int year, String fuelType) {
+ super(make, model, year, fuelType);
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/four/Motorcycle.java b/JavaCourse/src/main/java/com/rinftech/practice/four/Motorcycle.java
new file mode 100644
index 0000000..d9a3e65
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/four/Motorcycle.java
@@ -0,0 +1,7 @@
+package com.rinftech.practice.four;
+
+public class Motorcycle extends Vehicle{
+ public Motorcycle(String make, String model, int year, String fuelType) {
+ super(make, model, year, fuelType);
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/four/Solution.java b/JavaCourse/src/main/java/com/rinftech/practice/four/Solution.java
new file mode 100644
index 0000000..cd067e8
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/four/Solution.java
@@ -0,0 +1,33 @@
+package com.rinftech.practice.four;
+
+public class Solution {
+ public static void main(String[] args) {
+ Truck truck = new Truck("Man", "TGX", 2005, "gas");
+ double truckFuelEfficiency = truck.calculateFuelEfficiency(100, 12.5);
+ System.out.println(truck.getMake() + " " + truck.getModel() + " fuel efficiency = " + truckFuelEfficiency);
+ double truckDistanceTravelled = truck.calculateDistanceTraveled(100, 3);
+ System.out.println(truck.getMake() + " " + truck.getModel() + " distance travelled = " + truckDistanceTravelled);
+ double truckMaxSpeed = truck.calculateMaximumSpeed(20, 1.2);
+ System.out.println(truck.getMake() + " " + truck.getModel() + " max speed = " + truckMaxSpeed);
+
+ System.out.println();
+
+ Car car = new Car("BMW", "M5", 2020, "diesel");
+ double carFuelEfficiency = car.calculateFuelEfficiency(123.44, 8.5);
+ System.out.println(car.getMake() + " " + car.getModel() + " fuel efficiency = " + carFuelEfficiency);
+ double carDistanceTravelled = car.calculateDistanceTraveled(170, 2);
+ System.out.println(car.getMake() + " " + car.getModel() + " distance travelled = " + carDistanceTravelled);
+ double carMaxSpeed = car.calculateMaximumSpeed(50, 0.6);
+ System.out.println(car.getMake() + " " + car.getModel() + " max speed = " + carMaxSpeed);
+
+ System.out.println();
+
+ Motorcycle motorcycle = new Motorcycle("Harley", "Davidson", 2015, "gas");
+ double motorcycleFuelEfficiency = motorcycle.calculateFuelEfficiency(150, 11.5);
+ System.out.println(motorcycle.getMake() + " " + motorcycle.getModel() + " fuel efficiency = " + motorcycleFuelEfficiency);
+ double motorcycleDistanceTravelled = motorcycle.calculateDistanceTraveled(90, 5);
+ System.out.println(motorcycle.getMake() + " " + motorcycle.getModel() + " distance travelled = " + motorcycleDistanceTravelled);
+ double motorcycleMaxSpeed = motorcycle.calculateMaximumSpeed(30, 1.3);
+ System.out.println(motorcycle.getMake() + " " + motorcycle.getModel() + " max speed = " + motorcycleMaxSpeed);
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/four/Truck.java b/JavaCourse/src/main/java/com/rinftech/practice/four/Truck.java
new file mode 100644
index 0000000..d912630
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/four/Truck.java
@@ -0,0 +1,10 @@
+package com.rinftech.practice.four;
+
+public class Truck extends Vehicle{
+
+ public Truck(String make, String model, int year, String fuelType) {
+ super(make, model, year, fuelType);
+ }
+
+
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/four/Vehicle.java b/JavaCourse/src/main/java/com/rinftech/practice/four/Vehicle.java
new file mode 100644
index 0000000..57a9b28
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/four/Vehicle.java
@@ -0,0 +1,69 @@
+package com.rinftech.practice.four;
+
+public class Vehicle {
+ private String make;
+ private String model;
+ private int year;
+ private String fuelType;
+
+ public Vehicle(String make, String model, int year, String fuelType) {
+ this.make = make;
+ this.model = model;
+ this.year = year;
+ this.fuelType = fuelType;
+ }
+
+ public String getMake() {
+ return make;
+ }
+
+ public void setMake(String make) {
+ this.make = make;
+ }
+
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public int getYear() {
+ return year;
+ }
+
+ public void setYear(int year) {
+ this.year = year;
+ }
+
+ public String getFuelType() {
+ return fuelType;
+ }
+
+ public void setFuelType(String fuelType) {
+ this.fuelType = fuelType;
+ }
+
+ public double calculateFuelEfficiency(double distance, double fuelConsumed) {
+ return distance / fuelConsumed;
+ }
+
+ public double calculateDistanceTraveled(double speed, double time) {
+ return speed * time;
+ }
+
+ public double calculateMaximumSpeed(double acceleration, double distance) {
+ return Math.sqrt(acceleration * distance);
+ }
+
+ @Override
+ public String toString() {
+ return "Vehicle{" +
+ "make='" + make + '\'' +
+ ", model='" + model + '\'' +
+ ", year=" + year +
+ ", fuelType='" + fuelType + '\'' +
+ '}';
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/nine/Solution.java b/JavaCourse/src/main/java/com/rinftech/practice/nine/Solution.java
new file mode 100644
index 0000000..7abf263
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/nine/Solution.java
@@ -0,0 +1,28 @@
+package com.rinftech.practice.nine;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public class Solution {
+ public static void main(String[] args) {
+ List list = new ArrayList<>();
+ String word = "Green";
+ list.add("Red");
+ list.add("Green");
+ list.add("Black");
+ list.add("White");
+ list.add("Pink");
+ list.add("Green");
+ list.add("Green");
+ list.add("Black");
+ list.add("Yellow");
+ list.add("White");
+
+ int firstOccurrence = list.indexOf(word);
+ Collections.reverse(list);
+ int lastOccurrence = list.size() - list.indexOf(word) - 1;
+ System.out.println("First occurrence for " + word + " is position " + firstOccurrence +
+ " and last is position " + lastOccurrence);
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/one/Solution.java b/JavaCourse/src/main/java/com/rinftech/practice/one/Solution.java
new file mode 100644
index 0000000..92a2005
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/one/Solution.java
@@ -0,0 +1,18 @@
+package com.rinftech.practice.one;
+
+public class Solution {
+ public static void main(String[] args) {
+ long input = 8733;
+ int result = computeSumOfDigits(input);
+ System.out.println("The sum of an integer's digits = " + result);
+ }
+
+ public static int computeSumOfDigits(long number) {
+ int result = 0;
+ while (number != 0) {
+ result += (int) (number % 10);
+ number /= 10;
+ }
+ return result;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/seven/Animal.java b/JavaCourse/src/main/java/com/rinftech/practice/seven/Animal.java
new file mode 100644
index 0000000..910fb58
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/seven/Animal.java
@@ -0,0 +1,6 @@
+package com.rinftech.practice.seven;
+
+public abstract class Animal {
+ abstract void eat();
+ abstract void sound();
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/seven/Lion.java b/JavaCourse/src/main/java/com/rinftech/practice/seven/Lion.java
new file mode 100644
index 0000000..e07e2da
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/seven/Lion.java
@@ -0,0 +1,13 @@
+package com.rinftech.practice.seven;
+
+public class Lion extends Animal{
+ @Override
+ void eat() {
+ System.out.println("Lions eat raw meat");
+ }
+
+ @Override
+ void sound() {
+ System.out.println("ROARRRRR!!!!");
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/seven/Panther.java b/JavaCourse/src/main/java/com/rinftech/practice/seven/Panther.java
new file mode 100644
index 0000000..8c1e230
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/seven/Panther.java
@@ -0,0 +1,13 @@
+package com.rinftech.practice.seven;
+
+public class Panther extends Animal{
+ @Override
+ void eat() {
+ System.out.println("Tigers eat raw meat and prey");
+ }
+
+ @Override
+ void sound() {
+ System.out.println("Purrrrr.....");
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/seven/Solution.java b/JavaCourse/src/main/java/com/rinftech/practice/seven/Solution.java
new file mode 100644
index 0000000..c8c4efb
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/seven/Solution.java
@@ -0,0 +1,19 @@
+package com.rinftech.practice.seven;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Solution {
+ public static void main(String[] args) {
+ List animals = new ArrayList<>();
+ animals.add(new Lion());
+ animals.add(new Tiger());
+ animals.add(new Panther());
+
+ for (Animal animal : animals) {
+ animal.eat();
+ animal.sound();
+ }
+
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/seven/Tiger.java b/JavaCourse/src/main/java/com/rinftech/practice/seven/Tiger.java
new file mode 100644
index 0000000..b0e2df7
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/seven/Tiger.java
@@ -0,0 +1,13 @@
+package com.rinftech.practice.seven;
+
+public class Tiger extends Animal{
+ @Override
+ void eat() {
+ System.out.println("Tigers eat raw meat");
+ }
+
+ @Override
+ void sound() {
+ System.out.println("Chuff....");
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/six/Circle.java b/JavaCourse/src/main/java/com/rinftech/practice/six/Circle.java
new file mode 100644
index 0000000..51b4631
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/six/Circle.java
@@ -0,0 +1,15 @@
+package com.rinftech.practice.six;
+
+public class Circle extends Shape{
+
+ private final int radius;
+
+ public Circle(int radius) {
+ this.radius = radius;
+ }
+
+ @Override
+ double calculateArea() {
+ return Math.PI * Math.pow(radius, 2);
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/six/Rectangle.java b/JavaCourse/src/main/java/com/rinftech/practice/six/Rectangle.java
new file mode 100644
index 0000000..94e50b0
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/six/Rectangle.java
@@ -0,0 +1,16 @@
+package com.rinftech.practice.six;
+
+public class Rectangle extends Shape{
+ private final double length;
+ private final double width;
+
+ public Rectangle(double length, double width) {
+ this.length = length;
+ this.width = width;
+ }
+
+ @Override
+ double calculateArea() {
+ return length * width;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/six/Shape.java b/JavaCourse/src/main/java/com/rinftech/practice/six/Shape.java
new file mode 100644
index 0000000..7b6dd25
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/six/Shape.java
@@ -0,0 +1,6 @@
+package com.rinftech.practice.six;
+
+public abstract class Shape {
+
+ abstract double calculateArea();
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/six/Solution.java b/JavaCourse/src/main/java/com/rinftech/practice/six/Solution.java
new file mode 100644
index 0000000..c434b95
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/six/Solution.java
@@ -0,0 +1,14 @@
+package com.rinftech.practice.six;
+
+public class Solution {
+ public static void main(String[] args) {
+ Circle circle = new Circle(5);
+ System.out.println("Circle area = " + circle.calculateArea());
+
+ Rectangle rectangle = new Rectangle(10, 13.5);
+ System.out.println("Rectangle area = " + rectangle.calculateArea());
+
+ Triangle triangle = new Triangle(13, 14, 16);
+ System.out.println("Triangle area = " + triangle.calculateArea());
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/six/Triangle.java b/JavaCourse/src/main/java/com/rinftech/practice/six/Triangle.java
new file mode 100644
index 0000000..5492e51
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/six/Triangle.java
@@ -0,0 +1,20 @@
+package com.rinftech.practice.six;
+
+public class Triangle extends Shape{
+ private final double first_length;
+ private final double second_length;
+ private final double third_length;
+
+ public Triangle(double first_length, double second_length, double third_length) {
+ this.first_length = first_length;
+ this.second_length = second_length;
+ this.third_length = third_length;
+ }
+
+ @Override
+ double calculateArea() {
+ double semiPerimeter = (first_length + second_length + third_length) / 2;
+ return Math.sqrt(semiPerimeter * (semiPerimeter - first_length) * (semiPerimeter - second_length) *
+ (semiPerimeter - third_length));
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/ten/Solution.java b/JavaCourse/src/main/java/com/rinftech/practice/ten/Solution.java
new file mode 100644
index 0000000..410c9a0
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/ten/Solution.java
@@ -0,0 +1,29 @@
+package com.rinftech.practice.ten;
+
+import java.util.*;
+
+public class Solution {
+ public static void main(String[] args) {
+ String [] array = {"eat", "tea", "tan", "ate", "nat", "bat", "listen",
+ "silent", "enlist", "hello", "world", "dlrow"};
+ Map> map = new HashMap<>();
+
+ for (String element : array) {
+ char[] chars = element.toCharArray();
+ Arrays.sort(chars);
+ String sorted = new String(chars);
+
+ List anagrams;
+ if (!map.containsKey(sorted))
+ anagrams = new ArrayList<>();
+ else anagrams = map.get(sorted);
+
+ anagrams.add(element);
+ map.put(sorted, anagrams);
+ }
+
+ System.out.println("Grouped anagrams:");
+ for (String entry : map.keySet())
+ System.out.println(map.get(entry));
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/three/Employee.java b/JavaCourse/src/main/java/com/rinftech/practice/three/Employee.java
new file mode 100644
index 0000000..1e4b3f3
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/three/Employee.java
@@ -0,0 +1,28 @@
+package com.rinftech.practice.three;
+
+public class Employee extends Person{
+ private int employeeId;
+ private String jobTitle;
+ public Employee(String firstName, String lastName, int employeeId, String jobTitle) {
+ super(firstName, lastName);
+ this.employeeId = employeeId;
+ this.jobTitle = jobTitle;
+ }
+
+ public int getEmployeeId() {
+ return employeeId;
+ }
+
+ @Override
+ public String getLastName() {
+ return super.getLastName() + " " + jobTitle;
+ }
+
+ @Override
+ public String toString() {
+ return "Employee{" +
+ "employeeId=" + employeeId + " " +
+ "firstName=" + super.getFirstName() + " " +
+ "lastName=" + getLastName() + "}";
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/three/Person.java b/JavaCourse/src/main/java/com/rinftech/practice/three/Person.java
new file mode 100644
index 0000000..54cbcd4
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/three/Person.java
@@ -0,0 +1,27 @@
+package com.rinftech.practice.three;
+
+public class Person {
+ private String firstName;
+ private String lastName;
+
+ public Person(String firstName, String lastName) {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ @Override
+ public String toString() {
+ return "Person{" +
+ "firstName='" + firstName + '\'' +
+ ", lastName='" + lastName + '\'' +
+ '}';
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/three/Solution.java b/JavaCourse/src/main/java/com/rinftech/practice/three/Solution.java
new file mode 100644
index 0000000..886b577
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/three/Solution.java
@@ -0,0 +1,8 @@
+package com.rinftech.practice.three;
+
+public class Solution {
+ public static void main(String[] args) {
+ Employee employee = new Employee("Mike", "Dan", 1, "developer");
+ System.out.println(employee);
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/practice/two/Solution.java b/JavaCourse/src/main/java/com/rinftech/practice/two/Solution.java
new file mode 100644
index 0000000..45ac000
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/practice/two/Solution.java
@@ -0,0 +1,32 @@
+package com.rinftech.practice.two;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Solution {
+ static final String LETTERS = "Letters";
+ static final String NUMBERS = "Numbers";
+ static final String SPACES = "Spaces";
+
+ public static void main(String[] args) {
+ Map map = new HashMap<>();
+ map.put(LETTERS, 0);
+ map.put(SPACES, 0);
+ map.put(NUMBERS, 0);
+ String input = "The quick brown fox jumps over 42 lazy dogs";
+
+ analyzeText(input, map);
+ System.out.println("The text has: \n" + "Letters: " + map.get(LETTERS) + "\n" +
+ "Numbers: " + map.get(NUMBERS) + "\n" + "Spaces: " + map.get(SPACES));
+ }
+
+ public static void analyzeText(String text, Map map) {
+ for (int i = 0; i < text.length(); i++)
+ if (text.charAt(i) >= 'a' && text.charAt(i) <= 'z' ||
+ text.charAt(i) >= 'A' && text.charAt(i) <= 'Z')
+ map.put(LETTERS, map.get(LETTERS) + 1);
+ else if (text.charAt(i) >= '0' && text.charAt(i) <= '9')
+ map.put(NUMBERS, map.get(NUMBERS) + 1);
+ else map.put(SPACES, map.get(SPACES) + 1);
+ }
+}