diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml index d821048..f758959 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -1,4 +1,6 @@ - + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index f67c57e..df7e8eb 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index b6d775a..a79878e 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -33,6 +33,7 @@ + @@ -48,6 +49,7 @@ + diff --git a/Class/DefaultInterfaceMethod/DefaultInterfaceMethod.iml b/Class/DefaultInterfaceMethod/DefaultInterfaceMethod.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/Class/DefaultInterfaceMethod/DefaultInterfaceMethod.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Class/DefaultInterfaceMethod/src/Ivan.java b/Class/DefaultInterfaceMethod/src/Ivan.java new file mode 100644 index 0000000..dd4b93c --- /dev/null +++ b/Class/DefaultInterfaceMethod/src/Ivan.java @@ -0,0 +1,16 @@ +/** + * @author Artem Pronchakov + */ +public class Ivan implements Programmer { + + @Override + public String sayHello() { + return "Hello, I am Ivan. I can write programs."; + } + + @Override + public void writeProgram() { + System.out.println("String s = null; s.toString();"); + } + +} diff --git a/Class/DefaultInterfaceMethod/src/Main.java b/Class/DefaultInterfaceMethod/src/Main.java new file mode 100644 index 0000000..364c646 --- /dev/null +++ b/Class/DefaultInterfaceMethod/src/Main.java @@ -0,0 +1,21 @@ +/** + * @author Artem Pronchakov + */ +public class Main { + + public static void main(String[] args) { + + Programmer ivan = new Ivan(); + Programmer vasiliy = new Vasiliy(); + + System.out.println(ivan.sayHello()); + ivan.writeProgram(); + + System.out.println("==========================="); + + System.out.println(vasiliy.sayHello()); + vasiliy.writeProgram(); + + } + +} diff --git a/Class/DefaultInterfaceMethod/src/Programmer.java b/Class/DefaultInterfaceMethod/src/Programmer.java new file mode 100644 index 0000000..673f4e4 --- /dev/null +++ b/Class/DefaultInterfaceMethod/src/Programmer.java @@ -0,0 +1,12 @@ +/** + * @author Artem Pronchakov + */ +public interface Programmer { + + default String sayHello() { + return "Hello"; + } + + void writeProgram(); + +} diff --git a/Class/DefaultInterfaceMethod/src/Vasiliy.java b/Class/DefaultInterfaceMethod/src/Vasiliy.java new file mode 100644 index 0000000..c6f9d73 --- /dev/null +++ b/Class/DefaultInterfaceMethod/src/Vasiliy.java @@ -0,0 +1,11 @@ +/** + * @author Artem Pronchakov + */ +public class Vasiliy implements Programmer { + + @Override + public void writeProgram() { + System.out.println("System.exit(0)"); + } + +} diff --git a/Class/Lambda/Lambda.iml b/Class/Lambda/Lambda.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/Class/Lambda/Lambda.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Class/Lambda/src/edu/javacourse/clazz/lambda/Handler.java b/Class/Lambda/src/edu/javacourse/clazz/lambda/Handler.java new file mode 100644 index 0000000..ea915bf --- /dev/null +++ b/Class/Lambda/src/edu/javacourse/clazz/lambda/Handler.java @@ -0,0 +1,14 @@ +package edu.javacourse.clazz.lambda; + +/** + * @author Artem Pronchakov + */ +public class Handler { + + void handle(Person person, ToStringer toStringer) { + + System.out.println("Handled person: " + toStringer.convertToString(person)); + + } + +} diff --git a/Class/Lambda/src/edu/javacourse/clazz/lambda/Main.java b/Class/Lambda/src/edu/javacourse/clazz/lambda/Main.java new file mode 100644 index 0000000..9055ac7 --- /dev/null +++ b/Class/Lambda/src/edu/javacourse/clazz/lambda/Main.java @@ -0,0 +1,48 @@ +package edu.javacourse.clazz.lambda; + +/** + * @author Artem Pronchakov + */ +public class Main { + + public static void main(String[] args) { + + Person person = new Person(3L, "Franca Sabbatini"); + + Handler handler = new Handler(); + +// Class + ClassToStringer classToStringer = new ClassToStringer(); + handler.handle(person, classToStringer); + + System.out.println("\r\n================================================\r\n"); + +// Anonymous class + handler.handle(person, new ToStringer() { + @Override + public String convertToString(Person person) { + return "anonymous: " + person.getName(); + } + }); + + System.out.println("\r\n================================================\r\n"); + +// Lambda long + handler.handle(person, (Person p) -> { return "lambda_long: " + p.getName(); }); + + System.out.println("\r\n================================================\r\n"); + +// Lambda short + handler.handle(person, (p) -> "lambda_short: " + p.getName()); + } + + private static class ClassToStringer implements ToStringer { + + @Override + public String convertToString(Person person) { + return "class: " + person.getName(); + } + + } + +} diff --git a/Class/Lambda/src/edu/javacourse/clazz/lambda/Person.java b/Class/Lambda/src/edu/javacourse/clazz/lambda/Person.java new file mode 100644 index 0000000..8da7496 --- /dev/null +++ b/Class/Lambda/src/edu/javacourse/clazz/lambda/Person.java @@ -0,0 +1,42 @@ +package edu.javacourse.clazz.lambda; + +/** + * @author Artem Pronchakov + */ +public class Person { + + private Long id; + private String name; + + public Person() { + } + + public Person(Long id, String name) { + this.id = id; + this.name = name; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + return "Person{" + + "id=" + id + + ", name='" + name + '\'' + + '}'; + } +} diff --git a/Class/Lambda/src/edu/javacourse/clazz/lambda/ToStringer.java b/Class/Lambda/src/edu/javacourse/clazz/lambda/ToStringer.java new file mode 100644 index 0000000..728d97f --- /dev/null +++ b/Class/Lambda/src/edu/javacourse/clazz/lambda/ToStringer.java @@ -0,0 +1,10 @@ +package edu.javacourse.clazz.lambda; + +/** + * @author Artem Pronchakov + */ +public interface ToStringer { + + String convertToString(Person person); + +}