CCB Premier Import
This commit is contained in:
12
11-SOURCES/Box.java
Normal file
12
11-SOURCES/Box.java
Normal file
@@ -0,0 +1,12 @@
|
||||
public class Box {
|
||||
private Object valeur;
|
||||
public void set(Object valeur) {
|
||||
this.valeur = valeur; }
|
||||
public Object get() { return valeur; }
|
||||
|
||||
public static void main (String args []) {
|
||||
Box box_integer = new Box ();
|
||||
box_integer.set(new Integer (12));
|
||||
// Integer i = box_integer.get(); // Erreur de compilation : Type mismatch: cannot convert from Object to Integer
|
||||
}
|
||||
}
|
||||
30
11-SOURCES/generique/Box.java
Normal file
30
11-SOURCES/generique/Box.java
Normal file
@@ -0,0 +1,30 @@
|
||||
package generique;
|
||||
|
||||
public class Box<T> {
|
||||
private T t;
|
||||
|
||||
public void set(T t) { this.t = t; }
|
||||
public T get() { return t; }
|
||||
|
||||
public static void main (String args []) {
|
||||
// D<>claration et new avec le type
|
||||
Box<Integer> integerBox = new Box<Integer>();
|
||||
integerBox.set(new Integer (12));
|
||||
// integerBox.set("Bonjour"); // ERREUR DE COMPILATION :
|
||||
// The method set(Integer) in the type Box<Integer> is not applicable
|
||||
// for the arguments (String)
|
||||
Integer i = integerBox.get(); // PAS LA PEINE DE FAIRE UN CAST
|
||||
|
||||
// Ou alors avec le <20>diamant<6E> et une inf<6E>rence de type
|
||||
Box<Integer> integerBox2 = new Box<>();
|
||||
integerBox2.set(new Integer (33));
|
||||
Integer j = integerBox2.get();
|
||||
|
||||
// Le type <20>brut<75> : Box
|
||||
Box rawBox = new Box();
|
||||
rawBox.set(new Integer (35));
|
||||
// Integer k = rawBox.get(); ERREUR DE COMPILATION :
|
||||
// Type mismatch: cannot convert from Object to Integer
|
||||
int k = (Integer) rawBox.get();
|
||||
}
|
||||
}
|
||||
15
11-SOURCES/generique/Couple.java
Normal file
15
11-SOURCES/generique/Couple.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package generique;
|
||||
|
||||
class Couple<T> {
|
||||
private T x, y ; // les 2 elements du couple seront du m<>me type
|
||||
|
||||
public Couple (T premier, T second){
|
||||
x = premier ; y = second ;
|
||||
}
|
||||
public T getPremier () {
|
||||
return x ;
|
||||
}
|
||||
public void affiche () {
|
||||
System.out.println ("Couple : 1ere val : " + x + " - 2e val : " + y ) ;
|
||||
}
|
||||
}
|
||||
36
11-SOURCES/generique/CoupleDiff.java
Normal file
36
11-SOURCES/generique/CoupleDiff.java
Normal file
@@ -0,0 +1,36 @@
|
||||
package generique;
|
||||
|
||||
class CoupleDiff<T, U> {
|
||||
private T x; // le premier element du couple
|
||||
private U y; // le second element du couple
|
||||
|
||||
public CoupleDiff(T premier, U second) {
|
||||
x = premier;
|
||||
y = second;
|
||||
}
|
||||
|
||||
public T getPremier() {
|
||||
return x;
|
||||
}
|
||||
|
||||
public void affiche() {
|
||||
System.out.println ("Couple diff 1ere val : " + x + " - 2e val : " + y ) ;
|
||||
}
|
||||
|
||||
public static void main(String args[]) {
|
||||
Integer oi1 = 3;
|
||||
Double od1 = 2.5;
|
||||
CoupleDiff<Integer, Double> ch1 = new CoupleDiff<Integer, Double>(oi1,
|
||||
od1);
|
||||
ch1.affiche();
|
||||
|
||||
Integer oi2 = 4;
|
||||
CoupleDiff<Integer, Integer> ch2 = new CoupleDiff<Integer, Integer>(oi1, oi2);
|
||||
ch2.affiche();
|
||||
|
||||
Integer n = ch1.getPremier();
|
||||
System.out.println("premier element du couple ch1 = " + n);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
17
11-SOURCES/generique/CoupleMain.java
Normal file
17
11-SOURCES/generique/CoupleMain.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package generique;
|
||||
|
||||
public class CoupleMain
|
||||
{
|
||||
public static void main (String args[])
|
||||
{
|
||||
Integer oi1 = new Integer (3) ;
|
||||
Integer oi2 = new Integer (5) ;
|
||||
Couple <Integer> ci = new Couple (oi1, oi2) ;
|
||||
ci.affiche () ;
|
||||
|
||||
Couple <Double> cd = new Couple <Double> (2.0, 12.0) ;
|
||||
cd.affiche() ;
|
||||
Double p = cd.getPremier () ;
|
||||
System.out.println ("premier element du couple cd = " + p ) ;
|
||||
}
|
||||
}
|
||||
17
11-SOURCES/generique/Pair.java
Normal file
17
11-SOURCES/generique/Pair.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package generique;
|
||||
|
||||
public class Pair<K, V> {
|
||||
// G<>rer une paire cl<63> - valeur (ayant chacune un type g<>n<EFBFBD>rique)
|
||||
private K key;
|
||||
private V value;
|
||||
|
||||
public Pair(K key, V value) {
|
||||
this.key = key;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public void setKey(K key) { this.key = key; }
|
||||
public void setValue(V value) { this.value = value; }
|
||||
public K getKey() { return key; }
|
||||
public V getValue() { return value; }
|
||||
}
|
||||
22
11-SOURCES/generique/PairMain.java
Normal file
22
11-SOURCES/generique/PairMain.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package generique;
|
||||
|
||||
public class PairMain {
|
||||
// Comparer deux paires cl<63>s - valeur (ayant chacune un type g<>n<EFBFBD>rique)
|
||||
public static <K, V> boolean compare(Pair<K, V> p1, Pair<K, V> p2) {
|
||||
return p1.getKey().equals(p2.getKey()) &&
|
||||
p1.getValue().equals(p2.getValue());
|
||||
}
|
||||
|
||||
public static void main(String args[]) {
|
||||
Pair<Integer, String> p1 = new Pair<>(1, "apple");
|
||||
Pair<Integer, String> p2 = new Pair<>(2, "pear");
|
||||
boolean same = PairMain.<Integer, String>compare(p1, p2);
|
||||
System.out.println("same = " + same);
|
||||
|
||||
// On peut aussi ne pas mettre le type qui sera inf<6E>r<EFBFBD> par le compilateur :
|
||||
Pair<Integer, String> p3 = new Pair<>(1, "apple");
|
||||
Pair<Integer, String> p4 = new Pair<>(1, "apple");
|
||||
boolean same2 = PairMain.compare(p3, p4);
|
||||
System.out.println("same2 = " + same2);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user