IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Notations API, classe,..en java


Sujet :

Java

  1. #1
    Membre éclairé
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Par défaut Notations API, classe,..en java
    Vous me rappelez à l'ordre si je me trompe dans les équivalences suivantes :

    1- java.util.* = Il s'agit de toutes les classes de l'API util de l'API JAVA. Notons que Util n'est pas une classe, mais un "répertoire".

    2- java.awt.Point = Il s'agit de la classe Point de l'API awt de l'API JAVA.

    3- classe1 (j'aurais pu l'appeler toto) est une classe mais également un objet de la classe Class. Et oui une classe peut être un objet et donc peut appeler une méthode telle que :
    classe1.getSuperclass().

    4- Modifier est une classe ne contenant que des méthodes statiques.
    On peut appeler une de ses méthodes en écrivant :
    Modifier.toString( A) // avec A une variable contenant une chaine de caractère par exemple. Aucun objet ne figure dans cette instruction. Eh oui, une méthode appelée grâce au référencement à sa classe. Le secret, c'est le terme statique et donc indépendant de tout objet. Vous l'avez bien compris, A peut représenter la visibilité de n'importe quel objet.

    5- La méthode Modifier ne peut pas être instanciée puisqu'elle n'a pas, tout simplement, d'attributs.

    Merci

  2. #2
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut Quelques réponses partielles
    Bonjour,

    1- java.util.* = ensemble des classes du paquetage java.util.

    2- java.awt.Point = classe Point du paquetage java.awt.

    3- classe est une classe : je ne sais pas, mais cela semble ambigue.

    3'- classe est un objet de la classe Class : pas forcément.

    4- Modifier est une classe ne contenant que des méthodes statiques : oui, c'est façile, il suffit de lire l'API de la classe java.lang.reflect.Modifier.

    4' - Modifier.toString( A) // avec A une variable contenant une chaine de caractère par exemple : il est écrit dans l'API de la classe Modifier
    static String toString(int mod)
    Return a string describing the access modifier flags in the specified modifier.

    5- La méthode Modifier ne peut pas être instanciée puisqu'elle n'a pas, tout simplement, d'attributs : La méthode Modifier est le constructeur de la classe.

  3. #3
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Dans l'ensemble il y a des choses correctes dans ce que tu dis, par contre gare aux imprécisions et aux raccourcis!!

    1) ce n'est pas un "répertoire", mais un "package". Dans le filesystem, cela sera converti en répertoire, mais au niveau "logique" java, ça ne veut rien dire de parler de répertoires.

    2) oui c'est la classe Point, mais pas de java.util, plutôt de java.awt.

    3) ne pas tout confondre: le mot réservé "class" sert à définir une classe (public class MaClass {}), ou à accéder à l'objet de type java.lang.Class d'un type donné (Class c = MaClass.class) (représente une classe chargée dans le classloader)

    4) Modifier: là ça se complique, Modifier est une classe utilitaire chargée de fournir certains renseignements sur un object de type java.lang.Class (Modifier.isPublic(myclass.getModifiers())). Cela sert lorsque l'on fait de l'introspection. Ce n'est pas vraiment un bon exemple pour illustrer la différence static/non-static. java.lang.Math serait un meilleur exemple

    5) Non, elle ne peut être instanciée car elle n'a pas de constructeur public. Rien à voir avec les attributs. On peut très bien instancier cette classe, bien qu'elle n'ait aucun attribut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class C{}
    C c = new C(); // compile et fonctionne

  4. #4
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 688
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 688
    Par défaut
    1- java.util.* = Il s'agit de toutes les classes de l'API util de l'API JAVA. Notons que Util n'est pas une classe, mais un "répertoire".
    C'est l'idée mais le terme exact est de dire que java.util est un package.
    java.util.* représente l'ensemble des classes contenues dans ce package

    2- java.awt.Point = Il s'agit de la classe Point de l'API util de l'API JAVA.
    Je suppose que tu as fait une petite erreur en mélangeant awt et util. La encore le terme exact serait que Point est une classe du paquage java.awt
    Point fait en effet partie de l'API awt mais attention même si c'est généralement plutôt bien découpé un package peut contenir plusieurs API et une API peut être répartie sur plusieurs package.
    Par exemple java.util contient les classes de l'API de collection(List, Map, Set, Queue, ...) mais aussi des classes utilitaires plus classique (Random, Timer, Date, ...)

    3- classe est une classe mais également un objet de la classe Class. Et oui une classe peut être un objet et donc peut appeler une méthode telle que :
    classe.getSuperclass().
    La c'est moins exact.
    Les objets de la classe Class représentent une classe mais ne sont absolument pas des classes.

    4- Modifier est une classe ne contenant que des méthodes statiques.
    On peut appeler une de ses méthodes en écrivant :
    Modifier.toString( A) // avec A une variable contenant une chaine de caractère par exemple. Aucun objet ne figure dans cette instruction. Eh oui, une méthode appelée grâce au référencement à sa classe. Le secret, c'est le terme statique et donc indépendant de tout objet. Vous l'avez bien compris, A peut représenter la visibilité de n'importe quel objet.
    En effet tout ce qui est static est rattaché non plus a l'objet mais à la classe.
    On peut ainsi utiliser les méthode statiques sans instancier un objet.

    5- La méthode Modifier ne peut pas être instanciée puisqu'elle n'a pas, tout simplement, d'attributs.
    Non, car on peut tout à fait instancier une méthode sans attribut, même si ça ne sert pas vraiment.
    Si Modifier ne peux être instancié, c'est parce que tous ses constructeurs ont été déclarés private

  5. #5
    Membre éclairé
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Par défaut
    C'est très clair. Merci à vous

  6. #6
    Membre éclairé
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Par défaut
    Les objets de la classe Class représentent une classe mais ne sont absolument pas des classes.
    là, je ne te suis plus. Ce n'est pas parce que je ne suis pas d'accord mais par incompréhension.
    Et pourtant, on opère sur les objets de la classe Classe comme des classes dans la mesure ou on analyse les type d'attributs, les méthodes déclarés ou encore les constructeurs; j'ai du faire cela dans les cours sur l'introspection.

  7. #7
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    il veut dire que ce ne sont pas des classes dans le sens où ce code ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Class c = Class.forName("java.lang.String");
    String s = new c();
    ce ne sont donc pas des "classes" normales, elles suivent un mécanisme différent


  8. #8
    Membre éclairé
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Par défaut
    Oui , je comprend mieux!
    La classe Class ne contient que des méthodes avec des retours de différents types. Je vais faire un tour pour voir ce que produit cette classe comme objets; c'est ce qui me manque. En tout cas un grand merci à vous.

  9. #9
    Membre éclairé
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Par défaut
    Et donc la confirmation
    Les objets de la classes Classe sont à leur tours des classes que l'on voit un peu partout.
    Néanmoins pour instancier la classe Class, c'est particulier.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Avis] Quelles sont les meilleures API et outils Java ?
    Par Mickael Baron dans le forum API standards et tierces
    Réponses: 33
    Dernier message: 08/06/2011, 14h39
  2. Réponses: 7
    Dernier message: 21/06/2005, 17h04
  3. Réponses: 5
    Dernier message: 15/02/2005, 10h32
  4. [Logging]API Logging de Java
    Par trainscoding dans le forum Logging
    Réponses: 6
    Dernier message: 17/01/2005, 15h21
  5. [PL/SQL]Appel d'une classe/méthode java
    Par marsup54 dans le forum SQL
    Réponses: 4
    Dernier message: 30/06/2004, 16h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo