A voir également:
- Private public static
- Navigation in private - Guide
- Google public dns - Guide
- Mon ip public - Guide
- Private proxy wingate.me - Forum Réseaux sociaux
- Identifiant public ea exemple - Forum Webmastering
5 réponses
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
18 janv. 2011 à 12:34
18 janv. 2011 à 12:34
un membre de classe static est propre à la classe et non à l'objet.
Si c'est une variable, ça veux dire qu'elle n'a qu'une valeur pour tout les objets.
exemple :
class A{ int i=0;static int j=0;}
A o1,o2;
o1.i+=1; // i==1
o1.j+=1;// j==1
o2.i+=1;// i==1
o2.j+=1;// j==2
L'utilisation dans les autres classes n'a rien a voir avec.
Si c'est une variable, ça veux dire qu'elle n'a qu'une valeur pour tout les objets.
exemple :
class A{ int i=0;static int j=0;}
A o1,o2;
o1.i+=1; // i==1
o1.j+=1;// j==1
o2.i+=1;// i==1
o2.j+=1;// j==2
L'utilisation dans les autres classes n'a rien a voir avec.
KX
Messages postés
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
Modifié par KX le 18/01/2011 à 12:51
Modifié par KX le 18/01/2011 à 12:51
Pour la déclaration d'une variable static, voir le commentaire de CharSnipeur
Remarque pour reprendre son exemple, il est usuel en Java d'utiliser la notation A.i et A.j plutôt que d'instancier un objet o1 et de manipuler o1.i, o1.j...
C'est à peu près pareil pour les méthodes. Une méthode est static quand elle n'est liée à aucun objet, dans ce cas on peut directement utiliser A.maMethode()
L'exemple classique est la méthode static main.
Evidemment les déclarations public, private, protected et "friendly" (quand on ne précise aucun des trois) auront une incidence sur quand on aura le droit d'utiliser A.maMethode, A.i, et A.j
La confiance n'exclut pas le contrôle
Remarque pour reprendre son exemple, il est usuel en Java d'utiliser la notation A.i et A.j plutôt que d'instancier un objet o1 et de manipuler o1.i, o1.j...
C'est à peu près pareil pour les méthodes. Une méthode est static quand elle n'est liée à aucun objet, dans ce cas on peut directement utiliser A.maMethode()
L'exemple classique est la méthode static main.
Evidemment les déclarations public, private, protected et "friendly" (quand on ne précise aucun des trois) auront une incidence sur quand on aura le droit d'utiliser A.maMethode, A.i, et A.j
La confiance n'exclut pas le contrôle
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
18 janv. 2011 à 13:48
18 janv. 2011 à 13:48
attention, j'ai mis "i" en non statique, d'où l'utilisation de o1. Mon but étant de montrer la différence entre statique et non statique.
ce que j ai compris que,quand on declare une methode en static on peut pas l'utiliser a l exterieur de la class n est ce pas ??
et pour utiliser une methode d'une classe dans une autre il faut la declarer soit public soit private mais il faut faire les get et les set ??
merci pour les reponse
et pour utiliser une methode d'une classe dans une autre il faut la declarer soit public soit private mais il faut faire les get et les set ??
merci pour les reponse
KX
Messages postés
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
18 janv. 2011 à 13:06
18 janv. 2011 à 13:06
Si ! On peux utiliser une méthode static en dehors de la classe ou elle est définie, à condition qu'elle soit déclarée public (exemple : la méthode main), protected et utilisée par des classes filles, ou friendly et utilisés dans le même package.
Prends par exemple, les méthodes static de la classe Math : Math.sqrt, Math.pow...
Par contre les méthodes get et les set ne seront pas static, leurs valeurs dépendent de l'objet courant !
Prends par exemple, les méthodes static de la classe Math : Math.sqrt, Math.pow...
Par contre les méthodes get et les set ne seront pas static, leurs valeurs dépendent de l'objet courant !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ce que j ai compris apres avoir faire un test :
que l avantage de declarer une methode static c est qu'on peut l'utiliser sans besoin d' instancier la class ou elle se trouve dedans.
public class principale
{
public static void main(String[] args){
Personne personne1 = new Personne(19,"kii","koo");
System.out.println(personne1.afficher());
int nombre = 2;
int nombre3;
nombre3 = calculer.calculer1(nombre);
System.out.println(nombre3);
}
}
la deuxieme :
public class Personne
{
private int age;
private String nom;
private String prenom;
public Personne(){
age=0;
nom = " ";
prenom =" ";
}
public Personne(int pAge,String pNom,String pPrenom){
age = pAge;
nom = pNom;
prenom = pPrenom;
}
public int getAge(){
return age;
}
public String getPrenom(){
return prenom;
}
public String getNom(){
return nom;
}
public void setAge(int pAge){
age = pAge;
}
public void setPrenom(String pNom){
nom =pNom;
}
public void setNom(String pPrenom){
prenom = pPrenom;
}
public String afficher(){
return nom + prenom + age;
}
la troixiéme :
public class calculer
{
// instance variables - replace the example below with your own
int nn = 13;
public static int calculer1(int pNombre){
return pNombre+2+ nn;
}
}
que l avantage de declarer une methode static c est qu'on peut l'utiliser sans besoin d' instancier la class ou elle se trouve dedans.
public class principale
{
public static void main(String[] args){
Personne personne1 = new Personne(19,"kii","koo");
System.out.println(personne1.afficher());
int nombre = 2;
int nombre3;
nombre3 = calculer.calculer1(nombre);
System.out.println(nombre3);
}
}
la deuxieme :
public class Personne
{
private int age;
private String nom;
private String prenom;
public Personne(){
age=0;
nom = " ";
prenom =" ";
}
public Personne(int pAge,String pNom,String pPrenom){
age = pAge;
nom = pNom;
prenom = pPrenom;
}
public int getAge(){
return age;
}
public String getPrenom(){
return prenom;
}
public String getNom(){
return nom;
}
public void setAge(int pAge){
age = pAge;
}
public void setPrenom(String pNom){
nom =pNom;
}
public void setNom(String pPrenom){
prenom = pPrenom;
}
public String afficher(){
return nom + prenom + age;
}
la troixiéme :
public class calculer
{
// instance variables - replace the example below with your own
int nn = 13;
public static int calculer1(int pNombre){
return pNombre+2+ nn;
}
}