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