Statique contre instance

Ce qui appartient à la classe et ce qui appartient à chaque objet : attribut de classe partagé, méthode statique sans this, constante, appel par le nom de la classe et erreur de contexte statique, en Java.

  • 23 cartes
  • 4 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Comprendre

Quelques cartes du deck

  • Membre statique : de quoi s'agit-il ?

    Voir la réponse

    Attribut ou méthode, déclaré avec static, qui appartient à la classe elle-même et non à un objet particulier.

    Il existe même si aucun objet n'a été créé : on l'atteint par le nom de la classe, par exemple Math.max(3, 8).

  • Quelles valeurs ce programme affiche-t-il ?

    ```java
    class Compte {
    static int nb = 0;
    int numero;
    Compte() {
    nb++;
    numero = nb;
    }
    }

    Compte a = new Compte();
    Compte b = new Compte();
    Compte c = new Compte();
    System.out.println(Compte.nb + " " + a.numero + " " + b.numero + " " + c.numero);
    `

    • 3 1 2 3
    • 3 3 3 3
    • 1 1 1 1
    • 3 0 0 0
    Voir la réponse

    3 1 2 3

    nb est partagé : il vaut 1, 2 puis 3 au fil des créations, et chaque constructeur en copie la valeur du moment dans le numero de son objet, qui est propre à chacun. Les numéros restent donc 1, 2 et 3.

  • Un attribut … n'existe qu'en un seul exemplaire, partagé par … les objets de la classe.

    Voir la réponse

    Un attribut statique n'existe qu'en un seul exemplaire, partagé par tous les objets de la classe.

    À l'inverse, un attribut d'instance est recopié dans chaque objet créé.

  • Membre d'instance : de quoi s'agit-il ?

    Voir la réponse

    Attribut ou méthode, déclaré sans static, dont chaque objet possède sa version et qui s'utilise sur un objet précis.

    rayon d'un cercle n'a de sens que pour un cercle donné : il faut un objet pour le lire.

  • Pourquoi peut-on écrire Math.max(3, 8) sans avoir créé de Math avec new ?

    • Java crée automatiquement un objet Math caché au démarrage du programme
    • max est statique : elle appartient à la classe
    • Math est un type de base du langage, pas une classe
    • max n'a pas besoin d'arguments pour s'exécuter
    Voir la réponse

    max est statique : elle appartient à la classe

    Une méthode qui ne dépend d'aucun état d'objet peut être statique : max ne se sert que de ses paramètres, comme les autres méthodes utilitaires de Math.