Dans leS TD précédentS ...

Apprenons à programmer

avec

public class MaClasse {

 

.... ....

 

 

 

 

}

fichiers .java

javac

compilation

0100 1010101010

fichiers .class (bytecode)

jvm

Pokemon
- name : String ;
- level : int ;
- type : String ;
+ Pokemon (name: String, level: int, type: String)
+ faireEvoluer()
public class Pokemon {

  private String name;

  private int level;

  private String type;

  public Pokemon(String name, int level, String type) {
     this.name = name;
     this.level = level;
     this.type = type;
  }

  ...

}
Pokemon pikachu = new Pokemon("Pikachu", 20, "Électrique");

Constructeur

Nouvelles instances !!!!

Pokemon pikachu = new Pokemon("Pikachu", 20, "Électrique");

Objets créés

@

pikachu

Pokemon pikachu2 = pikachu;

@

pikachu2

pikachu2.faireEvoluer();

Notion de référence

Test d'égalité

public class SuperHero{

    private String name;

    public SuperHero(String name){
        this.name = name;
    }
}



....

SuperHero batman = new SuperHero("batman");
SuperHero batmanAgain = new SuperHero("batman");

( batman == batmanAgain ) ==> false

Test d'égalité

public class SuperHero{

    private String name;

    public SuperHero(String name){
        this.name = name;
    }

    public boolean equals(Object obj){
        return (obj instanceof SuperHero) 
            && (this.name.equals(((SuperHero) obj).name));
    }
}



....

SuperHero batman = new SuperHero("batman");
SuperHero batmanAgain = new SuperHero("batman");

(batman.equals(batmanAgain)) ==> true

type primitif = VALEUR

int monAge = 28;

int monAgeAgain = 28;


(monAge == monAgeAgain) => true

ÉCRIRE UN PROGRAMME JAVA

  • JDK
  • Third party Librairies
  • Own Classes

 

Pokemon
- name : String ;
- level : int ;
- type : String ;
+ Pokemon (name: String, level: int, type: String)
+ faireEvoluer()
Dresseur
- name : String ;
+ Dresseur (name: String)

0..*

public class Dresseur {

   private String name;
   
   private Pokemon[] pokemons;

   public Dresseur(String name, Pokemon[] pokemons){
        this.name = name;
        this.pokemons = pokemons;
   }

}

AGGRÉGATION



Pokemon pikachu = new Pokemon("Pikachu", 20, "Électrique");


Pokemon[] pokemonsSacha = new Pokemon[1];
pokemonsSacha[0] = pikachu;

Pokemon[] pokemonsOndine = new Pokemon[1];
pokemonsOndine[0] = pikachu;

Dresseur sacha = new Dresseur("Sacha", pokemonsSacha);

Dresseur ondine = new Dresseur("Ondine", pokemonsOndine);

AGGRÉGATION


class Pokemon{

    public Pokemon(Pokemon exemple){
        
        this.name = exemple.name;
        this.level = exemple.level;
        this.type = exemple.type;
    
    }

}

...

Pokemon pikachu = new Pokemon("Pikachu", 20, "Électrique");

Pokemon[] pokemonsSacha = new Pokemon[1];
pokemonsSacha[0] = new Pokemon(pikachu);

Pokemon[] pokemonsOndine = new Pokemon[1];
pokemonsOndine[0] = new Pokemon(pikachu);

Dresseur sacha = new Dresseur("Sacha", pokemonsSacha);

Dresseur ondine = new Dresseur("Ondine", pokemonsOndine);

constructeur par recopie

L'Héritage

public class Humain {
        
    private String name;
    
    public Humain(String pName) {
        name = pName;
    }

    public String commentTappellesTu() {
        return "Je m'appelle "+name+ " and I'm only human after all";
    }
}


Humain humain = new Humain("Butcher");

System.out.println(humain.commentTappellesTu());

--> Je m'appelle Butcher and I'm only human after all 

public class SuperHero extends Humain {
        
    private String pouvoir;
    
    public SuperHero(String pName, String pouvoir) {
        super(pName);
        this.pouvoir = pouvoir;
    }

    public String getPouvoir() {
        return "Mon pouvoir magique est : "+pouvoir;
    }
}

Humain humain = new SuperHero("Peter Parker", "araignée");

System.out.println(humain.commentTappellesTu());

--> Je m'appelle Peter Parker and I'm only human after all 
public class Batman extends SuperHero {
    
    public Batman(String pName, String pouvoir) {
        super(pName, pouvoir);
    }

    public String commentTappellesTu() {
        return "Je m'appelle Batman";
    }
}

Humain humain = new SuperHero("Bruce Wayne", "la richesse");

System.out.println(humain.commentTappellesTu());

--> Je m'appelle Batman
public class Batman extends SuperHero {
    
    public Batman(String pName, String pouvoir) {
        super(pName, pouvoir);
    }

    public String commentTappellesTu() {
        return "Je m'appelle Batman";
    }

    public boolean equals(Object obj){
        return obj instanceof Batman;
    }
}

Humain humain = new Batman("Bruce Wayne", "la richesse");

Batman batman = new Batman("Bruce Wayne", "bocou d'argent");

System.out.println(humain.equals(batman));

--> true

public String recupererPouvoir(Humain humain){

    String result = null;
    if(humain instanceof SuperHero){
        result = ((SuperHero) humain).getPouvoir();
    }
    return result;
}

private       -> class

                    -> package

protected  -> package + héritage

public         -> tout le monde

INSA - 2ième année - Soutien 2

By Mickael Lecoq

INSA - 2ième année - Soutien 2

Rappel du TD1

  • 725