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

Langage Java Discussion :

Constructeur protected


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Par défaut Constructeur protected
    Bonsoir,

    j'aimerai savoir si c'est bien d'utiliser un constructeur "protected" dans une classe. Mon prof a dit que c'est idiot mais j'ai trouvé ça sur ce site.
    Voilà la classe en question.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    public class Rectangle extends Polygone
    {
    	/// Constructeur à partir d’une liste de points prédéfinie
    	protected Rectangle (LinkedList<Point> listePoints)
    	{
    		super(listePoints) ;
    	}
     
    	/// Méthode statique pour tester la liste de points
    	public static Rectangle test (LinkedList<Point> listePoints)
    	{
    		if (listePoints.size() == 3)
    		{
    			Point point1 = listePoints.get(0);
    			Point point2 = listePoints.get(1);
    			Point point3 = listePoints.get(3);
    			int produitScalaire = (point1.lireAbscisse()-point2.lireAbscisse())*
    								  (point3.lireAbscisse()-point2.lireAbscisse())-
    								  (point1.lireOrdonnee()-point2.lireOrdonnee())*
    								  (point3.lireOrdonnee()-point2.lireOrdonnee()) ;
    			if (produitScalaire == 0)
    			{
    				Point point4 = new Point (point1.lireAbscisse() +
    										(point3.lireAbscisse() -
    										point2.lireAbscisse()),
    										point1.lireOrdonnee() +
    										(point3.lireOrdonnee() - 
    										point2.lireOrdonnee())) ;
    				listePoints.add(3, point4);
    				return(new Rectangle(listePoints)) ;
    			} else
    			{
    				return(null) ;
    			}
     
    		} else
    		{
    			System.out.println("Ceci n’est pas un rectangle") ;
    			return(null) ;
    		}
    	}
    }
    J'ai quand même une question. Comment créer un objet Rectangle avec ce type de classe (en passant par la méthode test).
    Merci de votre aide,

    Jean.

  2. #2
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 24
    Par défaut
    Ben il faut simplement que tu passes à ta méthode une LinkedList qui contient des objects Point. Un objet Point est simplement composé d'un attribut x et d'un attribut y. Donc il faudrait faire un truc du style:




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    		LinkedList list = new LinkedList();
    		list.add(new Point(0,0));
    		list.add(new Point(0,10));
    		list.add(new Point(10,0));
    et ensuite tu passes ta liste à la méthode qui calcule le quatrième point et te renvoie un Rectangle.

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 906
    Billets dans le blog
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    j'aimerai savoir si c'est bien d'utiliser un constructeur "protected" dans une classe. Mon prof a dit que c'est idiot mais j'ai trouvé ça sur ce site.
    Dans ce cas tu peux repondre ceci a ton prof :

    "je veux pouvoir utiliser ma classe partout, mais je desire uniquement l'instancier a partir de son package ou appeler le constructeur parent depuis une sous-classe dans un package quelconque."

    Ca peut etre utile nottement dans certains pattern comme la Factory seule l'usine permet la creation d'instances de cette classe.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. La meilleure protection contre le piratage des logiciels ?
    Par iubito dans le forum Débats sur le développement - Le Best Of
    Réponses: 184
    Dernier message: 23/12/2008, 13h35
  2. Réponses: 7
    Dernier message: 18/10/2005, 12h50
  3. [VB6] cryptage et protection de fichier INI
    Par khany dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 21/10/2003, 09h38
  4. pb constructeurs classes dérivant classe abstraite
    Par Cornell dans le forum Langage
    Réponses: 2
    Dernier message: 10/02/2003, 19h02
  5. [VBA-E] [Excel] Protection d'une plage de cellules
    Par fikou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/11/2002, 11h28

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