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);
+
+}