From 05174a51a25b5561b718e3b1e2b7ec9769de7163 Mon Sep 17 00:00:00 2001 From: 523000 Date: Sat, 15 Apr 2023 11:12:10 +0300 Subject: [PATCH 1/2] Am adaugat o clasa in Java --- _1_basics/src/main/java/code/_3_in_class/Salut.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 _1_basics/src/main/java/code/_3_in_class/Salut.java diff --git a/_1_basics/src/main/java/code/_3_in_class/Salut.java b/_1_basics/src/main/java/code/_3_in_class/Salut.java new file mode 100644 index 000000000..2f119ca69 --- /dev/null +++ b/_1_basics/src/main/java/code/_3_in_class/Salut.java @@ -0,0 +1,7 @@ +package code._3_in_class; + +public class Salut { + public static void main(String[] args) { + System.out.println("hello world!"); + } +} From 83213a5909b2e7376bd7b91267fda14981cc2a58 Mon Sep 17 00:00:00 2001 From: 523000 Date: Sat, 20 May 2023 11:00:24 +0300 Subject: [PATCH 2/2] Proiect Design Pattern --- .../src/main/java/code/_3_in_class/Boxer.java | 24 ++ .../main/java/code/_3_in_class/BruceLee.java | 16 ++ .../src/main/java/code/_3_in_class/Main.java | 35 ++- .../main/java/code/_3_in_class/Multiplii.java | 29 +++ .../main/java/code/_3_in_class/car/Main.java | 10 + .../example_static/StaticExample.java | 38 ++++ .../meu/preferat/DefaultPackageClass.java | 7 + .../InitializationOrder.java | 3 +- .../encapsulation/EncapsulationExample.java | 34 +++ .../main/java/code/_3_in_class/Autobuz.java | 208 ++++++++++++++++++ .../src/main/java/code/_3_in_class/Boxer.java | 23 ++ .../main/java/code/_3_in_class/BruceLee.java | 15 ++ .../main/java/code/_3_in_class/IBoxer.java | 7 + .../src/main/java/code/_3_in_class/Main.java | 30 ++- .../java/code/_3_in_class/SuperBoxer.java | 26 +++ .../abstractizare/AlgoritmAbstract.java | 17 ++ .../AlgoritmSortareAscendent.java | 8 + .../AlgoritmSortareDescendent.java | 7 + .../code/_3_in_class/factory/IStudent.java | 4 + .../code/_3_in_class/factory/StudentGenX.java | 5 + .../design_patterns/requirements/Autobuz.java | 50 +++++ .../requirements/AutobuzBuilder.java | 42 ++++ .../requirements/BuilderDesignPattern.java | 15 ++ .../requirements/ISortOrder.java | 5 + .../design_patterns/requirements/Main.java | 70 +++++- .../requirements/SortAscendent.java | 8 + .../requirements/SortDescendent.java | 8 + .../requirements/TemplateMethodPattern.java | 17 ++ 28 files changed, 756 insertions(+), 5 deletions(-) create mode 100644 _1_basics/src/main/java/code/_3_in_class/Boxer.java create mode 100644 _1_basics/src/main/java/code/_3_in_class/BruceLee.java create mode 100644 _1_basics/src/main/java/code/_3_in_class/Multiplii.java create mode 100644 _1_basics/src/main/java/code/_3_in_class/car/Main.java create mode 100644 _1_basics/src/main/java/code/_3_in_class/example_static/StaticExample.java create mode 100644 _1_basics/src/main/java/pachetul/meu/preferat/DefaultPackageClass.java create mode 100644 _2_oo/src/main/java/code/_1_study/_3_class_types/encapsulation/EncapsulationExample.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/Autobuz.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/Boxer.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/BruceLee.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/IBoxer.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/SuperBoxer.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/abstractizare/AlgoritmAbstract.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/abstractizare/AlgoritmSortareAscendent.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/abstractizare/AlgoritmSortareDescendent.java create mode 100644 _3_design_patterns/src/main/java/code/_3_in_class/factory/IStudent.java create mode 100644 _3_design_patterns/src/main/java/code/_3_in_class/factory/StudentGenX.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Autobuz.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/AutobuzBuilder.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/BuilderDesignPattern.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/ISortOrder.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/SortAscendent.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/SortDescendent.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/TemplateMethodPattern.java diff --git a/_1_basics/src/main/java/code/_3_in_class/Boxer.java b/_1_basics/src/main/java/code/_3_in_class/Boxer.java new file mode 100644 index 000000000..480a9a4fe --- /dev/null +++ b/_1_basics/src/main/java/code/_3_in_class/Boxer.java @@ -0,0 +1,24 @@ +package code._3_in_class; + +public class Boxer { + + String nume; + int health=100; + int damagePerAttack=10; + + public Boxer(String nume, int health, int damagePerAttack){ + this.nume=nume; + this.health=health; + this.damagePerAttack=damagePerAttack; + } + + public Boxer(String nume) { + this.nume = nume; + } + + void attack(Boxer opponent) { + opponent.health=opponent.health-this.damagePerAttack; + } + void defend() {} + +} diff --git a/_1_basics/src/main/java/code/_3_in_class/BruceLee.java b/_1_basics/src/main/java/code/_3_in_class/BruceLee.java new file mode 100644 index 000000000..98f8317bc --- /dev/null +++ b/_1_basics/src/main/java/code/_3_in_class/BruceLee.java @@ -0,0 +1,16 @@ +package code._3_in_class; + +public class BruceLee extends Boxer{ + public BruceLee(String nume, int health, int damagePerAttack) { + super(nume, health, damagePerAttack); + } + + public BruceLee(String nume) { + super(nume); + } + + void attack(Boxer opponent) { + System.out.println(this.nume+"il ataca pe" +opponent.nume+"- new health is"+opponent.health); + opponent.health=opponent.health-this.damagePerAttack; + } +} diff --git a/_1_basics/src/main/java/code/_3_in_class/Main.java b/_1_basics/src/main/java/code/_3_in_class/Main.java index 3b87b4563..c2a98e03f 100644 --- a/_1_basics/src/main/java/code/_3_in_class/Main.java +++ b/_1_basics/src/main/java/code/_3_in_class/Main.java @@ -1,8 +1,39 @@ package code._3_in_class; - +import java.util.Random; public class Main { + public Main() { + } + public static void main(String[] args) { - //TODO put your code changes in here + + Boxer ion = new Boxer("ion",100,10); + Boxer vasile = new Boxer("vasile"); + Boxer bruceLee = new Boxer("bruce lee"); + + startBox(ion, bruceLee); + + announceVictory(ion, bruceLee); + + } + + private static void announceVictory(Boxer b01,Boxer b02) { + if(b01.health<=0){ + System.out.println("Vasile a castigat"); + }else{ + System.out.println("Ion a castigat"); + } + } + + private static void startBox(Boxer ion, Boxer vasile) { + Random random=new Random(); + while(ion.health>0 && vasile.health>0) { + int zeroOrOne = random.nextInt(2); + if (zeroOrOne == 0) { + ion.attack(vasile); + } else { + vasile.attack(ion); + } + } } } \ No newline at end of file diff --git a/_1_basics/src/main/java/code/_3_in_class/Multiplii.java b/_1_basics/src/main/java/code/_3_in_class/Multiplii.java new file mode 100644 index 000000000..beb502d93 --- /dev/null +++ b/_1_basics/src/main/java/code/_3_in_class/Multiplii.java @@ -0,0 +1,29 @@ +package code._3_in_class; + +class Numere { + public static void Multiplii(int n) { + + int i; + for (i = 1; i <= n; i++) { + if (i % 3 == 0 && i % 5 == 0) { + System.out.print("FizzBuzz"); + System.out.print(" "); + } + else if (i % 3 == 0) { + System.out.print("Fizz"); + System.out.print(" "); + } else if (i % 5 == 0) { + System.out.print("Buzz"); + System.out.print(" "); + } else { + System.out.print(i); + System.out.print(" "); + } + } + + } + + public static void main(String[] args) { + Multiplii(100); + } +} diff --git a/_1_basics/src/main/java/code/_3_in_class/car/Main.java b/_1_basics/src/main/java/code/_3_in_class/car/Main.java new file mode 100644 index 000000000..729f5d356 --- /dev/null +++ b/_1_basics/src/main/java/code/_3_in_class/car/Main.java @@ -0,0 +1,10 @@ +package code._3_in_class.car; + +public class Main { + static class Car{ + Engine engine; + } + static interface Engine{ + void increasespeed(); + } +} diff --git a/_1_basics/src/main/java/code/_3_in_class/example_static/StaticExample.java b/_1_basics/src/main/java/code/_3_in_class/example_static/StaticExample.java new file mode 100644 index 000000000..94a30e0a3 --- /dev/null +++ b/_1_basics/src/main/java/code/_3_in_class/example_static/StaticExample.java @@ -0,0 +1,38 @@ +package code._3_in_class.example_static; + +public class StaticExample { + + static final int altaVariabila=0; //keyword final -> odata ce o variabila a fost initializata, nu mai poate fi asignata inca o data + static int iStatic=0; //iStatic=variabila de clasa ; keyword static -> ne lasa posibilitatea sa schimbam valoarea unei variabile + int iInstanta = 0; //iInstanta=variabila de instanta + + public static void main(String[] args) { + + StaticExample instance01 = new StaticExample(); + StaticExample instance02 = new StaticExample(); + StaticExample instance03 = new StaticExample(); + + final int jnumelung; //declaratie de variabila + jnumelung=0; //pt un singur assigment, variabila nu apare subliniata + + int inumelung; //declaratie de variabila + inumelung=0; //assignment lui numelung ii dau valoarea 0 + inumelung=1; //assignment lui numelung ii dau valoarea 1 + inumelung=2; //assignment lui numelung ii dau valoarea 2 + + + instance01.iStatic=1; + instance02.iInstanta=2; + instance03.iInstanta=3; + + System.out.println(" instance01.iStatic= "+instance01.iStatic+" instance01.Instanta= "+instance01.iInstanta); //iStatic=1 iInstanta=0 + System.out.println(" instance02.iStatic= "+instance02.iStatic+" instance02.Instanta= "+instance02.iInstanta); //iStatic=1 iInstanta=2 + System.out.println(" instance03.iStatic= "+instance03.iStatic+" instance03.Instanta= "+instance03.iInstanta); //iStatic=1 iInstanta=3 + } + static void m(){ + System.out.println("static method"); + } + void m2(){ + System.out.println("instance method"); + } +} diff --git a/_1_basics/src/main/java/pachetul/meu/preferat/DefaultPackageClass.java b/_1_basics/src/main/java/pachetul/meu/preferat/DefaultPackageClass.java new file mode 100644 index 000000000..2c9a3c7f5 --- /dev/null +++ b/_1_basics/src/main/java/pachetul/meu/preferat/DefaultPackageClass.java @@ -0,0 +1,7 @@ +package pachetul.meu.preferat; + +public class DefaultPackageClass { + public static void main(String[] args) { + System.out.println("hello"); + } +} diff --git a/_2_oo/src/main/java/code/_1_study/_1_initialization_order/InitializationOrder.java b/_2_oo/src/main/java/code/_1_study/_1_initialization_order/InitializationOrder.java index e00dd5bc5..2005d64e4 100644 --- a/_2_oo/src/main/java/code/_1_study/_1_initialization_order/InitializationOrder.java +++ b/_2_oo/src/main/java/code/_1_study/_1_initialization_order/InitializationOrder.java @@ -20,7 +20,7 @@ public Parent() { } } -class Child extends Parent { +class Child extends Parent { //clasa copil mosteneste de la clasa parinte static { System.out.println("child static init block "); } @@ -30,6 +30,7 @@ class Child extends Parent { } public Child() { + //constructorul initializeaza starea unui obiect System.out.println("child constructor"); } } diff --git a/_2_oo/src/main/java/code/_1_study/_3_class_types/encapsulation/EncapsulationExample.java b/_2_oo/src/main/java/code/_1_study/_3_class_types/encapsulation/EncapsulationExample.java new file mode 100644 index 000000000..f7f76239b --- /dev/null +++ b/_2_oo/src/main/java/code/_1_study/_3_class_types/encapsulation/EncapsulationExample.java @@ -0,0 +1,34 @@ +package code._1_study._3_class_types.encapsulation; + +public class EncapsulationExample { + public static void main(String[] args) { + Student s01 = new Student(100,18,"Popescu"); + Student s02 = new Student(100,19,"Ionescu"); + + } +} + +class Student { + int cash; + int varsta; + String nume; + + public Student(int cash, int varsta, String nume) { + this.cash = cash; + this.varsta = varsta; + this.nume = nume; + } + + void paysForLunch(int sum, String itemBought) { + if (this.cash >= sum) { + System.out.println("paysForLunch() = " + this.nume + " has bought " + itemBought + "in amount of" + sum); + this.cash = this.cash - sum; + } else { + System.out.println(this.nume + " cannot pay for " + itemBought + "of value" + sum); + } + } + + public int getCash(){ + return cash; + } +} \ No newline at end of file diff --git a/_2_oo/src/main/java/code/_3_in_class/Autobuz.java b/_2_oo/src/main/java/code/_3_in_class/Autobuz.java new file mode 100644 index 000000000..b384f6e9a --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/Autobuz.java @@ -0,0 +1,208 @@ +package code._3_in_class; + +public class Autobuz { + private String firma; + private String model; + private Integer numar; + private Integer an_fabricatie; + private Double greutate; + private String culoare; + private Double kilometraj; + private String nume_sofer01; + private String nume_sofer02; + private String nume_sofer03; + private String prenume_sofer01; + private String prenume_sofer02; + private String prenume_sofer03; + private Integer ani_vechime; + private Integer numarCalatori; + private String ora_start_tura; + private String ora_stop_tura; + private String numar_inmatriculare; + + public void m() {} + + public String getFirma() { + return firma; + } + + public String getModel() { + return model; + } + + public Integer getNumar() { + return numar; + } + + public Integer getAn_fabricatie() { + return an_fabricatie; + } + + public Double getGreutate() { + return greutate; + } + + public String getCuloare() { + return culoare; + } + + public Double getKilometraj() { + return kilometraj; + } + + public String getNume_sofer01() { + return nume_sofer01; + } + + public String getNume_sofer02() { + return nume_sofer02; + } + + public String getNume_sofer03() { + return nume_sofer03; + } + + public String getPrenume_sofer01() { + return prenume_sofer01; + } + + public String getPrenume_sofer02() { + return prenume_sofer02; + } + + public String getPrenume_sofer03() { + return prenume_sofer03; + } + + public Integer getAni_vechime() { + return ani_vechime; + } + + public Integer getNumarCalatori() { + return numarCalatori; + } + + public String getOra_start_tura() { + return ora_start_tura; + } + + public String getOra_stop_tura() { + return ora_stop_tura; + } + + public String getNumar_inmatriculare() { + return numar_inmatriculare; + } + + public Autobuz setFirma(String firma) { + this.firma = firma; + return this; + } + + public Autobuz setModel(String model) { + this.model = model; + return this; + } + + public Autobuz setNumar(Integer numar) { + this.numar = numar; + return this; + } + + public Autobuz setAn_fabricatie(Integer an_fabricatie) { + this.an_fabricatie = an_fabricatie; + return this; + } + + public Autobuz setGreutate(Double greutate) { + this.greutate = greutate; + return this; + } + + public Autobuz setCuloare(String culoare) { + this.culoare = culoare; + return this; + } + + public Autobuz setKilometraj(Double kilometraj) { + this.kilometraj = kilometraj; + return this; + } + + public Autobuz setNume_sofer01(String nume_sofer01) { + this.nume_sofer01 = nume_sofer01; + return this; + } + + public Autobuz setNume_sofer02(String nume_sofer02) { + this.nume_sofer02 = nume_sofer02; + return this; + } + + public Autobuz setNume_sofer03(String nume_sofer03) { + this.nume_sofer03 = nume_sofer03; + return this; + } + + public Autobuz setPrenume_sofer01(String prenume_sofer01) { + this.prenume_sofer01 = prenume_sofer01; + return this; + } + + public Autobuz setPrenume_sofer02(String prenume_sofer02) { + this.prenume_sofer02 = prenume_sofer02; + return this; + } + + public Autobuz setPrenume_sofer03(String prenume_sofer03) { + this.prenume_sofer03 = prenume_sofer03; + return this; + } + + public Autobuz setAni_vechime(Integer ani_vechime) { + this.ani_vechime = ani_vechime; + return this; + } + + public Autobuz setNumarCalatori(Integer numarCalatori) { + this.numarCalatori = numarCalatori; + return this; + } + + public Autobuz setOra_start_tura(String ora_start_tura) { + this.ora_start_tura = ora_start_tura; + return this; + } + + public Autobuz setOra_stop_tura(String ora_stop_tura) { + this.ora_stop_tura = ora_stop_tura; + return this; + } + + public Autobuz setNumar_inmatriculare(String numar_inmatriculare) { + this.numar_inmatriculare = numar_inmatriculare; + return this; + } + + public Autobuz(String firma, String model, Integer numar, Integer an_fabricatie, Double greutate, String culoare, Double kilometraj, String nume_sofer01, String nume_sofer02, String nume_sofer03, String prenume_sofer01, String prenume_sofer02, String prenume_sofer03, Integer ani_vechime, Integer numarCalatori, String ora_start_tura, String ora_stop_tura, String numar_inmatriculare) { + this.firma = firma; + this.model = model; + this.numar = numar; + this.an_fabricatie = an_fabricatie; + this.greutate = greutate; + this.culoare = culoare; + this.kilometraj = kilometraj; + this.nume_sofer01 = nume_sofer01; + this.nume_sofer02 = nume_sofer02; + this.nume_sofer03 = nume_sofer03; + this.prenume_sofer01 = prenume_sofer01; + this.prenume_sofer02 = prenume_sofer02; + this.prenume_sofer03 = prenume_sofer03; + this.ani_vechime = ani_vechime; + this.numarCalatori = numarCalatori; + this.ora_start_tura = ora_start_tura; + this.ora_stop_tura = ora_stop_tura; + this.numar_inmatriculare = numar_inmatriculare; + } +} + diff --git a/_2_oo/src/main/java/code/_3_in_class/Boxer.java b/_2_oo/src/main/java/code/_3_in_class/Boxer.java new file mode 100644 index 000000000..f8b1ff14b --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/Boxer.java @@ -0,0 +1,23 @@ +package code._3_in_class; + +public class Boxer implements IBoxer{ + String nume; + int health=100; + int damagePerAttack=10; + + public Boxer(String nume, int health, int damagePerAttack) { + this.nume = nume; + this.health = health; + this.damagePerAttack = damagePerAttack; + } + + public Boxer(String nume) { + this.nume = nume; + } + + public void attack(Boxer opponent){ + opponent.health = opponent.health - this.damagePerAttack; + System.out.println(this.nume + " il ataca pe " + opponent.nume + " - new health is = " + opponent.health); + } + public int defend() {} +} diff --git a/_2_oo/src/main/java/code/_3_in_class/BruceLee.java b/_2_oo/src/main/java/code/_3_in_class/BruceLee.java new file mode 100644 index 000000000..91c30e12a --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/BruceLee.java @@ -0,0 +1,15 @@ +package code._3_in_class; + +public class BruceLee extends Boxer{ + public BruceLee(String nume, int health, int damagePerAttack) { + super(nume, health, damagePerAttack); + } + + public BruceLee(String nume) { + super(nume); + } + public void attack(Boxer opponent){ + opponent.health = 0; + System.out.println(this.nume + " il ataca pe " + opponent.nume + " - new health is = " + opponent.health); + } +} diff --git a/_2_oo/src/main/java/code/_3_in_class/IBoxer.java b/_2_oo/src/main/java/code/_3_in_class/IBoxer.java new file mode 100644 index 000000000..d953438bc --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/IBoxer.java @@ -0,0 +1,7 @@ +package code._3_in_class; + +public interface IBoxer { + + public void attack(Boxer opponent); + public int defend(); +} diff --git a/_2_oo/src/main/java/code/_3_in_class/Main.java b/_2_oo/src/main/java/code/_3_in_class/Main.java index 3b87b4563..cdb109a33 100644 --- a/_2_oo/src/main/java/code/_3_in_class/Main.java +++ b/_2_oo/src/main/java/code/_3_in_class/Main.java @@ -1,8 +1,36 @@ package code._3_in_class; +import java.util.Random; + public class Main { public static void main(String[] args) { - //TODO put your code changes in here + + IBoxer ion = new Boxer("ion", 100, 10); + IBoxer vasile = new Boxer("vasile"); + IBoxer brucelee = new BruceLee("bruce lee"); + + startBoxingMatch(ion, brucelee); + announceVictory(ion, brucelee); + } + + private static void announceVictory(Boxer b01, Boxer b02) { + if(b01.health<=0){ + System.out.println(b02.nume + " a castigat meciul"); + }else{ + System.out.println(b01.nume + " a castigat meciul"); + } + } + + private static void startBoxingMatch(Boxer ion, Boxer vasile) { + Random random = new Random(); + while (ion.health > 0 && vasile.health > 0) { + int zeroOrOne = random.nextInt(2); + if (zeroOrOne == 0) { + ion.attack(vasile); + } else { + vasile.attack(ion); + } + } } } \ No newline at end of file diff --git a/_2_oo/src/main/java/code/_3_in_class/SuperBoxer.java b/_2_oo/src/main/java/code/_3_in_class/SuperBoxer.java new file mode 100644 index 000000000..5d5bfd422 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/SuperBoxer.java @@ -0,0 +1,26 @@ +package code._3_in_class; + +public class SuperBoxer implements IBoxer{ + String nume; + int health=100; + int damagePerAttack=10; + public SuperBoxer(String nume, int health, int damagePerAttack) { + this.nume = nume; + this.health = health; + this.damagePerAttack = damagePerAttack; + } + + public SuperBoxer(String nume) { + this.nume = nume; + } + + @Override + public void attack(Boxer opponent) { + + } + + @Override + public int defend() { + return 0; + } +} diff --git a/_2_oo/src/main/java/code/_3_in_class/abstractizare/AlgoritmAbstract.java b/_2_oo/src/main/java/code/_3_in_class/abstractizare/AlgoritmAbstract.java new file mode 100644 index 000000000..9d52ea344 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/abstractizare/AlgoritmAbstract.java @@ -0,0 +1,17 @@ +package code._3_in_class.abstractizare; + +public abstract class AlgoritmAbstract { + + void sort(int[] arr){ + for(int i=0;i<=arr.length-1;i++){ + for(int j = i+1;j<=arr.length;j++){ + if(sortDirection(arr,i,j)){ + int temp=arr[i]; + arr[i]=arr[j]; + arr[j]=temp; + } + } + } + } +abstract boolean sortDirection(int[] arr,int i, int j); +} diff --git a/_2_oo/src/main/java/code/_3_in_class/abstractizare/AlgoritmSortareAscendent.java b/_2_oo/src/main/java/code/_3_in_class/abstractizare/AlgoritmSortareAscendent.java new file mode 100644 index 000000000..af48e3980 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/abstractizare/AlgoritmSortareAscendent.java @@ -0,0 +1,8 @@ +package code._3_in_class.abstractizare; + +public class AlgoritmSortareAscendent extends AlgoritmAbstract { + + boolean sortDirection(int[] arr, int i, int j){ + return arr[i] > arr[j]; + } +} diff --git a/_2_oo/src/main/java/code/_3_in_class/abstractizare/AlgoritmSortareDescendent.java b/_2_oo/src/main/java/code/_3_in_class/abstractizare/AlgoritmSortareDescendent.java new file mode 100644 index 000000000..3238f2b87 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/abstractizare/AlgoritmSortareDescendent.java @@ -0,0 +1,7 @@ +package code._3_in_class.abstractizare; + +public class AlgoritmSortareDescendent extends AlgoritmAbstract { + boolean sortDirection(int[] arr, int i, int j){ + return arr[i] < arr[j]; + } +} diff --git a/_3_design_patterns/src/main/java/code/_3_in_class/factory/IStudent.java b/_3_design_patterns/src/main/java/code/_3_in_class/factory/IStudent.java new file mode 100644 index 000000000..930453c6c --- /dev/null +++ b/_3_design_patterns/src/main/java/code/_3_in_class/factory/IStudent.java @@ -0,0 +1,4 @@ +package code._3_in_class.factory; + +public class IStudent { +} diff --git a/_3_design_patterns/src/main/java/code/_3_in_class/factory/StudentGenX.java b/_3_design_patterns/src/main/java/code/_3_in_class/factory/StudentGenX.java new file mode 100644 index 000000000..718342b9d --- /dev/null +++ b/_3_design_patterns/src/main/java/code/_3_in_class/factory/StudentGenX.java @@ -0,0 +1,5 @@ +package code._3_in_class.factory; + +public class StudentGenX implements IStudent { + private String numeUniversitate; +} diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Autobuz.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Autobuz.java new file mode 100644 index 000000000..e09ba838c --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Autobuz.java @@ -0,0 +1,50 @@ +package clean.code.design_patterns.requirements; + +import java.time.LocalTime; + +public class Autobuz{ + private String firma; + private LocalTime ora_start_tura; + private String nume_sofer; + private String prenume_sofer; + private String numar_inmatriculare; + + public Autobuz(String firma, LocalTime ora_start_tura, String nume_sofer, String prenume_sofer, String numar_inmatriculare) { + this.firma = firma; + this.ora_start_tura = ora_start_tura; + this.nume_sofer = nume_sofer; + this.prenume_sofer = prenume_sofer; + this.numar_inmatriculare = numar_inmatriculare; + } + + public String getFirma() { + return firma; + } + + public LocalTime getOra_start_tura() { + return ora_start_tura; + } + + public String getNume_sofer() { + return nume_sofer; + } + + public String getPrenume_sofer() { + return prenume_sofer; + } + + public String getNumar_inmatriculare() { + return numar_inmatriculare; + } + + @Override + public String toString() { + return "Autobuz {" + "Numar de inmatriculare = '" + numar_inmatriculare + '\'' + + ", Companie = '" + firma + '\'' + + ", Ora plecare = " + ora_start_tura + + ", Numele soferului = '" + nume_sofer + '\'' + + ", Prenumele soferului = '" + prenume_sofer + '\'' + + '}'; + } +} + diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/AutobuzBuilder.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/AutobuzBuilder.java new file mode 100644 index 000000000..c0c9a1450 --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/AutobuzBuilder.java @@ -0,0 +1,42 @@ +package clean.code.design_patterns.requirements; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; + + +public class AutobuzBuilder { + private String firma; + private LocalTime oraStartTura; + private String numeSofer; + private String prenumeSofer; + private String numarInmatriculare; + + public AutobuzBuilder setFirma(String firma) { + this.firma = firma; + return this; + } + + public AutobuzBuilder setOra_start_tura(String oraStartTura) { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("H:mm"); + this.oraStartTura = LocalTime.parse(oraStartTura, formatter); + return this; + } + + public AutobuzBuilder setNume_sofer(String numeSofer) { + this.numeSofer = numeSofer; + return this; + } + + public AutobuzBuilder setPrenume_sofer(String prenumeSofer) { + this.prenumeSofer = prenumeSofer; + return this; + } + + public AutobuzBuilder setNumar_inmatriculare(String numarInmatriculare) { + this.numarInmatriculare = numarInmatriculare; + return this; + } + + public Autobuz createAutobuz() { + return new Autobuz(firma, oraStartTura, numeSofer, prenumeSofer, numarInmatriculare); + } +} \ No newline at end of file diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/BuilderDesignPattern.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/BuilderDesignPattern.java new file mode 100644 index 000000000..a6953817f --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/BuilderDesignPattern.java @@ -0,0 +1,15 @@ +package clean.code.design_patterns.requirements; + +public class BuilderDesignPattern { + + public static void main(String[] args) { + Autobuz autobuz = new AutobuzBuilder() + .setNumar_inmatriculare("B54STB") + .setFirma("STB") + .setOra_start_tura("8:30") + .setNume_sofer("Dumbrava") + .setPrenume_sofer("Sorin") + .createAutobuz(); + System.out.println(autobuz); + } +} diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/ISortOrder.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/ISortOrder.java new file mode 100644 index 000000000..e9b340ffb --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/ISortOrder.java @@ -0,0 +1,5 @@ +package clean.code.design_patterns.requirements; + +public interface ISortOrder { + boolean isAscending(Autobuz a01, Autobuz a02); +} diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Main.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Main.java index 8a9fccb7b..592bfc280 100644 --- a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Main.java +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Main.java @@ -3,6 +3,74 @@ public class Main { public static void main(String[] args) { - //TODO implement your design patterns in this package + + Autobuz autobuz01 = new AutobuzBuilder() + .setNumar_inmatriculare("B54STB") + .setFirma("STB") + .setOra_start_tura("8:30") + .setNume_sofer("Dumbrava") + .setPrenume_sofer("Sorin") + .createAutobuz(); + + Autobuz autobuz02 = new AutobuzBuilder() + .setNumar_inmatriculare("B122SOGP") + .setFirma("Omega Pro") + .setOra_start_tura("9:45") + .setNume_sofer("Sorescu") + .setPrenume_sofer("Ionel") + .createAutobuz(); + + Autobuz autobuz03 = new AutobuzBuilder() + .setNumar_inmatriculare("B324DDD") + .setFirma("DDD") + .setOra_start_tura("7:15") + .setNume_sofer("Bica") + .setPrenume_sofer("Marian") + .createAutobuz(); + + Autobuz autobuz04 = new AutobuzBuilder() + .setNumar_inmatriculare("B11LKD") + .setFirma("Lukadi") + .setOra_start_tura("10:10") + .setNume_sofer("Miron") + .setPrenume_sofer("Nicu") + .createAutobuz(); + + Autobuz autobuz05 = new AutobuzBuilder() + .setNumar_inmatriculare("B764MIR") + .setFirma("MIR TRANSPORT") + .setOra_start_tura("6:55") + .setNume_sofer("Costea") + .setPrenume_sofer("Marcel") + .createAutobuz(); + + Autobuz[] arr = new Autobuz[] { + autobuz01, + autobuz02, + autobuz03, + autobuz04, + autobuz05 + }; + + System.out.println(); + System.out.println("Sortarea autobuzelor dupa ora la care pleaca din statie:"); + System.out.println(); + + System.out.println("Sortarea in functie de primul autobuz care pleaca din statie: "); + System.out.println(); + TemplateMethodPattern.sort(arr, new SortAscendent()); + display(arr); + + System.out.println(); + System.out.println("Sortarea in functie de ultimul autobuz care pleaca din statie: "); + System.out.println(); + TemplateMethodPattern.sort(arr, new SortDescendent()); + display(arr); + + } + public static void display(Autobuz[] arr){ + for(Autobuz a:arr){ + System.out.println(a); + } } } diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/SortAscendent.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/SortAscendent.java new file mode 100644 index 000000000..1649aeac8 --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/SortAscendent.java @@ -0,0 +1,8 @@ +package clean.code.design_patterns.requirements; + +public class SortAscendent implements ISortOrder{ + @Override + public boolean isAscending(Autobuz a01, Autobuz a02) { + return a01.getOra_start_tura().compareTo(a02.getOra_start_tura())>0; + } +} diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/SortDescendent.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/SortDescendent.java new file mode 100644 index 000000000..4bab7499c --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/SortDescendent.java @@ -0,0 +1,8 @@ +package clean.code.design_patterns.requirements; + +public class SortDescendent implements ISortOrder{ + @Override + public boolean isAscending(Autobuz a01, Autobuz a02) { + return a01.getOra_start_tura().compareTo(a02.getOra_start_tura())<=0; + } +} diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/TemplateMethodPattern.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/TemplateMethodPattern.java new file mode 100644 index 000000000..364c9b395 --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/TemplateMethodPattern.java @@ -0,0 +1,17 @@ +package clean.code.design_patterns.requirements; + +public class TemplateMethodPattern { + + public static void sort(Autobuz[] arr, ISortOrder order) { + for(int i = 0; i< arr.length-1; i++){ + for(int j = 0; j