esempi capitolo 12
This commit is contained in:
8
src/com/oracle/java8/professional/oop/Danneggiabile.java
Normal file
8
src/com/oracle/java8/professional/oop/Danneggiabile.java
Normal file
@@ -0,0 +1,8 @@
|
||||
package com.oracle.java8.professional.oop;
|
||||
|
||||
public interface Danneggiabile {
|
||||
|
||||
void riceviColpo(double intensita);
|
||||
|
||||
boolean isDistrutto();
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.oracle.java8.professional.oop;
|
||||
|
||||
public class DanneggiabileComponent implements Danneggiabile {
|
||||
private double vita;
|
||||
|
||||
public DanneggiabileComponent(double vita) {
|
||||
this.vita = vita;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void riceviColpo(double intensita) {
|
||||
this.vita -= intensita;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDistrutto() {
|
||||
return this.vita <= 0;
|
||||
}
|
||||
}
|
||||
13
src/com/oracle/java8/professional/oop/Figura.java
Normal file
13
src/com/oracle/java8/professional/oop/Figura.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package com.oracle.java8.professional.oop;
|
||||
|
||||
public abstract class Figura {
|
||||
private double x, y;
|
||||
|
||||
public abstract void disegna();
|
||||
|
||||
public void sposta(double deltaX, double deltaY) {
|
||||
x += deltaX;
|
||||
y += deltaY;
|
||||
disegna();
|
||||
}
|
||||
}
|
||||
10
src/com/oracle/java8/professional/oop/Localizzabile.java
Normal file
10
src/com/oracle/java8/professional/oop/Localizzabile.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package com.oracle.java8.professional.oop;
|
||||
|
||||
public interface Localizzabile {
|
||||
|
||||
double getX();
|
||||
|
||||
double getY();
|
||||
|
||||
double getZ();
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.oracle.java8.professional.oop;
|
||||
|
||||
public class LocalizzabileComponent implements Localizzabile {
|
||||
private double x;
|
||||
private double y;
|
||||
private double z;
|
||||
|
||||
public LocalizzabileComponent(double x, double y, double z) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getX() {
|
||||
return this.x;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getY() {
|
||||
return this.y;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getZ() {
|
||||
return this.z;
|
||||
}
|
||||
}
|
||||
46
src/com/oracle/java8/professional/oop/Mina.java
Normal file
46
src/com/oracle/java8/professional/oop/Mina.java
Normal file
@@ -0,0 +1,46 @@
|
||||
package com.oracle.java8.professional.oop;
|
||||
|
||||
public class Mina implements Localizzabile, Danneggiabile, Urticante {
|
||||
private static final double DANNO = 20;
|
||||
private static final double VITA = 50;
|
||||
|
||||
private final Danneggiabile dh;
|
||||
private final Urticante uh;
|
||||
private final Localizzabile lh;
|
||||
|
||||
public Mina(double x, double y, double z) {
|
||||
this.dh = new DanneggiabileComponent(VITA);
|
||||
this.uh = new UrticanteComponent(DANNO);
|
||||
this.lh = new LocalizzabileComponent(x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void riceviColpo(double intensita) {
|
||||
dh.riceviColpo(intensita);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDistrutto() {
|
||||
return dh.isDistrutto();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getX() {
|
||||
return lh.getX();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getY() {
|
||||
return lh.getY();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getZ() {
|
||||
return lh.getZ();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getDanno() {
|
||||
return uh.getDanno();
|
||||
}
|
||||
}
|
||||
7
src/com/oracle/java8/professional/oop/Singleton1.java
Normal file
7
src/com/oracle/java8/professional/oop/Singleton1.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package com.oracle.java8.professional.oop;
|
||||
|
||||
public class Singleton1 {
|
||||
public static final Singleton1 instance = new Singleton1();
|
||||
|
||||
private Singleton1() {}
|
||||
}
|
||||
14
src/com/oracle/java8/professional/oop/Singleton2.java
Normal file
14
src/com/oracle/java8/professional/oop/Singleton2.java
Normal file
@@ -0,0 +1,14 @@
|
||||
package com.oracle.java8.professional.oop;
|
||||
|
||||
public class Singleton2 {
|
||||
private static Singleton2 instance;
|
||||
|
||||
public static synchronized Singleton2 getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new Singleton2();
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
private Singleton2() {}
|
||||
}
|
||||
5
src/com/oracle/java8/professional/oop/Singleton3.java
Normal file
5
src/com/oracle/java8/professional/oop/Singleton3.java
Normal file
@@ -0,0 +1,5 @@
|
||||
package com.oracle.java8.professional.oop;
|
||||
|
||||
public enum Singleton3 {
|
||||
INSTANCE;
|
||||
}
|
||||
6
src/com/oracle/java8/professional/oop/Urticante.java
Normal file
6
src/com/oracle/java8/professional/oop/Urticante.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package com.oracle.java8.professional.oop;
|
||||
|
||||
public interface Urticante {
|
||||
|
||||
double getDanno();
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.oracle.java8.professional.oop;
|
||||
|
||||
public class UrticanteComponent implements Urticante {
|
||||
private double danno;
|
||||
|
||||
public UrticanteComponent(double danno) {
|
||||
this.danno = danno;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getDanno() {
|
||||
return this.danno;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user