Surcharge, signature
et variable de classe

variable de classe et plusieurs constructeurs

Source de Rectangle2.java
public class Rectangle2 {
  double x, y, largeur, hauteur;
  static final double DIMDEFAUT = 100;
  Rectangle2() {
    x = 0; 
    y = 0; 
    largeur = DIMDEFAUT;
    hauteur = DIMDEFAUT;   
  }
  Rectangle2(double valX, double valY, 
             double valL, double valH) {
    x = valX; 
    y = valY; 
    largeur = valL;
    hauteur = valH;   
  }
  Rectangle2(double valX, double valY) {
    x = valX; 
    y = valY; 
    largeur = DIMDEFAUT;
    hauteur = DIMDEFAUT;   
  }
  double surface() {
    return largeur * hauteur;
  }
  void doubler() {
    largeur = 2 * largeur;
    hauteur = 2 * hauteur;   
  }
}

Source de Prog32.java
public class Prog32 {
  public static void main (String args[]) {
     Rectangle2 r1, r2;
     r1 = new Rectangle2(40,40,50,100);
     r2 = new Rectangle2(50,50);
     System.out.println("surface de r1 : "
         +r1.surface()+"\nsurface de r2 : "
         +r2.surface());
     r1.doubler();
     System.out.println("surface de r1 "
         +"apres doubler: "+r1.surface());
  }
}

méthode de classe et surcharge de méthode

Source de Rectangle3.java
public class Rectangle3 {
  double x, y, largeur, hauteur;
  static double dimDefaut = 100;
  static void setDimDefaut(double valDim){
    dimDefaut = valDim;
  }
  Rectangle3() {
    x = 0; 
    y = 0; 
    largeur = dimDefaut;
    hauteur = dimDefaut;   
  }

  Rectangle3(double valX, double valY) {
    x = valX; 
    y = valY; 
    largeur = dimDefaut;
    hauteur = dimDefaut;   
  }
  double surface() {
    return largeur * hauteur;
  }
  void doubler() {
    largeur = 2 * largeur;
    hauteur = 2 * hauteur;   
  }
  void doubler(boolean doublerLargeur, 
               boolean doublerHauteur) {
    if (doublerLargeur)
      largeur = 2 * largeur;
    if (doublerHauteur)
      hauteur = 2 * hauteur;   
  }
}

Source de Prog33.java
public class Prog33 {
  public static void main (String args[]) {
     Rectangle3 r1, r2;
     Rectangle3.setDimDefaut(20);
     r1 = new Rectangle3(40,40);
     Rectangle3.setDimDefaut(10);
     r2 = new Rectangle3(50,50);
     System.out.println("surface de r1 : "
         +r1.surface()+"\nsurface de r2 : "
         +r2.surface());
     r1.doubler();
     System.out.println("surface de r1 "+
          "apres doubler: "+r1.surface());
     r2.doubler(true,false);
     System.out.println("surface de r2 apres"
     +" doubler(true,false): "+r2.surface());     
  }
}

variable de classe et méthode de classe

surcharge et signature

constructeur par défaut

Source de Chien3.java
public class Chien3 {
  static String aboiementClassic="wouah!";
  String nom, aboiement;
  int nombrePuce;
  Chien3() {
    nom = "indéfini";
    nombrePuce = 0;
    aboiement = aboiementClassic;
  }
  Chien3(String s) {
    this();
    nom = s; 
  }
  Chien3(String s1, int i, String s2) {
    nom = s1; 
    nombrePuce = i;
    aboiement = s2;
  }
  static void nouvelleRace(String s) {
    aboiementClassic=s;
  }
  void aboie() {
    System.out.println(aboiement);
  }
  void aboie(int fois) {
    for (int i=1; i<fois; i++)
      System.out.print(aboiement);
    System.out.println(aboiement);
  }
}

exercices