From dd525ebc9b1245a1f8354473bbff342061ac7a43 Mon Sep 17 00:00:00 2001 From: ValentinDolcescu7 Date: Sat, 15 Apr 2023 11:12:44 +0300 Subject: [PATCH 1/8] Primul cod Hello World --- _1_basics/src/main/java/code/_3_in_class/BunaZiua.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 _1_basics/src/main/java/code/_3_in_class/BunaZiua.java diff --git a/_1_basics/src/main/java/code/_3_in_class/BunaZiua.java b/_1_basics/src/main/java/code/_3_in_class/BunaZiua.java new file mode 100644 index 000000000..599d6d762 --- /dev/null +++ b/_1_basics/src/main/java/code/_3_in_class/BunaZiua.java @@ -0,0 +1,7 @@ +package code._3_in_class; + +public class BunaZiua { + public static void main(String[] args) { + System.out.println("Buna ziua"); + } +} From 1d352b27c541705a778c59c88f21e9b1052dc08d Mon Sep 17 00:00:00 2001 From: ValentinDolcescu7 Date: Sat, 22 Apr 2023 12:35:00 +0300 Subject: [PATCH 2/8] classBoxerwithInterface --- .../src/main/java/code/_3_in_class/Boxer.java | 39 +++++++++++++++++++ .../main/java/code/_3_in_class/BruceLee.java | 22 +++++++++++ .../main/java/code/_3_in_class/IBoxer.java | 9 +++++ .../src/main/java/code/_3_in_class/Main.java | 34 +++++++++++++++- .../java/code/_3_in_class/SuperBoxer.java | 30 ++++++++++++++ 5 files changed, 133 insertions(+), 1 deletion(-) 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 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..e488bf9c9 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/Boxer.java @@ -0,0 +1,39 @@ +package code._3_in_class; + +public class Boxer implements IBoxer { + /* + State: name, health, damagePerAttack + Behaviour: attack, defend + */ + + 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 heath is = " + opponent.health); + } + public void defend() { + + } + public String getNume() { + return this.nume; + } + + public boolean isAlive() { + return this.health>0; + } +} 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..7f54f7c9d --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/BruceLee.java @@ -0,0 +1,22 @@ +package code._3_in_class; + +public class BruceLee extends Boxer implements IBoxer{ + + 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 heath is = " + opponent.health); + } + public void defend() {} + public boolean isAlive() { + return this.health>0; + } +} 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..9bde2e15e --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/IBoxer.java @@ -0,0 +1,9 @@ +package code._3_in_class; + +public interface IBoxer { + + public void attack(Boxer opponent); + public void defend(); + public boolean isAlive(); + public String getNume(); +} 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..8649173f8 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,40 @@ 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 + + Boxer ion=new Boxer("Ion",100, 10); + Boxer vasile= new Boxer("Vasile"); + Boxer bruceLee=new BruceLee("bruce lee"); + //start meci + startBoxingMatch(ion, bruceLee); + //anuntam castigatorul + announceVictory(ion, bruceLee); + + } + + private static void announceVictory(IBoxer b01, IBoxer b02) { + if(b01.isAlive()) + { + System.out.println(b01.getNume() + " a castigat meciul"); + + }else{ + System.out.println(b02.getNume() + " a castigat meciu"); + } + } + + private static void startBoxingMatch(IBoxer ion, IBoxer vasile) { + Random random=new Random(); + while(ion.isAlive() && vasile.isAlive()) { + int zeroOrOne = random.nextInt(4); + if (zeroOrOne == 1 || zeroOrOne==0) { + ion.attack((Boxer) vasile); + } else { + vasile.attack((Boxer) 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..fcfaeb35d --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/SuperBoxer.java @@ -0,0 +1,30 @@ +package code._3_in_class; + +public class SuperBoxer implements IBoxer { + + String nume; + int health; + int damagePerAttack; + + public SuperBoxer(String nume) + { + this.nume=nume; + } + + public String getNume() { + return this.nume; + } + + @Override + public void attack(Boxer opponent) { + + } + + @Override + public void defend() { + + } + public boolean isAlive() { + return this.health>0; + } +} From 1bd9b5160f3d1b967fecafaed6bc438ec07a585e Mon Sep 17 00:00:00 2001 From: ValentinDolcescu7 Date: Sat, 22 Apr 2023 14:32:47 +0300 Subject: [PATCH 3/8] Curs 2 --- .../java/code/_3_in_class/AriciVelcro.java | 7 +++ .../src/main/java/code/_3_in_class/Boxer.java | 12 ++++ .../src/main/java/code/_3_in_class/Glove.java | 17 ++++++ .../src/main/java/code/_3_in_class/Siret.java | 5 ++ .../main/java/code/_3_in_class/car/Car.java | 4 ++ .../java/code/_3_in_class/car/GenericCar.java | 4 ++ .../main/java/code/_3_in_class/car/Human.java | 8 +++ .../main/java/code/_3_in_class/car/Main.java | 46 ++++++++++++++ .../challenge/CorelatieNumarString.java | 10 +++ .../code/_3_in_class/challenge/FizzBuzz.java | 61 +++++++++++++++++++ .../specializare/AlgoritmSortare.java | 21 +++++++ .../AlgoritmSortareDescendent.java | 8 +++ .../code/_3_in_class/specializare/Main.java | 7 +++ 13 files changed, 210 insertions(+) create mode 100644 _2_oo/src/main/java/code/_3_in_class/AriciVelcro.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/Glove.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/Siret.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/car/Car.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/car/GenericCar.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/car/Human.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/car/Main.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/challenge/CorelatieNumarString.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/challenge/FizzBuzz.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/specializare/AlgoritmSortare.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/specializare/AlgoritmSortareDescendent.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/specializare/Main.java diff --git a/_2_oo/src/main/java/code/_3_in_class/AriciVelcro.java b/_2_oo/src/main/java/code/_3_in_class/AriciVelcro.java new file mode 100644 index 000000000..b0b524a54 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/AriciVelcro.java @@ -0,0 +1,7 @@ +package code._3_in_class; + +public class AriciVelcro { + + int size; + String color; +} 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 index e488bf9c9..de0d7f293 100644 --- a/_2_oo/src/main/java/code/_3_in_class/Boxer.java +++ b/_2_oo/src/main/java/code/_3_in_class/Boxer.java @@ -9,6 +9,8 @@ public class Boxer implements IBoxer { String nume; int health=100; int damagePerAttack=10; + Glove left;//compozitie + Glove right;//compozitie public Boxer(String nume, int health, int damagePerAttack) { @@ -21,6 +23,16 @@ public Boxer(String nume) this.nume=nume; } + void puneManusile()//delegare + { + left.tie(); + right.tie(); + } + void daJosManusile(){//delegare + left.untie(); + right.untie(); + } + public void attack(Boxer opponent) { opponent.health= opponent.health-this.damagePerAttack; diff --git a/_2_oo/src/main/java/code/_3_in_class/Glove.java b/_2_oo/src/main/java/code/_3_in_class/Glove.java new file mode 100644 index 000000000..72b6af29c --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/Glove.java @@ -0,0 +1,17 @@ +package code._3_in_class; + +public class Glove { + + int size; + String color; + AriciVelcro ariciVelcro; + + public Glove(int size, String color) + { + this.size=size; + this.color=color; + + } + public void tie() {} + public void untie() {} +} diff --git a/_2_oo/src/main/java/code/_3_in_class/Siret.java b/_2_oo/src/main/java/code/_3_in_class/Siret.java new file mode 100644 index 000000000..78b807e9b --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/Siret.java @@ -0,0 +1,5 @@ +package code._3_in_class; + +public class Siret { + +} diff --git a/_2_oo/src/main/java/code/_3_in_class/car/Car.java b/_2_oo/src/main/java/code/_3_in_class/car/Car.java new file mode 100644 index 000000000..e5a4ff8f9 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/car/Car.java @@ -0,0 +1,4 @@ +package code._3_in_class.car; + +public interface Car { +} diff --git a/_2_oo/src/main/java/code/_3_in_class/car/GenericCar.java b/_2_oo/src/main/java/code/_3_in_class/car/GenericCar.java new file mode 100644 index 000000000..bea11d92f --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/car/GenericCar.java @@ -0,0 +1,4 @@ +package code._3_in_class.car; + +public class GenericCar { +} diff --git a/_2_oo/src/main/java/code/_3_in_class/car/Human.java b/_2_oo/src/main/java/code/_3_in_class/car/Human.java new file mode 100644 index 000000000..796fac905 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/car/Human.java @@ -0,0 +1,8 @@ +package code._3_in_class.car; + +public class Human { + //public Human(Main.Engine engine) + { + //super(engine); + } +} diff --git a/_2_oo/src/main/java/code/_3_in_class/car/Main.java b/_2_oo/src/main/java/code/_3_in_class/car/Main.java new file mode 100644 index 000000000..bcd7f862b --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/car/Main.java @@ -0,0 +1,46 @@ +package code._3_in_class.car; + +public class Main { + static class Human{ + Car car; + public Human(Car car){ + this.car=car; + } + void increaseSpeed(){ + car.increaseSpeed(); + } + + } + static interface Car{ + void increaseSpeed(); + } + //static class ElectricEngine implements Engine{ + //Engine engine =new ElectricEngine(); + + //public Engine { +/* + } + }*/ + + /*static class GasEngine implements Engine{ + public void increaseSpeed() + { + System.out.println("increase speed implementation from GasEngine"); + } + }*/ + + /*static class TurboGasEngine implements Engine{ + public void increaseSpeed() + { + System.out.println("increase speed implementation from GasEngine"); + } + }*/ + + + public static void main(String[] args) { + + //Human human01= new Human(new GenericCar(new ElectricEngine())); + //Human human01= new Human(new GenericCar(new GasEngine())); + //Human human01= new Human(new GenericCar(new TurboGasEngine())); + } +} diff --git a/_2_oo/src/main/java/code/_3_in_class/challenge/CorelatieNumarString.java b/_2_oo/src/main/java/code/_3_in_class/challenge/CorelatieNumarString.java new file mode 100644 index 000000000..b4049622a --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/challenge/CorelatieNumarString.java @@ -0,0 +1,10 @@ +package code._3_in_class.challenge; + +public class CorelatieNumarString { + int numar; + String word; + public CorelatieNumarString(int numar, String word){ + this.numar=numar; + this.word=word; + } +} diff --git a/_2_oo/src/main/java/code/_3_in_class/challenge/FizzBuzz.java b/_2_oo/src/main/java/code/_3_in_class/challenge/FizzBuzz.java new file mode 100644 index 000000000..a0cf712b3 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/challenge/FizzBuzz.java @@ -0,0 +1,61 @@ +package code._3_in_class.challenge; + +public class FizzBuzz { + public static void main(String[] args) { + + int numar=0; + //FizzBuzzcuIf(); + FizzBuzzCuObiecte(); + } + + private static void FizzBuzzCuObiecte() { + CorelatieNumarString[] corelatii ={ + new CorelatieNumarString(3,"Fizz"), + new CorelatieNumarString(5,"Buzz"), + new CorelatieNumarString(7,"Rizz"), + new CorelatieNumarString(11,"Tizz") + }; + for(int i=1;i<=100;i++) + { + boolean Numarulestedivizibil=false; + String textptnumaruldivizibil=""; + for(CorelatieNumarString corelatie:corelatii) + { + if(i % corelatie.numar==0) + { + textptnumaruldivizibil+=corelatie.word; + Numarulestedivizibil=true; + + } + } + if(Numarulestedivizibil) + { + System.out.println(textptnumaruldivizibil); + + } + else{ + System.out.println(i); + } + } + } + + private static void FizzBuzzcuIf() { + for(int i=1;i<=100;i++) + { + if(i%3==0&&i%5==0) + { + System.out.print("FizzBuzz"+" "); + } + else if(i%3==0) { + System.out.print("Fizz" + " "); + } + else if(i%5==0){ + System.out.print("Buzz"+" "); + } + else + { + System.out.print(i + " "); + } + } + } +} diff --git a/_2_oo/src/main/java/code/_3_in_class/specializare/AlgoritmSortare.java b/_2_oo/src/main/java/code/_3_in_class/specializare/AlgoritmSortare.java new file mode 100644 index 000000000..fc53e64c1 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/specializare/AlgoritmSortare.java @@ -0,0 +1,21 @@ +package code._3_in_class.specializare; + +public class AlgoritmSortare { + + void sort(int[] arr) + { + for(int i=0;iarr[j]; + } +} diff --git a/_2_oo/src/main/java/code/_3_in_class/specializare/AlgoritmSortareDescendent.java b/_2_oo/src/main/java/code/_3_in_class/specializare/AlgoritmSortareDescendent.java new file mode 100644 index 000000000..f6dd710c4 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/specializare/AlgoritmSortareDescendent.java @@ -0,0 +1,8 @@ +package code._3_in_class.specializare; + +public class AlgoritmSortareDescendent extends AlgoritmSortare{ + @Override + boolean sortDirection(int[] arr, int i, int j) { + return arr[i] Date: Sat, 29 Apr 2023 14:28:09 +0300 Subject: [PATCH 4/8] Curs 3 --- .../encapsulation/EncapsulationExemple.java | 104 +++++++++++++ .../PolimorfismDynamicSauLaRulare.java | 22 +++ .../PolimorfismStaticSauLaCompilare.java | 35 +++++ .../specializare/AlgoritmAbstract.java | 19 +++ .../specializare/AlgoritmSortare.java | 2 +- .../AlgoritmSortareDescendent.java | 2 + .../code/_3_in_class/specializare/Main.java | 23 +++ .../java/code/_3_in_class/StaticExemple.java | 30 ++++ .../java/code/_3_in_class/builder/Main.java | 14 ++ .../code/_3_in_class/builder/Student.java | 58 +++++++ .../_3_in_class/builder/StudentBuilder.java | 141 ++++++++++++++++++ .../code/_3_in_class/singleton/Singleton.java | 32 ++++ 12 files changed, 481 insertions(+), 1 deletion(-) create mode 100644 _2_oo/src/main/java/code/_3_in_class/encapsulation/EncapsulationExemple.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/polimorfism/PolimorfismDynamicSauLaRulare.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/polimorfism/PolimorfismStaticSauLaCompilare.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/specializare/AlgoritmAbstract.java create mode 100644 _3_design_patterns/src/main/java/code/_3_in_class/StaticExemple.java create mode 100644 _3_design_patterns/src/main/java/code/_3_in_class/builder/Main.java create mode 100644 _3_design_patterns/src/main/java/code/_3_in_class/builder/Student.java create mode 100644 _3_design_patterns/src/main/java/code/_3_in_class/builder/StudentBuilder.java create mode 100644 _3_design_patterns/src/main/java/code/_3_in_class/singleton/Singleton.java diff --git a/_2_oo/src/main/java/code/_3_in_class/encapsulation/EncapsulationExemple.java b/_2_oo/src/main/java/code/_3_in_class/encapsulation/EncapsulationExemple.java new file mode 100644 index 000000000..55c5a292e --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/encapsulation/EncapsulationExemple.java @@ -0,0 +1,104 @@ +package code._3_in_class.encapsulation; + +public class EncapsulationExemple { + public static void main(String[] args) { + + + Student s01= new Student(new Portofel(100), 18, "Popescu"); + Student s02 = new Student(new Portofel(100), 19, "Ionescu"); + System.out.println(s01.toString()); + System.out.println(s02.toString()); + String itemBought = "pizza"; + int sum =101; + } +} + +class Student{// regula de implementat: studentul nu trebuie sa ajunga niciodata sa aiba datorii => cash trebuie sa fie >=0 + //1 metode (behavior) + //2 atribute (state) + + private Portofel portofel; + private int varsta; + + private String nume; + + + + public int getVarsta() { + return varsta; + } + + public String getNume() { + return nume; + } + + + + public void setVarsta(int varsta) { + this.varsta = varsta; + } + + public void setNume(String nume) { + this.nume = nume; + } + + public Student(Portofel portofel, int varsta, String nume){ + + this.portofel=portofel; + this.varsta=varsta; + this.nume=nume; + } + + void paysForLunch(int sum, String itemBought){//behavior + + if(this.portofel.getCash() >= sum) { + System.out.println(this.nume + "has bought" + itemBought + " in amount of " + sum); + //this.portofel.getPortofel() = this.portofel.getCash() - sum; + } + else{ + System.out.println(this.nume + "cannot pay for " + itemBought + " of value " + sum); + } + } + + public String toString(){ + + + return "Student{" + "cash=" + portofel.getCash() + ", varsta="+ varsta +", nume ="+ nume +"}"; + } + + + public int getPortofel() { + + return portofel.getCash(); + } +} +class Portofel{ + private int cash; + public Portofel(int cash) + { + this.cash=cash; + } + + public int getCash() { + return cash; + } + + public void setCash() { + if(cash>=0) { + this.cash = cash; + } + else { + System.out.println("nue putem seta valori negative"); + } + } + @Override + public String toString() { + return "Student{" + + "portofel=" + cash + + '}'; + } + + public int getPortofel() { + return cash; + } +} diff --git a/_2_oo/src/main/java/code/_3_in_class/polimorfism/PolimorfismDynamicSauLaRulare.java b/_2_oo/src/main/java/code/_3_in_class/polimorfism/PolimorfismDynamicSauLaRulare.java new file mode 100644 index 000000000..ad0eb69be --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/polimorfism/PolimorfismDynamicSauLaRulare.java @@ -0,0 +1,22 @@ +package code._3_in_class.polimorfism; + +public class PolimorfismDynamicSauLaRulare { + + public static void main(String[] args) { + + Copil c = new Copil(); + c.m(1); + } +} + +class Parinte{ + void m(int i){ + System.out.println("metoda m cu implementarea 01"); + } +} + +class Copil extends Parinte{ + void m(int i){ + System.out.println("metoda m cu implementarea 02"); + } +} diff --git a/_2_oo/src/main/java/code/_3_in_class/polimorfism/PolimorfismStaticSauLaCompilare.java b/_2_oo/src/main/java/code/_3_in_class/polimorfism/PolimorfismStaticSauLaCompilare.java new file mode 100644 index 000000000..c384b9e63 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/polimorfism/PolimorfismStaticSauLaCompilare.java @@ -0,0 +1,35 @@ +package code._3_in_class.polimorfism; + +public class PolimorfismStaticSauLaCompilare { + + public static void main(String[] args) { + + //modul de scriere cod iperativ in care scrieti instructiuni una sub alta si ele se vor executa in ordine + + int sum =getSum(1,2); + System.out.println(sum); + + int sum2=getSum(3,4); + System.out.println(sum2); + + PolimorfismStaticSauLaCompilare instance=new PolimorfismStaticSauLaCompilare(); + instance.m(1,2); + + + } + private static int getSum(int valA, int valB){ + int a=valA; + int b=valB; + int sum=a+b; + return sum; + } + void m(int i){ + System.out.println("metoda m cu implementarea 01"); + } + void m(float i){ + System.out.println("metoda m cu implementarea 02"); + } + void m(int i, int j){ + System.out.println("metoda m cu implementarea 03"); + } +} diff --git a/_2_oo/src/main/java/code/_3_in_class/specializare/AlgoritmAbstract.java b/_2_oo/src/main/java/code/_3_in_class/specializare/AlgoritmAbstract.java new file mode 100644 index 000000000..59300c344 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/specializare/AlgoritmAbstract.java @@ -0,0 +1,19 @@ +package code._3_in_class.specializare; + +public abstract class AlgoritmAbstract { + void sort(int[] arr) + { + for(int i=0;i inseamna ca o data ce o variabila, a fost initializata, nu mai poate fi asignata inca o data + static int iStatic=0; + int iInstanta=0; + + public static void main(String[] args){ + + + + StaticExemple instance01=new StaticExemple(); + StaticExemple instance02=new StaticExemple(); + StaticExemple instance03=new StaticExemple(); + instance01.iStatic=1; + instance02.iInstanta=2; + instance03.iInstanta=3; + + System.out.println("instance01.iStatic " + instance01.iStatic + " instance01.iInstanta " + instance01.iInstanta); + System.out.println("instance02.iStatic " + instance02.iStatic + " instance02.iInstanta " + instance02.iInstanta); + System.out.println("instance03.iStatic " + instance03.iStatic + " instance03.iInstanta " + instance03.iInstanta); + } + static void m(){ + System.out.println("metoda statica"); + } + void m2(){ + System.out.println("metoda instanta"); + } +} diff --git a/_3_design_patterns/src/main/java/code/_3_in_class/builder/Main.java b/_3_design_patterns/src/main/java/code/_3_in_class/builder/Main.java new file mode 100644 index 000000000..00e3b5021 --- /dev/null +++ b/_3_design_patterns/src/main/java/code/_3_in_class/builder/Main.java @@ -0,0 +1,14 @@ +package code._3_in_class.builder; + +public class Main { + public static void main(String[] args) { + + Student student05 = new StudentBuilder("Popescu","Facultate") + .setGreutate(80.6) + .setAdresa("undeva") + .setNumeSora01("Maria") + .setCuloarePreferata("albastru") + .build(); + + } +} diff --git a/_3_design_patterns/src/main/java/code/_3_in_class/builder/Student.java b/_3_design_patterns/src/main/java/code/_3_in_class/builder/Student.java new file mode 100644 index 000000000..e08a8c0ae --- /dev/null +++ b/_3_design_patterns/src/main/java/code/_3_in_class/builder/Student.java @@ -0,0 +1,58 @@ +package code._3_in_class.builder; + +public class Student { + + private String nume; + private String prenume; + private int varsta; + private String facultate; + private double medieAnuala; + private String restaurantPreferat; + private String culoarePreferata; + private double inaltime; + private double greutate; + private int marimePantof; + private String nrTelefon; + private String adresa; + private String adresaFacultate; + private String numeTata; + private String prenumeTata; + private String numeMama; + private String prenumeMama; + private String numeSora01; + private String prenumeSora01; + private String numeSora02; + private String prenumeSora02; + + public Student(String nume, String facultate) { + + this.nume=nume; + this.nume=facultate; + } + public Student(String nume, String prenume, int varsta, String facultate, double medieAnuala, String restaurantPreferat, String culoarePreferata, double inaltime, double greutate, int marimePantof, String nrTelefon, String adresa, String adresaFacultate, String numeTata, String prenumeTata, String numeMama, String prenumeMama, String numeSora01, String prenumeSora01, String numeSora02, String prenumeSora02) { + this.nume = nume; + this.prenume = prenume; + this.varsta = varsta; + this.facultate = facultate; + this.medieAnuala = medieAnuala; + this.restaurantPreferat = restaurantPreferat; + this.culoarePreferata = culoarePreferata; + this.inaltime = inaltime; + this.greutate = greutate; + this.marimePantof = marimePantof; + this.nrTelefon = nrTelefon; + this.adresa = adresa; + this.adresaFacultate = adresaFacultate; + this.numeTata = numeTata; + this.prenumeTata = prenumeTata; + this.numeMama = numeMama; + this.prenumeMama = prenumeMama; + this.numeSora01 = numeSora01; + this.prenumeSora01 = prenumeSora01; + this.numeSora02 = numeSora02; + this.prenumeSora02 = prenumeSora02; + } + + + +} diff --git a/_3_design_patterns/src/main/java/code/_3_in_class/builder/StudentBuilder.java b/_3_design_patterns/src/main/java/code/_3_in_class/builder/StudentBuilder.java new file mode 100644 index 000000000..4c19f9bf4 --- /dev/null +++ b/_3_design_patterns/src/main/java/code/_3_in_class/builder/StudentBuilder.java @@ -0,0 +1,141 @@ +package code._3_in_class.builder; + +public class StudentBuilder { + + public StudentBuilder setNume(String nume) { + this.nume = nume; + return this; + } + + public StudentBuilder setPrenume(String prenume) { + this.prenume = prenume; + return this; + } + + public StudentBuilder setVarsta(int varsta) { + this.varsta = varsta; + return this; + } + + public StudentBuilder setFacultate(String facultate) { + this.facultate = facultate; + return this; + } + + public StudentBuilder setMedieAnuala(double medieAnuala) { + this.medieAnuala = medieAnuala; + return this; + } + + public StudentBuilder setRestaurantPreferat(String restaurantPreferat) { + this.restaurantPreferat = restaurantPreferat; + return this; + } + + public StudentBuilder setCuloarePreferata(String culoarePreferata) { + this.culoarePreferata = culoarePreferata; + return this; + } + + public StudentBuilder setInaltime(double inaltime) { + this.inaltime = inaltime; + return this; + } + + public StudentBuilder setGreutate(double greutate) { + this.greutate = greutate; + return this; + } + + public StudentBuilder setMarimePantof(int marimePantof) { + this.marimePantof = marimePantof; + return this; + } + + public StudentBuilder setNrTelefon(String nrTelefon) { + this.nrTelefon = nrTelefon; + return this; + } + + public StudentBuilder setAdresa(String adresa) { + this.adresa = adresa; + return this; + } + + public StudentBuilder setAdresaFacultate(String adresaFacultate) { + this.adresaFacultate = adresaFacultate; + return this; + } + + public StudentBuilder setNumeTata(String numeTata) { + this.numeTata = numeTata; + return this; + } + + public StudentBuilder setPrenumeTata(String prenumeTata) { + this.prenumeTata = prenumeTata; + return this; + } + + public StudentBuilder setNumeMama(String numeMama) { + this.numeMama = numeMama; + return this; + } + + public StudentBuilder setPrenumeMama(String prenumeMama) { + this.prenumeMama = prenumeMama; + return this; + } + + public StudentBuilder setNumeSora01(String numeSora01) { + this.numeSora01 = numeSora01; + return this; + } + + public StudentBuilder setPrenumeSora01(String prenumeSora01) { + this.prenumeSora01 = prenumeSora01; + return this; + } + + public StudentBuilder setNumeSora02(String numeSora02) { + this.numeSora02 = numeSora02; + return this; + } + + public StudentBuilder setPrenumeSora02(String prenumeSora02) { + this.prenumeSora02 = prenumeSora02; + return this; + } + + private String nume; + private String prenume; + private int varsta; + private String facultate; + private double medieAnuala; + private String restaurantPreferat; + private String culoarePreferata; + private double inaltime; + private double greutate; + private int marimePantof; + private String nrTelefon; + private String adresa; + private String adresaFacultate; + private String numeTata; + private String prenumeTata; + private String numeMama; + private String prenumeMama; + private String numeSora01; + private String prenumeSora01; + private String numeSora02; + private String prenumeSora02; + + public StudentBuilder(String nume, String facultate) + { + this.nume=nume; + this.facultate=facultate; + } + + public Student build() { + return new Student(nume, facultate); + } +} diff --git a/_3_design_patterns/src/main/java/code/_3_in_class/singleton/Singleton.java b/_3_design_patterns/src/main/java/code/_3_in_class/singleton/Singleton.java new file mode 100644 index 000000000..7dd25a7bf --- /dev/null +++ b/_3_design_patterns/src/main/java/code/_3_in_class/singleton/Singleton.java @@ -0,0 +1,32 @@ +package code._3_in_class.singleton; + + +//sigleton +//ce problema rezolva? cand vrem sa cream 1 singura instanta a unui obiect +//implementare: +//1. definim o variabila statica si privata unde vom stoca instanta cu o valoare initiala null +//2. definim constructor privat pentru a putea fi accesat doar din interiorul clasei +//3. definim o metoda publica getInstance() face return de variabila statica si privata + +public class Singleton { + private static Singleton instance = new Singleton(); + private Singleton(){ + + } + public static Singleton getInstance() { + return instance; + } +} + +class Main { + public static void main(String[] args) { + + Singleton instance01 = Singleton.getInstance(); + Singleton instance02 = Singleton.getInstance(); + Singleton instance03 = Singleton.getInstance(); + + System.out.println(instance01.hashCode()); + System.out.println(instance02.hashCode()); + System.out.println(instance03.hashCode()); + } +} From 99f7b1bd93cf9307348f5630c3881ced86885a41 Mon Sep 17 00:00:00 2001 From: ValentinDolcescu7 Date: Fri, 5 May 2023 16:06:01 +0300 Subject: [PATCH 5/8] Code challenge 3 --- .../java/code/_4_student_effort/Animal.java | 18 +++++++++ .../main/java/code/_4_student_effort/Cat.java | 37 +++++++++++++++++++ .../java/code/_4_student_effort/Fish.java | 16 ++++++++ .../java/code/_4_student_effort/Main.java | 29 ++++++++++++++- .../main/java/code/_4_student_effort/Pet.java | 8 ++++ .../java/code/_4_student_effort/Spider.java | 15 ++++++++ 6 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 _2_oo/src/main/java/code/_4_student_effort/Animal.java create mode 100644 _2_oo/src/main/java/code/_4_student_effort/Cat.java create mode 100644 _2_oo/src/main/java/code/_4_student_effort/Fish.java create mode 100644 _2_oo/src/main/java/code/_4_student_effort/Pet.java create mode 100644 _2_oo/src/main/java/code/_4_student_effort/Spider.java diff --git a/_2_oo/src/main/java/code/_4_student_effort/Animal.java b/_2_oo/src/main/java/code/_4_student_effort/Animal.java new file mode 100644 index 000000000..88c24c2dc --- /dev/null +++ b/_2_oo/src/main/java/code/_4_student_effort/Animal.java @@ -0,0 +1,18 @@ +package code._4_student_effort; + +public abstract class Animal { + + protected int legs; + + protected Animal(int legs){ + + this.legs=legs; + } + public abstract void eat(); + public void walk() + { + System.out.println("This animal walks on "+ legs + "legs."); + } + + +} diff --git a/_2_oo/src/main/java/code/_4_student_effort/Cat.java b/_2_oo/src/main/java/code/_4_student_effort/Cat.java new file mode 100644 index 000000000..dcd498844 --- /dev/null +++ b/_2_oo/src/main/java/code/_4_student_effort/Cat.java @@ -0,0 +1,37 @@ +package code._4_student_effort; + +public class Cat extends Animal implements Pet{ + + private String name; + + public Cat(String name) { + super(4); + this.name=name; + } + + public Cat(){ + this(""); + } + + @Override + public void eat() { + + System.out.println("The cat eats cat food"); + } + + @Override + public void play() { + + System.out.println("The cat plays with a toy mouse"); + + } + @Override + public void setName(String name) { + this.name=name; + } + + @Override + public String getName() { + return this.name; + } +} diff --git a/_2_oo/src/main/java/code/_4_student_effort/Fish.java b/_2_oo/src/main/java/code/_4_student_effort/Fish.java new file mode 100644 index 000000000..c4dc06c35 --- /dev/null +++ b/_2_oo/src/main/java/code/_4_student_effort/Fish.java @@ -0,0 +1,16 @@ +package code._4_student_effort; + +public class Fish extends Animal{ + + protected Fish() { + super(0); + } + + @Override + public void eat() { + System.out.println("The fish eats fish food"); + } + public void walk(){ + System.out.println("The fish can't walk"); + } +} diff --git a/_2_oo/src/main/java/code/_4_student_effort/Main.java b/_2_oo/src/main/java/code/_4_student_effort/Main.java index 95bb1182c..f30db2da0 100644 --- a/_2_oo/src/main/java/code/_4_student_effort/Main.java +++ b/_2_oo/src/main/java/code/_4_student_effort/Main.java @@ -3,6 +3,33 @@ public class Main { public static void main(String[] args) { - //TODO put your code changes in here + + Fish d = new Fish(); + Cat c = new Cat("Fluffy"); + Animal a = new Fish(); + Animal e = new Spider(); + Pet p = new Cat(); + + System.out.print("Fish: "); + d.eat(); + d.walk(); + c.setName("Tom"); + System.out.println(c.getName()); + c.eat(); + c.play(); + + System.out.println("Fish: "); + a.eat(); + a.walk(); + + System.out.println("Spider: "); + e.eat(); + e.walk(); + + + + + + } } diff --git a/_2_oo/src/main/java/code/_4_student_effort/Pet.java b/_2_oo/src/main/java/code/_4_student_effort/Pet.java new file mode 100644 index 000000000..c8ef2bbc6 --- /dev/null +++ b/_2_oo/src/main/java/code/_4_student_effort/Pet.java @@ -0,0 +1,8 @@ +package code._4_student_effort; + +public interface Pet { + + void play(); + void setName(String name); + String getName(); +} diff --git a/_2_oo/src/main/java/code/_4_student_effort/Spider.java b/_2_oo/src/main/java/code/_4_student_effort/Spider.java new file mode 100644 index 000000000..1e1bf23a5 --- /dev/null +++ b/_2_oo/src/main/java/code/_4_student_effort/Spider.java @@ -0,0 +1,15 @@ +package code._4_student_effort; + +public class Spider extends Animal{ + + public Spider(){ + super(8); + } + + @Override + public void eat() { + + System.out.println("The spider eats insects"); + } +} + From 0fa37408444036d7cf28f94676288096d8651ffa Mon Sep 17 00:00:00 2001 From: ValentinDolcescu7 Date: Sat, 6 May 2023 14:25:55 +0300 Subject: [PATCH 6/8] Curs 4 --- .../code/_3_in_class/factory/IStudent.java | 8 +++ .../java/code/_3_in_class/factory/Main.java | 34 ++++++++++ .../_3_in_class/factory/StudentFactory.java | 17 +++++ .../code/_3_in_class/factory/StudentGenX.java | 20 ++++++ .../code/_3_in_class/factory/StudentGenZ.java | 20 ++++++ .../_3_in_class/factory/StudentMilenial.java | 20 ++++++ .../java/code/_3_in_class/iterator/Main.java | 65 +++++++++++++++++++ .../code/_3_in_class/exceptions/IStudent.java | 8 +++ .../code/_3_in_class/exceptions/Main.java | 30 +++++++++ .../exceptions/StudentBabyBoomer.java | 20 ++++++ .../exceptions/StudentFactory.java | 21 ++++++ .../_3_in_class/exceptions/StudentGenX.java | 21 ++++++ .../_3_in_class/exceptions/StudentGenZ.java | 20 ++++++ .../exceptions/StudentMilenial.java | 20 ++++++ 14 files changed, 324 insertions(+) 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/Main.java create mode 100644 _3_design_patterns/src/main/java/code/_3_in_class/factory/StudentFactory.java create mode 100644 _3_design_patterns/src/main/java/code/_3_in_class/factory/StudentGenX.java create mode 100644 _3_design_patterns/src/main/java/code/_3_in_class/factory/StudentGenZ.java create mode 100644 _3_design_patterns/src/main/java/code/_3_in_class/factory/StudentMilenial.java create mode 100644 _3_design_patterns/src/main/java/code/_3_in_class/iterator/Main.java create mode 100644 _4_exceptions_io/src/main/java/code/_3_in_class/exceptions/IStudent.java create mode 100644 _4_exceptions_io/src/main/java/code/_3_in_class/exceptions/Main.java create mode 100644 _4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentBabyBoomer.java create mode 100644 _4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentFactory.java create mode 100644 _4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentGenX.java create mode 100644 _4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentGenZ.java create mode 100644 _4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentMilenial.java 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..8cec374ad --- /dev/null +++ b/_3_design_patterns/src/main/java/code/_3_in_class/factory/IStudent.java @@ -0,0 +1,8 @@ +package code._3_in_class.factory; + +public interface IStudent { + + + public String getNumeUniversitateaUndeStudiaza(); + String hello(); +} diff --git a/_3_design_patterns/src/main/java/code/_3_in_class/factory/Main.java b/_3_design_patterns/src/main/java/code/_3_in_class/factory/Main.java new file mode 100644 index 000000000..8283f905e --- /dev/null +++ b/_3_design_patterns/src/main/java/code/_3_in_class/factory/Main.java @@ -0,0 +1,34 @@ +package code._3_in_class.factory; + +public class Main { + public static void main(String[] args) { + + String numePersoana01="Popescu"; + String numePersoana02 ="Antonescu"; + + System.out.println(pretCalatorieCuAutobuz(ObjectAdapter.isStudent(numePersoana01))); + + } + public static String isStudent(String nume) { + if(nume.startsWith("A")){ + return "true"; + }else{ + return "false"; + } + } + public static int pretCalatorieCuAutobuz(boolean isStudent){ + if(isStudent){ + return 0; + }else{ + return 15; + } + } +} + +class ObjectAdapter{ + + public static boolean isStudent(String nume){ + + return Boolean.valueOf(Main.isStudent(nume)); + } +} diff --git a/_3_design_patterns/src/main/java/code/_3_in_class/factory/StudentFactory.java b/_3_design_patterns/src/main/java/code/_3_in_class/factory/StudentFactory.java new file mode 100644 index 000000000..42b9af34b --- /dev/null +++ b/_3_design_patterns/src/main/java/code/_3_in_class/factory/StudentFactory.java @@ -0,0 +1,17 @@ +package code._3_in_class.factory; + +public class StudentFactory { + + public static IStudent valueof(int anulNasterii, String Universitatea ) { + IStudent student = null; + if (1995 < anulNasterii && anulNasterii < 2015) { + student = new StudentGenZ(Universitatea); + } else if (1980 < anulNasterii && anulNasterii < 1994) { + student = new StudentGenX(Universitatea); + } else if (1964 < anulNasterii && anulNasterii < 1980) { + student = new StudentMilenial(Universitatea); + } + return student; + } + } + 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..c1c4219e9 --- /dev/null +++ b/_3_design_patterns/src/main/java/code/_3_in_class/factory/StudentGenX.java @@ -0,0 +1,20 @@ +package code._3_in_class.factory; + +public class StudentGenX implements IStudent{ + + private String Universitatea; + + public StudentGenX(String Universitate) { + this.Universitatea = Universitate; + } + + @Override + public String getNumeUniversitateaUndeStudiaza() { + return this.Universitatea; + } + + @Override + public String hello() { + return null; + } +} diff --git a/_3_design_patterns/src/main/java/code/_3_in_class/factory/StudentGenZ.java b/_3_design_patterns/src/main/java/code/_3_in_class/factory/StudentGenZ.java new file mode 100644 index 000000000..3f8f0bad5 --- /dev/null +++ b/_3_design_patterns/src/main/java/code/_3_in_class/factory/StudentGenZ.java @@ -0,0 +1,20 @@ +package code._3_in_class.factory; + +public class StudentGenZ implements IStudent{ + + private String Universitatea; + + public StudentGenZ(String Universitatea) { + this.Universitatea = Universitatea; + } + + @Override + public String getNumeUniversitateaUndeStudiaza() { + return Universitatea; + } + + @Override + public String hello() { + return null; + } +} diff --git a/_3_design_patterns/src/main/java/code/_3_in_class/factory/StudentMilenial.java b/_3_design_patterns/src/main/java/code/_3_in_class/factory/StudentMilenial.java new file mode 100644 index 000000000..03021326d --- /dev/null +++ b/_3_design_patterns/src/main/java/code/_3_in_class/factory/StudentMilenial.java @@ -0,0 +1,20 @@ +package code._3_in_class.factory; + +public class StudentMilenial implements IStudent{ + + private String Universitatea; + + public StudentMilenial(String Universitatea) { + this.Universitatea = Universitatea; + } + + @Override + public String getNumeUniversitateaUndeStudiaza() { + return null; + } + + @Override + public String hello() { + return null; + } +} diff --git a/_3_design_patterns/src/main/java/code/_3_in_class/iterator/Main.java b/_3_design_patterns/src/main/java/code/_3_in_class/iterator/Main.java new file mode 100644 index 000000000..d17219393 --- /dev/null +++ b/_3_design_patterns/src/main/java/code/_3_in_class/iterator/Main.java @@ -0,0 +1,65 @@ +package code._3_in_class.iterator; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class Main { + public static void main(String[] args) { + + List list=new ArrayList<>(); + + System.out.print("Integer[] = "); + Integer [] intregi =new Integer[]{1,2,3,}; + + for(Integer intreg:intregi){ + System.out.print(intreg + " "); + } + + System.out.print("\nMyIterableCollection = "); + MyIterableCollection myIterableCollectiontion= new MyIterableCollection(intregi); + for(Object intreg:myIterableCollectiontion){ + + System.out.print(intreg + " "); + } + + MyIterator myIterator =new MyIterator(intregi); + while(myIterator.hasNext()){ + + Object currentElement=myIterator.next(); + System.out.println(currentElement); + + } + + } + + static class MyIterableCollection implements Iterable{ + private Integer[] intregi; + + public MyIterableCollection(Integer[] intregi) { + this.intregi = intregi; + } + @Override + public Iterator iterator() { + return new MyIterator(this.intregi); + } + } + static class MyIterator implements Iterator { + + private static Integer[] intregi =new Integer[]{}; + private static Integer currentIndex =0; + + public MyIterator(Integer[] intregi) { + this.intregi = intregi; + } + + @Override + public boolean hasNext() { + return intregi.length>currentIndex; + } + @Override + public Object next() { + return intregi[currentIndex++]; + } + } +} diff --git a/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/IStudent.java b/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/IStudent.java new file mode 100644 index 000000000..dfa07f85f --- /dev/null +++ b/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/IStudent.java @@ -0,0 +1,8 @@ +package code._3_in_class.exceptions; + +public interface IStudent { + + + public String getNumeUniversitateaUndeStudiaza(); + String hello(); +} diff --git a/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/Main.java b/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/Main.java new file mode 100644 index 000000000..07a0a1c4a --- /dev/null +++ b/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/Main.java @@ -0,0 +1,30 @@ +package code._3_in_class.exceptions; + +public class Main { + public static void main(String[] args) { + + + IStudent student =metoda3(); + System.out.println(student.hello()); + + } + + static IStudent metoda3(){ + try{ //liniile astea de cod trebuie sa se execute in cazul in care codul merge- nu avem exceptii + return metoda2(); + }catch (Exception e){ + //liniile astea de cod trebuie sa se execute in cazul in care codul nu merge- avem exceptii + return new StudentGenZ("la scoala"); + }finally{ //se executa intotdeauna, insemanand INTOTDEAUNA SI MEREU + System.out.println("do something"); + } + } + static IStudent metoda2(){ + + return StudentFactory.valueof(3000, "Stanford"); + } + + +} + + diff --git a/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentBabyBoomer.java b/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentBabyBoomer.java new file mode 100644 index 000000000..ab991ad3b --- /dev/null +++ b/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentBabyBoomer.java @@ -0,0 +1,20 @@ +package code._3_in_class.exceptions; + +public class StudentBabyBoomer implements IStudent { + + private String Universitatea; + + public StudentBabyBoomer(String Universitate) { + this.Universitatea = Universitate; + } + + @Override + public String getNumeUniversitateaUndeStudiaza() { + return this.Universitatea; + } + + @Override + public String hello() { + return "salut"; + } +} diff --git a/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentFactory.java b/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentFactory.java new file mode 100644 index 000000000..44874852d --- /dev/null +++ b/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentFactory.java @@ -0,0 +1,21 @@ +package code._3_in_class.exceptions; + +public class StudentFactory { + + public static IStudent valueof(int anulNasterii, String Universitatea ) { + IStudent student; + if (1995 < anulNasterii && anulNasterii < 2015) { + student = new StudentGenZ(Universitatea); + } else if (1980 < anulNasterii && anulNasterii < 1994) { + student = new StudentGenX(Universitatea); + } else if (1964 < anulNasterii && anulNasterii < 1980) { + student = new StudentMilenial(Universitatea); + }else if(1944 < anulNasterii && anulNasterii < 1964){ + student = new StudentBabyBoomer(Universitatea); + }else{ + throw new RuntimeException("anulNasterii nu este valid, alegeti un an in intervalul [1944-2015]"); + } + return student; + } + } + diff --git a/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentGenX.java b/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentGenX.java new file mode 100644 index 000000000..58355163f --- /dev/null +++ b/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentGenX.java @@ -0,0 +1,21 @@ +package code._3_in_class.exceptions; + +public class StudentGenX implements IStudent { + + private String Universitatea; + + public StudentGenX(String Universitate) { + this.Universitatea = Universitate; + } + + @Override + public String getNumeUniversitateaUndeStudiaza() { + return this.Universitatea; + } + + @Override + public String hello() { + + return "salut"; + } +} diff --git a/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentGenZ.java b/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentGenZ.java new file mode 100644 index 000000000..978fade4a --- /dev/null +++ b/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentGenZ.java @@ -0,0 +1,20 @@ +package code._3_in_class.exceptions; + +public class StudentGenZ implements IStudent { + + private String Universitatea; + + public StudentGenZ(String Universitatea) { + this.Universitatea = Universitatea; + } + + @Override + public String getNumeUniversitateaUndeStudiaza() { + return Universitatea; + } + + @Override + public String hello() { + return "Hmm"; + } +} diff --git a/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentMilenial.java b/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentMilenial.java new file mode 100644 index 000000000..c6f85afce --- /dev/null +++ b/_4_exceptions_io/src/main/java/code/_3_in_class/exceptions/StudentMilenial.java @@ -0,0 +1,20 @@ +package code._3_in_class.exceptions; + +public class StudentMilenial implements IStudent { + + private String Universitatea; + + public StudentMilenial(String Universitatea) { + this.Universitatea = Universitatea; + } + + @Override + public String getNumeUniversitateaUndeStudiaza() { + return null; + } + + @Override + public String hello() { + return null; + } +} From 72748b4a931e25d032c8dc40e49f8b8778572907 Mon Sep 17 00:00:00 2001 From: ValentinDolcescu7 Date: Sat, 13 May 2023 14:06:12 +0300 Subject: [PATCH 7/8] Curs 5 --- .../src/main/java/code/_3_in_class/Main.java | 11 ++++- .../main/java/code/_3_in_class/Student.java | 42 +++++++++++++++++++ .../src/main/java/code/_3_in_class/T1.java | 20 +++++++++ .../src/main/java/code/_3_in_class/T2.java | 20 +++++++++ .../code/_3_in_class/mutabilitate/Main.java | 20 +++++++++ 5 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 _7_concurrency/src/main/java/code/_3_in_class/Student.java create mode 100644 _7_concurrency/src/main/java/code/_3_in_class/T1.java create mode 100644 _7_concurrency/src/main/java/code/_3_in_class/T2.java create mode 100644 _7_concurrency/src/main/java/code/_3_in_class/mutabilitate/Main.java diff --git a/_7_concurrency/src/main/java/code/_3_in_class/Main.java b/_7_concurrency/src/main/java/code/_3_in_class/Main.java index e4abd470c..2a23a8114 100644 --- a/_7_concurrency/src/main/java/code/_3_in_class/Main.java +++ b/_7_concurrency/src/main/java/code/_3_in_class/Main.java @@ -3,6 +3,15 @@ public class Main { public static void main(String[] args) throws InterruptedException { - //TODO put your code changes in here + + Thread t1=new Thread(new T1()); + Thread t2=new Thread(new T2()); + + t1.start(); + t2.start(); + + + + } } \ No newline at end of file diff --git a/_7_concurrency/src/main/java/code/_3_in_class/Student.java b/_7_concurrency/src/main/java/code/_3_in_class/Student.java new file mode 100644 index 000000000..7ae6a933d --- /dev/null +++ b/_7_concurrency/src/main/java/code/_3_in_class/Student.java @@ -0,0 +1,42 @@ +package code._3_in_class; + +public class Student { + + public static final Student INSTANCE=new Student(); + private String nume="Popescu"; + private Integer notaMatematica=10; + private Integer notaInformatica=10; + private Integer notaEngleza=10; + + private Student(){}; + + public void setNume(String nume) { + this.nume = nume; + } + + public void setNotaMatematica(Integer notaMatematica) { + this.notaMatematica = notaMatematica; + } + + public void setNotaInformatica(Integer notaInformatica) { + this.notaInformatica = notaInformatica; + } + + public void setNotaEngleza(Integer notaEngleza) { + this.notaEngleza = notaEngleza; + } + + public double getMedie(){ + return (notaEngleza+notaMatematica+notaInformatica)/3; + } + + @Override + public String toString() { + return "Student{" + + "nume='" + nume + '\'' + + ", notaMatematica=" + notaMatematica + + ", notaInformatica=" + notaInformatica + + ", notaEngleza=" + notaEngleza + + '}'; + } +} diff --git a/_7_concurrency/src/main/java/code/_3_in_class/T1.java b/_7_concurrency/src/main/java/code/_3_in_class/T1.java new file mode 100644 index 000000000..ccf5a1c75 --- /dev/null +++ b/_7_concurrency/src/main/java/code/_3_in_class/T1.java @@ -0,0 +1,20 @@ +package code._3_in_class; + +public class T1 implements Runnable{ + + + @Override + public void run() { + try{ + + Student.INSTANCE.setNotaEngleza(5); + Thread.sleep(5*1_000); + Student.INSTANCE.setNotaMatematica(10); + Student.INSTANCE.setNotaInformatica(10); + double medie =Student.INSTANCE.getMedie(); + System.out.println("T1: "+ medie); + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} diff --git a/_7_concurrency/src/main/java/code/_3_in_class/T2.java b/_7_concurrency/src/main/java/code/_3_in_class/T2.java new file mode 100644 index 000000000..c551d2be4 --- /dev/null +++ b/_7_concurrency/src/main/java/code/_3_in_class/T2.java @@ -0,0 +1,20 @@ +package code._3_in_class; + +public class T2 implements Runnable { + + @Override + public void run() { + try{ + + Student.INSTANCE.setNotaEngleza(3); + + Student.INSTANCE.setNotaMatematica(10); + Student.INSTANCE.setNotaInformatica(10); + double medie =Student.INSTANCE.getMedie(); + System.out.println("T2: "+ medie); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + +} diff --git a/_7_concurrency/src/main/java/code/_3_in_class/mutabilitate/Main.java b/_7_concurrency/src/main/java/code/_3_in_class/mutabilitate/Main.java new file mode 100644 index 000000000..1f63ddac9 --- /dev/null +++ b/_7_concurrency/src/main/java/code/_3_in_class/mutabilitate/Main.java @@ -0,0 +1,20 @@ +package code._3_in_class.mutabilitate; + +import code._3_in_class.Student; + +public class Main { + public static void main(String[] args) { + + final int i=0; // deoarece i este declarat ca si tip de date int -> int-ul este de tip imutabil + final Student s= Student.INSTANCE;//este s MUTABIL + System.out.println(s); + s.setNume("nu il mai cheama Popescu"); + s.setNotaInformatica(5); + System.out.println(s); + + //s=Student.INSTANCE; + String casa="apartament"; + casa="vila"; //aici se creeaza o noua zona de memorie + + } +} From e452aa155d4d17f75a95ba0f15773e71b1eead7a Mon Sep 17 00:00:00 2001 From: ValentinDolcescu7 Date: Sat, 20 May 2023 00:57:32 +0300 Subject: [PATCH 8/8] Proiect Design Patterns --- .../design_patterns/requirements/Flights.java | 126 ++++++++++++++++++ .../requirements/FlightsBuilder.java | 70 ++++++++++ .../requirements/FlightsIterator.java | 58 ++++++++ .../requirements/IFlightsIterator.java | 10 ++ .../design_patterns/requirements/Main.java | 103 +++++++++++++- 5 files changed, 366 insertions(+), 1 deletion(-) create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Flights.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/FlightsBuilder.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/FlightsIterator.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/IFlightsIterator.java diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Flights.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Flights.java new file mode 100644 index 000000000..51728cc0d --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Flights.java @@ -0,0 +1,126 @@ +package clean.code.design_patterns.requirements; + +import java.time.LocalDateTime; + +public class Flights { + + private String CompanyName; + private String NumberPlain; + private String OneWay; + private String RoundTrip; + private String DepartureAirport; + private String DestinationAirport; + private LocalDateTime DepartureDateTime; + private LocalDateTime ArrivalDateTime; + private int NumbersOfPassengers; + private double price; + + public Flights(String companyName, String numberPlain, String oneWay, String roundTrip, String departureAirport, String destinationAirport, LocalDateTime departureDateTime, LocalDateTime arrivalDateTime, int numbersOfPassengers, double price) { + CompanyName = companyName; + NumberPlain = numberPlain; + OneWay = oneWay; + RoundTrip = roundTrip; + DepartureAirport = departureAirport; + DestinationAirport = destinationAirport; + DepartureDateTime = departureDateTime; + ArrivalDateTime = arrivalDateTime; + NumbersOfPassengers = numbersOfPassengers; + this.price = price; + } + + public void setCompanyName(String companyName) { + CompanyName = companyName; + } + + public void setNumberPlain(String numberPlain) { + NumberPlain = numberPlain; + } + + public void setOneWay(String oneWay) { + OneWay = oneWay; + } + + public void setRoundTrip(String roundTrip) { + RoundTrip = roundTrip; + } + + public void setDepartureAirport(String departureAirport) { + DepartureAirport = departureAirport; + } + + public void setDestinationAirport(String destinationAirport) { + DestinationAirport = destinationAirport; + } + + public void setDepartureDateTime(LocalDateTime departureDateTime) { + DepartureDateTime = departureDateTime; + } + + public void setArrivalDateTime(LocalDateTime arrivalDateTime) { + ArrivalDateTime = arrivalDateTime; + } + + public void setNumbersOfPassengers(int numbersOfPassengers) { + NumbersOfPassengers = numbersOfPassengers; + } + + public void setPrice(double price) { + this.price = price; + } + + public String getCompanyName() { + return CompanyName; + } + + public String getNumberPlain() { + return NumberPlain; + } + + public String getOneWay() { + return OneWay; + } + + public String getRoundTrip() { + return RoundTrip; + } + + public String getDepartureAirport() { + return DepartureAirport; + } + + public String getDestinationAirport() { + return DestinationAirport; + } + + public LocalDateTime getDepartureDateTime() { + return DepartureDateTime; + } + + public LocalDateTime getArrivalDateTime() { + return ArrivalDateTime; + } + + public int getNumbersOfPassengers() { + return NumbersOfPassengers; + } + + public double getPrice() { + return price; + } + + @Override + public String toString() { + return "Flights { " + + "CompanyName='" + CompanyName + '\'' + + ", NumberPlain='" + NumberPlain + '\'' + + ", OneWay='" + OneWay + '\'' + + ", RoundTrip='" + RoundTrip + '\'' + + ", DepartureAirport='" + DepartureAirport + '\'' + + ", DestinationAirport='" + DestinationAirport + '\'' + + ", DepartureDateTime=" + DepartureDateTime + + ", ArrivalDateTime=" + ArrivalDateTime + + ", NumbersOfPassengers=" + NumbersOfPassengers + + ", price=" + price +" euro "+ + '}'; + } +} diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/FlightsBuilder.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/FlightsBuilder.java new file mode 100644 index 000000000..eae7381fe --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/FlightsBuilder.java @@ -0,0 +1,70 @@ +package clean.code.design_patterns.requirements; + +import java.time.LocalDateTime; + +public class FlightsBuilder { + private String companyName; + private String numberPlain; + private String oneWay; + private String roundTrip; + private String departureAirport; + private String destinationAirport; + private LocalDateTime departureDateTime; + private LocalDateTime arrivalDateTime; + private int numbersOfPassengers; + private double price; + + public FlightsBuilder setCompanyName(String companyName) { + this.companyName = companyName; + return this; + } + + public FlightsBuilder setNumberPlain(String numberPlain) { + this.numberPlain = numberPlain; + return this; + } + + public FlightsBuilder setOneWay(String oneWay) { + this.oneWay = oneWay; + return this; + } + + public FlightsBuilder setRoundTrip(String roundTrip) { + this.roundTrip = roundTrip; + return this; + } + + public FlightsBuilder setDepartureAirport(String departureAirport) { + this.departureAirport = departureAirport; + return this; + } + + public FlightsBuilder setDestinationAirport(String destinationAirport) { + this.destinationAirport = destinationAirport; + return this; + } + + public FlightsBuilder setDepartureDateTime(LocalDateTime departureDateTime) { + this.departureDateTime = departureDateTime; + return this; + } + + public FlightsBuilder setArrivalDateTime(LocalDateTime arrivalDateTime) { + this.arrivalDateTime = arrivalDateTime; + return this; + } + + public FlightsBuilder setNumbersOfPassengers(int numbersOfPassengers) { + this.numbersOfPassengers = numbersOfPassengers; + return this; + } + + public FlightsBuilder setPrice(double price) { + this.price = price; + return this; + } + public Flights build() { + return new Flights(companyName, numberPlain, oneWay, roundTrip, departureAirport, destinationAirport, departureDateTime, arrivalDateTime, numbersOfPassengers, price); + } + +} \ 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/FlightsIterator.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/FlightsIterator.java new file mode 100644 index 000000000..ddf21be65 --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/FlightsIterator.java @@ -0,0 +1,58 @@ +package clean.code.design_patterns.requirements; +import java.time.Duration; +import java.util.List; + +public class FlightsIterator implements IFlightsIterator { + + private int currentIndex = 0; + private List flights; + + public FlightsIterator(List flights) { + this.flights= flights; + } + + @Override + public boolean hasNext() { + return currentIndex < flights.size(); + } + + @Override + public Flights next() { + return flights.get(currentIndex++); + } + public String getFlightDuration(Flights flight1, Flights flight2) { + + if(flight1.getDestinationAirport()==flight2.getDestinationAirport()&&flight1.getDepartureAirport()==flight2.getDepartureAirport()) { + Duration duration = Duration.between(flight1.getDepartureDateTime(), flight2.getDepartureDateTime()); + long days = duration.toDays(); + long hours = duration.toHours() % 24; + long minutes = duration.toMinutes() % 60; + + if (flight2.getArrivalDateTime().isBefore(flight1.getDepartureDateTime())) { + return "mai devreme cu "+Math.abs(days) + " zile, " + Math.abs(hours) + " ore, " + Math.abs(minutes) + " minute "; + } else if (days > 0) { + return "in "+days + " zile, " + hours + " ore, " + minutes + " minute "; + } else { + return hours + " ore, " + minutes + " minute "; + } + } + else { + return "Nu exista zboruri apropiate!!!"; + } + } + public String small_price(Flights flight1, Flights flights2) + { + if(flight1.getPrice()< flights2.getPrice()&&flight1.getDestinationAirport()==flights2.getDestinationAirport()) + { + return "Cel mai mic pret cu destinatia " + flight1.getDestinationAirport() + " este la compania " +flight1.getCompanyName()+ " si este " + flight1.getPrice() + " euro"+ " in ziua de "+ flight1.getDepartureDateTime(); + } + else if(flight1.getPrice()> flights2.getPrice()&&flight1.getDestinationAirport()==flights2.getDestinationAirport()) { + return "Cel mai mic pret cu destinatia " + flight1.getDestinationAirport() + " este la compania " + flights2.getCompanyName()+" si este " + flights2.getPrice()+ " euro"+ " in ziua de "+ flights2.getDepartureDateTime(); + } + else{ + return "Pretul este acelasi la toate companiile cu destinatia "+ flight1.getDestinationAirport()+ " si este: " + flight1.getPrice() + " euro"; + } + } + +} + diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/IFlightsIterator.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/IFlightsIterator.java new file mode 100644 index 000000000..9f03e7771 --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/IFlightsIterator.java @@ -0,0 +1,10 @@ +package clean.code.design_patterns.requirements; + +public interface IFlightsIterator { + + + boolean hasNext(); + public String getFlightDuration(Flights flight1, Flights flight2); + public String small_price(Flights flight1, Flights flights2); + Flights next(); +} 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..86a9964f6 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 @@ -1,8 +1,109 @@ package clean.code.design_patterns.requirements; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + public class Main { public static void main(String[] args) { - //TODO implement your design patterns in this package + + // Creăm obiectele de zbor utilizând FlightsBuilder + Flights builder1 = new FlightsBuilder() + .setCompanyName("Fly Emirates") + .setNumberPlain("#7777") + .setOneWay("Yes") + .setRoundTrip("No") + .setDepartureAirport("Madrid") + .setDestinationAirport("Cluj-Napoca") + .setDepartureDateTime(LocalDateTime.of(2023, 5, 24, 12, 00)) + .setArrivalDateTime(LocalDateTime.of(2023, 5, 24, 14, 58)) + .setNumbersOfPassengers(1) + .setPrice(125.0) + .build(); + + Flights builder2 = new FlightsBuilder() + .setCompanyName("Wizz Air") + .setNumberPlain("#4FCT7") + .setRoundTrip("No") + .setOneWay("Yes") + .setDepartureAirport("Cluj-Napoca") + .setDestinationAirport("Madrid") + .setDepartureDateTime(LocalDateTime.of(2023, 5, 21, 15, 30)) + .setArrivalDateTime(LocalDateTime.of(2023, 5, 21, 17, 30)) + .setNumbersOfPassengers(1) + .setPrice(175.0) + .build(); + + Flights builder3 = new FlightsBuilder() + .setCompanyName("Turkish Airline") + .setNumberPlain("F7456") + .setRoundTrip("Yes") + .setOneWay("No") + .setDepartureAirport("Madrid") + .setDestinationAirport("Cluj-Napoca") + .setDepartureDateTime(LocalDateTime.of(2023, 5, 27, 15, 30)) + .setArrivalDateTime(LocalDateTime.of(2023, 5, 27, 17, 30)) + .setNumbersOfPassengers(1) + .setPrice(150.0) + .build(); + + Flights builder4 = new FlightsBuilder() + .setCompanyName("Wizz Air") + .setNumberPlain("#4FCT7") + .setRoundTrip("No") + .setOneWay("Yes") + .setDepartureAirport("Madrid") + .setDestinationAirport("Cluj-Napoca") + .setDepartureDateTime(LocalDateTime.of(2023, 5, 21, 15, 30)) + .setArrivalDateTime(LocalDateTime.of(2023, 5, 21, 17, 30)) + .setNumbersOfPassengers(1) + .setPrice(175.0) + .build(); + + List flightsList = new ArrayList<>(); + flightsList.add(builder1); + flightsList.add(builder2); + flightsList.add(builder3); + flightsList.add(builder4); + + FlightsIterator iterator1=new FlightsIterator(flightsList); + while(iterator1.hasNext()){ + Flights flight=iterator1.next(); + if (flight.getDestinationAirport() == "Madrid" && flight.getDepartureAirport().equals("Madrid")) { + throw new RuntimeException("Aeroportul de destinatie este acelasi cu aeroportul de plecare!!!"); + } + } + + FlightsIterator iterator = new FlightsIterator(flightsList); + String smallPrice = null; + while (iterator.hasNext()) { + Flights currentFlight = iterator.next(); + if(currentFlight.getDepartureAirport().equals("Madrid")&¤tFlight.getDestinationAirport().equals("Cluj-Napoca")) { + String destination = currentFlight.getDestinationAirport(); + boolean hasCloseFlights = false; + FlightsIterator innerIterator = new FlightsIterator(flightsList); + while (innerIterator.hasNext()) { + Flights nextFlight = innerIterator.next(); + if (nextFlight.getDestinationAirport().equals(destination) && nextFlight != currentFlight) { + String flightDuration = iterator.getFlightDuration(currentFlight, nextFlight); + System.out.println(currentFlight); + System.out.println("Pentru destinatia " + currentFlight.getDestinationAirport() + " exista un zbor cu aceeasi destinatie " + flightDuration + "la " + nextFlight.getCompanyName() + " cu pretul de " + nextFlight.getPrice() + " euro"); + System.out.println(nextFlight+"\n"); + hasCloseFlights = true; + smallPrice = innerIterator.small_price(currentFlight, nextFlight); + } + } + if (!hasCloseFlights) { + System.out.println("Nu exista zboruri ulterioare cu aceeasi destinatie pentru zborul cu plecare spre " + currentFlight.getDestinationAirport()); + } + } + } + if (smallPrice == null) { + System.out.println("Nu exista alte zboruri la preturi mai mici"); + } else { + System.out.println(smallPrice); + } } } +