Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JAVA] La POO

Liaison entre les fichiers

    4 juin 2006 à 13:31:53

    Bonjours à tous, je me lance dans JAVA et j'ai une question existencielle :-° . En effet j'ai créer quatre fichiers comme ci-dessous:

    Circle.java
    class Circle {
        Point2D centre;
        double rayon;

        Circle(){ centre=new Point2D();   rayon=1; }
        Circle(Point2D c,double r){ centre=c; rayon=r; }

        void Move(Vector2D vecteur) {
            centre.x += vecteur.x;   centre.y += vecteur.y;
        }

        void Move(double x,double y) {
            centre.x += x;   centre.y += y;
        }

        void MoveH(double x) { centre.x += x; }

        void MoveV(double y) { centre.y += y; }

        void println(){
            System.out.print("Objet Circle :\n\tcentre : ");
            centre.print();
            System.out.println("\n\trayon : " + rayon);
        }
    }


    Point2D.java
    class Point2D {
        double

         x,y;Point2D(){x=y=0; }
        Point2D(double i, double j){ x=i;   y=j; }

        void print(){ System.out.print("[" + x + ", " + y + "]"); }
    }


    Vector2D.java
    class Vector2D {
        double

         x,y;Vector2D(){x=y=0; }
        Vector2D(double i, double j){ x=i;   y=j; }
    }


    et Start.java
    class Start {
        public static void main(String args[]){
            Circle c1=new Circle();
            Circle c2=new Circle(new Point2D(5,4),3);

            c1.println();   c2.println();
        }
    }


    Ils sont tous les quatre dans le même repertoire, je les compile, cela marche je les execute, cela fonctionne. Et justement ma question est là :euh: , comment le JDK fait ils por savoir ou chercher les fichiers Circle.java, Point2D.java et Vector.java (bien qu'ils soient dans le même repertoire ils n'y a nulle part marqué dans Strart.java que l'on les inclus :-° ). Voilà si vous pouviez me répondre ce serait sympas . Merci. :D
    • Partager sur Facebook
    • Partager sur Twitter
      5 juin 2006 à 2:09:41

      La réponse est simple, lorsque le compilateur rencontre l'instanciation d'un objet de type "circle" il cherche tout betement le fichier "circle.class" qui a normalement été produit lors de la compilation de "circle.java". Pour lui, un objet de type inconnu est défini dans le fichier .class portant le nom de l'objet. (en simplifiant).
      • Partager sur Facebook
      • Partager sur Twitter
        5 juin 2006 à 10:13:12

        void print(){ System.out.print("[" + x + ", " + y + "]"); }
        c'est mal ca :p
        Enfin, juste le nom ^^
        Il existe une méthode prédefinie dans Object de signature String toString() et qui renvoie la représentation en string de l'objet.
        public String toString() {
        return "[" + x + ", " + y + "]";
        }

        puis apres, quand tu fais un System.out.println(centre);, il va essayer lui même la fonction toString.
        • Partager sur Facebook
        • Partager sur Twitter
          5 juin 2006 à 12:20:39

          Point2D existe déja : il s'agit de <italic>java.awt.geom.Point2D.Double</italic> dans ton cas. De plus il n'y a aucune différence entre un vecteur 2D et un point 2D, en tout cas de base. Donc soit tu dis que l'un est une sous-classe de l'autre, soit l'un est inclus dans l'autre.

          Le compilateur cherche les classes dans le répertoire défini par Java, dans le PATH et dans le répertoire courant normalement.
          • Partager sur Facebook
          • Partager sur Twitter

          [JAVA] La POO

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown