Aide pourr une feuille d'exo en java objet ? [Fermé]

Signaler
-
gerber1
Messages postés
15597
Date d'inscription
mardi 11 novembre 2008
Statut
Modérateur
Dernière intervention
9 décembre 2019
-
Bonjour je suis en 1er informatique où j'y apprend de nombreux language. Les examens approche et je n'ai toujours rien compris au object en java. Je sais ce qu'est le polymorphisme, l'héritage une variable d'instance. Mais j'ai réussis à trouver une feuille d'exo de ma prof que elle nous avait pas donner mais sera en gros une bonne idée du genre d'exercice de la prof.
J'ai essayer avec toute la théorie qu'elle nous à donner de faire ces fiche d'exercice mais rien à faire je bloque sur un bon nombre d'exercice. Je vais poster les exo. donner ma réponse et vous pourrez soit rigoler de ma naïveté et ma stupidité soit me conseiller. De plus comme j'ai remarquer je ne suis pas le seul a bloquer sur ces exercice et il va de soit que j'en ferrai profiter ma classe.


___________________________________________________________
1)Combien d'instances de la classe A sont créées en exécutant le code suivant:
A x;
A y ;
A z;
x = new A();
y = x;
z = new A();


Ma réponse:
seulement 2 classes d'instance sont crée car seulement x et z ont été déclarer par la super classe A. (x = new A(); et z = new A();

2)Exercice 2: casting conversion explicite
Soit une classe Grande et une classe Petite telles que Grande extends Petite. Quelles sont les lignes correctes pour le compilateur et pour l'interpréteur?

1. Petite y = new Petite(); Grande x = (Grande) y; Petite z = x;
2. Grande x = new grande(); Petite y = x; Grande z = (Grande) y;
3. Grande x = new grande(); Petite y = x; Grande z = y;


1er ligne est juste car pour crée un nouvel objet on doit le crée à partir de la super classe. grande hérite de petite.

3)Comment se comportent des deux programmes: qu'affiche le programme dans le(s) cas où aucune erreur ne se produit.

public class A {
  public A() {
    System.out.println(" Hello");
  }
}

public class B extends A {

  public static void main(String[] toto){
     B b = new B();
  }
}


Aucune idée..
public class A {
   public A(int x) {
      System.out.println("Hello"); 
  }
}

public class B extends A { 
  public B(){
  }

  public static void main(String[] toto) {
     B b = new B();
  }
}

Idem j'ai chercher sans trouver, A priori cela ne fait rien :/


4)Supposons que Fruit, Apple, Orange, Golden Delicious Apple and Macintosh Apple sont déclarées comme ci-dessous. Supposons que fruit est une instance de GoldenDelicious et orange est une instance de Orange.

Fruit

Apple Orange

GoldenDelicious Macintosh


1. Est-ce que fruit est une instance de type Orange?
non car orange hérite de fruit et orange est l'instance de fruit

2. Est-ce que fruit est une instance de type Apple?
non car apple hérite de fruit et apple est l'instance de fruit

3. Est-ce que orange est une instance de type Fruit?
Oui car il hérite des propriété de l'objet fruit

4. Est-ce que orange est une instance de type Apple?
non car orange et fruit hérite tout deux de l'objet fruit mais ne sont pas lier directement. Il s'agit de classe enfant

5. Suppose que la méthode makeApple est définie dans la classe Apple. Est-ce que fruit peut utiliser cette méthode; est-ce que orange peut utiliser cette méthode?
fruit peut l'utiliser que dans un seul cas: fruit f = new apple(); Par contre orange ne pourra jamais utiliser makeApple car makeApple est une méthode propre a Apple

6. Suppose que la méthode makeOrangeJuice est définie dans la classe Orange. Est-ce que fruit peut utiliser cette méthode; est-ce que orange peut utiliser cette méthode?
fruit peut utiliser cette méthode que si fruit f = new orange();
autrement orange peut utiliser les méthodes qui lui sont propre

5)Qu'est-ce qui est faux dans ce code?
public class test {

  public static void main(String[] args){
     Object fruit = new Fruit();
     Object apple = (Apple) fruit;
  }
}

public class Apple extends Fruit{

}

public class Fruit{

}


réponse: public class Apple extends Fruit. Si Apple est une sous classe de Fruit on n'a pas besoin d'un extends car Apple hérite directement de Fruit

6) overriding versus overloading

public class Test{
   public static void main(String[] args){
     Object circle1 = new Circle();
     Object circle2 = new Circle();
     System.out.println(circle1.equals(circle2));
   }
}

a:
public class Circle{
  double radius;

  public boolean equals(Circle c){
    return radius == c.radius;
  }
}

b:
public class Circle{
  double radius;

  public boolean equals(Object c){
    return radius ==
         ((Circle)c).radius;
  }
}

Donner le résultat de la classe Test en utilisant la classe Circle (a) et puis la classe Circle (b); justifiez

Réponse:
a:
b: Je ne comprend pas.


7) Qu'affiche la méthode principale de la classe Test.
class A {
 int i = 1;
 static int j = 3;

 void m() {
   i = 5;
 }

 static void m1(){
   j = 7;
 }
}

public class Test {
  public static void main(String[] args){
      A a = new A();

      System.out.println(a.i);
      System.out.println(A.j);   

      a.m();
      A.m1();

      System.out.println(a.i);
      System.out.println(A.j);   
  }
}


Réponse: j'affiche dans l'ordre

1
3
5
7
Je ne vois pas la différence des a et A

J'ai encore d'autre exercice mais si vous savez m'expliquez ceux ci je serais peut être de les faire par moi même; l'exam de java et java programmation object sont dans 1 et 2 semaines. Disons que parmi tout les langages ces celui où je suis le plus mauvais.

Merci

1 réponse

Messages postés
15597
Date d'inscription
mardi 11 novembre 2008
Statut
Modérateur
Dernière intervention
9 décembre 2019
4
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 86840 internautes nous ont dit merci ce mois-ci