diff --git a/bin/tp8/Furniture.class b/bin/tp8/Furniture.class
new file mode 100644
index 0000000000000000000000000000000000000000..26f86e796a888b0669bef4c5e6df6186db852c10
Binary files /dev/null and b/bin/tp8/Furniture.class differ
diff --git a/bin/tp8/Shelf.class b/bin/tp8/Shelf.class
new file mode 100644
index 0000000000000000000000000000000000000000..da6e623aec16889a66d3887cea99297b69390bd4
Binary files /dev/null and b/bin/tp8/Shelf.class differ
diff --git a/src/tp8/Furniture.java b/src/tp8/Furniture.java
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..71c7593f75670e54bc0838442c2e2ad530813006 100644
--- a/src/tp8/Furniture.java
+++ b/src/tp8/Furniture.java
@@ -0,0 +1,29 @@
+package tp8;
+
+public class Furniture implements IProduct, Comparable<Furniture> {
+    // Attributs
+    private String label; 
+    private double price;
+    private static int XXX = 0;
+
+    // Constructeurs
+    public Furniture(String label, double price) {
+        this.label = label;
+        this.price = price;
+    }
+
+    public Furniture(double price) {
+        this.label = "refUnknown" + Furniture.XXX;
+        Furniture.XXX++;
+        this.price = price;
+    }
+
+    public double getPrice() {
+        return this.price;
+    }   
+
+    public boolean isPerishable() {
+        return false;
+    }
+    
+}  
\ No newline at end of file
diff --git a/src/tp8/Shelf.java b/src/tp8/Shelf.java
new file mode 100644
index 0000000000000000000000000000000000000000..02bc729a044cfcf484edd7c659ae832442ade058
--- /dev/null
+++ b/src/tp8/Shelf.java
@@ -0,0 +1,38 @@
+package tp8;
+
+import java.util.ArrayList;
+
+public class Shelf{
+    private boolean refrigerated;
+    private int capacityMax; 
+    private ArrayList<IProduct> products;
+
+    //Constructeur
+    public Shelf(boolean refrigerated, int capacityMax) {
+        this.refrigerated = refrigerated;
+        this.capacityMax = capacityMax;
+        this.products = new ArrayList<IProduct>();
+    }
+ 
+    public ArrayList<IProduct> getShelves() {
+        return this.products;
+    }   
+
+    public boolean isFull(){
+        return this.products.size() >= this.capacityMax;
+    }
+
+    public boolean isRefrigerated() {
+        return this.refrigerated;
+    }
+
+    public String toString(){
+        return "[" + this.refrigerated + ":" + this.capacityMax + " -> " + this.products.size() + "]";
+    }
+
+    // Méthodes 
+
+    public boolean add(IProduct p){
+
+    }
+}