Méthode main...,classe public ... ???
Fermé
seljazou
Messages postés
175
Date d'inscription
dimanche 6 septembre 2009
Statut
Membre
Dernière intervention
25 décembre 2009
-
7 déc. 2009 à 15:53
Sov - 9 déc. 2009 à 11:39
Sov - 9 déc. 2009 à 11:39
A voir également:
- Méthode main...,classe public ... ???
- Bagage à main - Guide
- Google public dns - Guide
- Retrouver photo de classe gratuitement - Forum Réseaux sociaux
- Ou peut-on retrouver d'anciennes photos d'école et d'anciens élèves ? ✓ - Forum Loisirs / Divertissements
- Julia s'est fait pirater son compte sur un réseau social. son mot de passe de 8 caractères était facile à deviner à partir des informations que tout le monde peut consulter en ligne sur son profil public. vous devez trouver son mot de passe pour découvrir qui veut devenir l'ami de julia. voici sa page de profil public et le lien pour accéder au réseau social. ✓ - Forum Vos droits sur internet
4 réponses
varfendell
Messages postés
3256
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
699
7 déc. 2009 à 20:37
7 déc. 2009 à 20:37
Bonjour,
Je peut t'apporter une réponse a une de tes question, enfin j'espère:
tes classes ne possèdent pas obligatoirement une méthode main. En faite quand tu créer un programme, tu créer plusieurs classes et une seul aura une méthode main.
Mais tu peut aussi ne créer qu'une seul classe avec juste une méthode main. Cependant pour être un bon programmeur et pour la clarté du code, il faut savoir décomposer chaque étape du programme.
C'est pourquoi en général tu créer une classe test ou lanceur qui contient une méthode main qui lancera les autre classe en fonction des besoins.
Les constructeur sont nécessaire lorsqu'on créer une classe.
Un exemple simple: tu a une classe Lanceur qui contient une méthode main() et une classe Addition qui contient un constructeur addition().
Dans la classe Lanceur, la méthode main créer une nouvelle classe Addition() qu'elle nomme ad1. ad1 est donc une variable de type Addition, et par défaut elle exécute la méthode addition() de la classe Addition.
C'est pourquoi on a toujours besoin d'un constructeur dans une classe car c'est le code qui est exécuté a sa création. (La plupart du temps on utilise des constructeur vide qui servent juste a créer la classe et ainsi utiliser les autre méthode qu'elle propose.
dsl pour les fautes d'orthographe
Je peut t'apporter une réponse a une de tes question, enfin j'espère:
tes classes ne possèdent pas obligatoirement une méthode main. En faite quand tu créer un programme, tu créer plusieurs classes et une seul aura une méthode main.
Mais tu peut aussi ne créer qu'une seul classe avec juste une méthode main. Cependant pour être un bon programmeur et pour la clarté du code, il faut savoir décomposer chaque étape du programme.
C'est pourquoi en général tu créer une classe test ou lanceur qui contient une méthode main qui lancera les autre classe en fonction des besoins.
Les constructeur sont nécessaire lorsqu'on créer une classe.
Un exemple simple: tu a une classe Lanceur qui contient une méthode main() et une classe Addition qui contient un constructeur addition().
Dans la classe Lanceur, la méthode main créer une nouvelle classe Addition() qu'elle nomme ad1. ad1 est donc une variable de type Addition, et par défaut elle exécute la méthode addition() de la classe Addition.
C'est pourquoi on a toujours besoin d'un constructeur dans une classe car c'est le code qui est exécuté a sa création. (La plupart du temps on utilise des constructeur vide qui servent juste a créer la classe et ainsi utiliser les autre méthode qu'elle propose.
dsl pour les fautes d'orthographe
varfendell
Messages postés
3256
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
699
7 déc. 2009 à 21:36
7 déc. 2009 à 21:36
c'est simple, les constructeurs ne servent à rien s'il ne sont pas initialisé, et sa commence avec la méthode main. Après un constructeur peut en initialiser un autre etc, mais sans constructeur, on ne pourrait pas instancier une classe.
Il n'y a pas de rapport avec la méthode main en faite, c'est juste qu'au départ, pour être exécuter, un programme a besoin d'une méthode main dans une classe.
Pour tester le programme avec des valeurs bien précise, on créer une classe main dans une classe Test par exemple.
Il n'y a pas de rapport avec la méthode main en faite, c'est juste qu'au départ, pour être exécuter, un programme a besoin d'une méthode main dans une classe.
Pour tester le programme avec des valeurs bien précise, on créer une classe main dans une classe Test par exemple.
1°/
Une méthode main() est un point d'entrée dans un programme. C'est elle que tu vas appeler implicitement en essayant d'exécuter ton code. Pour mieux comprendre, essaye de lancer un programme simple que tu aurais écris avec la commande -java que t'offres le JDK ou le JRE.
En faisant ceci, tu invoques la méthode main() situé dans le fichier MaClass.class, qui doit en toute logique se trouver dans la class MaClass. Les différents paramètres que tu peux déclarer à la suite de ta commande seront récupérables dans le fameux tableau de String args[] de ta méthode main().
Tu peux avoir plusieurs points d'entrée (ie plusieurs méthodes main()) dans ton programme, mais tu ne peux trouver deux méthodes main() dans la même classe et fichier. Ce qui est somme toute logique une fois que tu as compris ce qui a été exposé ci-dessus. Lors de l'exécution de ta commande -java, il ne doit pas y avoir d'ambiguïté sur la méthode main() à appeler.
2° /
Il existe 4 mot clé définissant la visibilité et l'accès aux var/method/class : public, protected, private et friendly (alias muet). Lorsque tu omet ces mots clefs, c'est le muet (friendly) qui est utilisé. Une var/method/class friendly est accessible par toutes les classes du package (indisponible pour le reste).
Tu peux tout à fait définir plusieurs Class public dans le même fichier, tant que tu n'oublies pas de déclarer une Class qui porte le même nom que le fichier .class que tu écris. Pour faire cela, il te suffit de faire quelque chose de ce genre :
Neanmoins, il est fortement recommandé d'éviter l'accumulation de définition de Class dans le même fichier sauf pour bonne raison (innerclass, enum privée, etc).
3° /
-java va doucement te montrer la porte avec un notFoundMethod ou une Exception de ce genre.
Une méthode main() est un point d'entrée dans un programme. C'est elle que tu vas appeler implicitement en essayant d'exécuter ton code. Pour mieux comprendre, essaye de lancer un programme simple que tu aurais écris avec la commande -java que t'offres le JDK ou le JRE.
c:>docs\blabla\ -java MaClass.class
En faisant ceci, tu invoques la méthode main() situé dans le fichier MaClass.class, qui doit en toute logique se trouver dans la class MaClass. Les différents paramètres que tu peux déclarer à la suite de ta commande seront récupérables dans le fameux tableau de String args[] de ta méthode main().
Tu peux avoir plusieurs points d'entrée (ie plusieurs méthodes main()) dans ton programme, mais tu ne peux trouver deux méthodes main() dans la même classe et fichier. Ce qui est somme toute logique une fois que tu as compris ce qui a été exposé ci-dessus. Lors de l'exécution de ta commande -java, il ne doit pas y avoir d'ambiguïté sur la méthode main() à appeler.
2° /
Il existe 4 mot clé définissant la visibilité et l'accès aux var/method/class : public, protected, private et friendly (alias muet). Lorsque tu omet ces mots clefs, c'est le muet (friendly) qui est utilisé. Une var/method/class friendly est accessible par toutes les classes du package (indisponible pour le reste).
Tu peux tout à fait définir plusieurs Class public dans le même fichier, tant que tu n'oublies pas de déclarer une Class qui porte le même nom que le fichier .class que tu écris. Pour faire cela, il te suffit de faire quelque chose de ce genre :
import java.util.*; public MaClass { // du code } public MaDeuxiemeClass { // du code }
Neanmoins, il est fortement recommandé d'éviter l'accumulation de définition de Class dans le même fichier sauf pour bonne raison (innerclass, enum privée, etc).
3° /
-java va doucement te montrer la porte avec un notFoundMethod ou une Exception de ce genre.
seljazou
Messages postés
175
Date d'inscription
dimanche 6 septembre 2009
Statut
Membre
Dernière intervention
25 décembre 2009
1
8 déc. 2009 à 17:00
8 déc. 2009 à 17:00
ok.
compris !
mais pour le 2, j'ai pas bien compris. si dans une fichier MaClasse on definit une classe public MaClasse et une autre public AutreClasse, si on veut avoir accès aux méthodes et attributs de AutreClasse2, on fait comment?
compris !
mais pour le 2, j'ai pas bien compris. si dans une fichier MaClasse on definit une classe public MaClasse et une autre public AutreClasse, si on veut avoir accès aux méthodes et attributs de AutreClasse2, on fait comment?
Comme toute classe Java : Tu l'instancie ou tu fais appel à ses champs/méthodes statiques.
// instanciation
MaDeuxiemeClass toto = new MaDeuxiemeClass();
// appel de méthode
toto.clone();
// appel de méthode et récupération d'un champs privé avec accesseur
String totoName = toto.getClassName();
// appel de méthode static
MaDeuxiemeClass.init();
// instanciation
MaDeuxiemeClass toto = new MaDeuxiemeClass();
// appel de méthode
toto.clone();
// appel de méthode et récupération d'un champs privé avec accesseur
String totoName = toto.getClassName();
// appel de méthode static
MaDeuxiemeClass.init();
7 déc. 2009 à 21:32
Mais pour les constructeurs, je croyais que leur role c initialiser les objets qu'on instancie, non? je ne vois pas le rapport avec la méthode main!!!