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

avec Java Discussion :

Comment affecter des classes internes


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 156
    Par défaut Comment affecter des classes internes
    Bonjour!

    Je cherche à améliorer certaines de mes compétences par thèmes et j'étudie aujourd'hui l'affectation et les classes internes.

    J'ai un code ou sont présentes des classes Vehicule et des classes Tourisme qui sont des sous classes de la classes Transport. La classe Véhicule a la classes interne Moteur et Carrosserie. La classe Moteur a un constructeur et la classe Carosserie (l'erreur d’orthographe est originale) n'en a pas.

    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
    public class CC15Ex3 {
    	public static void main(String[] args){
    		Vehicule t1 = new Tourisme(10,90);
    	}
     
    }
     
    class Transport{
    	int no;
    	int annee;
    }
     
    class Vehicule extends Transport{
    	int puissance;
    	String couleur;
    	public String toString(){
    		return "Vehicule no " + no +" puissance "+puissance;
    	}
    	Moteur mot;
    	static class Moteur{
    		static int annee;
    		int no;
    		int kilometrage;
    		static int noC=100;
    		static int puissance =90;
    		Moteur(){
     
    		}
    		public String toString(){return "Moteur no" + no+" km "+ kilometrage+ "puiss" + puissance +" année "+ annee;}
    	}
    		class Carosserie{
    			String couleur;
    		}
    }
     
    class Tourisme extends Vehicule{
    	String marque;
    	Tourisme(int n, int p){
    			no=n;			
    	}
    }
    Après avoir
    • créé uns instance de Moteur m1
    • une instance Carrosserie de c1 (que j'ai instancié en Carosserie pour suivre le code donné).



    Je cherche désormais à
    1. affecter la valeur 100 à no de m1
    2. affecter le numéro m1 au numéro de t1
    3. affecter 2015 à l'attribut annee de Mteur
    4. affecter à t1 la puissance de m1


    J'ai donc fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	class CC15Ex3 {
    	public static void main(String[] args){
    		Moteur m1 = new Vehicule.Moteur();
    		Vehicule t1 = new Tourisme(10,90);
    		Carrosserie c1= t1.Carosserie;
    		m1.no = 100;
    		t1.no=m1.no;
    		m1.annee = 2015;
    		t1.puissance = m1.puissance;
    	}
     
    }
     
    	}
    Mais il semblerait que ce soit un peu plus compliqué que cela... En effet j'obtiens sur Ideone.com:

    Main.java:1: error: class CC15Ex3 is public, should be declared in a file named CC15Ex3.java
    public class CC15Ex3 {
    ^
    Main.java:3: error: cannot find symbol
    Moteur m1 = new Vehicule.Moteur();
    ^
    symbol: class Moteur
    location: class CC15Ex3
    Main.java:5: error: cannot find symbol
    Carrosserie c1= t1.Carosserie;
    ^
    symbol: class Carrosserie
    location: class CC15Ex3
    Main.java:5: error: cannot find symbol
    Carrosserie c1= t1.Carosserie;
    ^
    symbol: variable Carosserie
    location: variable t1 of type Vehicule
    4 errors

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    Bonjour,

    je penses que tu pars sur les classes internes alors qu'il y a d'autres sujets plus important que tu ne maitrise pas :
    - la notion d'objet (polymormisme, heritage, encapsulation, ...)
    - la notion de porté (public, private, ...)
    - la notion d'import (les packages)

    consulte les tutos pour appréhender ses notions

    Pour ce qui est des erreurs que tu as regarde la réponse que j'ai donnée dans ton autre discussion

    et pour cette erreur :
    Main.java:1: error: class CC15Ex3 is public, should be declared in a file named CC15Ex3.java
    C'est tout simplement que la classe public est CC15Ex3 mais tu as mis tout ton code dans un fichier java qui n'est pas CC15Ex3.java
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Comment instancier des classes internes?
    Par AntoineCompagnie dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 21/12/2015, 15h38
  2. Réponses: 2
    Dernier message: 01/02/2006, 15h02
  3. comment utilisé des classes toute prêtes
    Par Burinho dans le forum Langage
    Réponses: 3
    Dernier message: 23/01/2006, 22h18
  4. [debutant] Comment ajouter des .class ?
    Par Slein dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 30/04/2004, 14h30
  5. [SWT] Comment faire des fenetres internes ??????
    Par sebounator dans le forum SWT/JFace
    Réponses: 5
    Dernier message: 22/04/2004, 01h12

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