Visibilité package en java

Visibilité package en java - Java - Programmation

Marsh Posté le 15-03-2013 à 11:20:56    

bonjour tout le monde,
 
je veux déclarer une variable de manière à ce qu'elle soit visible dans tout un package , est ce que ceci est possible ??
 
merci bcp

Reply

Marsh Posté le 15-03-2013 à 11:20:56   

Reply

Marsh Posté le 15-03-2013 à 11:25:58    

Reply

Marsh Posté le 15-03-2013 à 11:32:27    

Merci bcp pour cette réponse rapide mais ce n'est pas ce que je cherche.
 le mot clé ptotected limite l'accès à un package bien determiné . moi par contre je veux déclarer une variable String par exemple une seule fois et l'utiliser dans n'importe quelle classe de mon package.

Reply

Marsh Posté le 15-03-2013 à 12:22:32    

Soit tu veux que des sous classes  héritent d'une "super classe" en en particulier d'un attribut String.
Tu dois trouver un tutoriel sur "java classes extends".
 
Exemple une classe Voiture extends Vehicule avec la classe Vehicule qui a un attribut "String immatriculation".
Donc l'instance de voiture a une immatriculation même si l'attribut est déclaré dans Vehicule.
 
Soit tu veux partager une valeur (exemple une valeur partagée pour ton appli) entre toutes les classes  
 
-> attribut public static d'une classe dédiée
 
public class Valeurs {
  public static final String ASAP= "as soon as possible";
}
 
(final ca veut dire que la valeur est figée non modifiable)
 
-> ou attribut d'une une interface de constantes ...  
 
http://www.javapractices.com/topic [...] n.do?Id=32


Message édité par willy le kid le 15-03-2013 à 12:26:57
Reply

Marsh Posté le 15-03-2013 à 12:44:07    

Oui je connais très bien l'heritage en java mais je sais pas si ca va régler mon problème. je t'explique un peu ce que je vaux faire:
 
j'ai une classe Storage et une autre SNMPget. Je veux lorsque j'instancie un objet de la classe Storage( dans la méthode main de cette même classe)  les intastances de SNMPget  s'exécutent avec les valeurs des attributs de Storage.
 
voici le code pour que tu voix de quoi il s'agit
 
 public static void main(String[] args) throws Exception {
        Storage s=new Storage(address ip, communauté);    
        SNMPget AS_Peer = new SNMPWalk(peerAS,new File("/root/Desktop/peerAS" ),"=" );
        SNMPget IP_Peer=new SNMPWalk(peerAddr,new File("/root/Desktop/peerIP" ),"=" );
    }
 
je ne sais pas comment réaliser ca sans avoir à instancier un objet de la classe Storage dans la classe SNMPget.
 
merci pour ton aide

Reply

Marsh Posté le 15-03-2013 à 13:05:40    

Tu passes l'instance de Storage comme paramètre dans le constructeur de SNMPWalk .
 

Code :
  1. public class SNMPWalk {
  2.   public SNMPWalk(String sPeerAs, File fFile, String sChar, Storage storage){
  3.   // tu peux utiliser storage.getAdress(), storage.getIp() ....
  4.   }


 
 
Et pour l'instanciation depuis Storage
 


public static void main(String[] args) throws Exception {
        Storage s=new Storage(address ip, communauté);    
        SNMPget AS_Peer = new SNMPWalk(peerAS,new File("/root/Desktop/peerAS" ),"=", s );
}  


Message édité par willy le kid le 15-03-2013 à 13:07:55
Reply

Marsh Posté le 15-03-2013 à 14:18:26    

ta méthode me renvoi en exception car le fait de déclarer un object Storage dans l'entête de SNMPwalk ne permet pas d'instancier cet objet. Donc lorsque je veux accèder aux methodes getIP, getAdress, la classe SNMP walk ne les reconnait pas.
 
voila la solution que j'ai trouvé:
 
j'ai ajouté dans l'entête de SNMPwalk adressé IP et communauté puis j'ai ajouté ce code dans la classe storage
 
public Storage (String routerAddr, String community) throws Exception  // c'est le constructeur
  {  
        this.routerAddr=routerAddr;
        this.community=community;
        SNMPWalk AS_Peer = new SNMPWalk(routerAddr,community, peerAS,new File("/root/Desktop/peerAS" ),"=" );
        SNMPWalk IP_Peer=new SNMPWalk(routerAddr, community,peerAddr,new File("/root/Desktop/peerIP" ),"=" );
  }  
 
maintenant il suffit d'excéuter ce main
 
public static void main(String[] args) throws Exception {
        Storage s=new Storage("10.53.3.150/161", "INTERNET@orange" );    
       
    }
 
les valeurs passé en paramètres dans l'instance s sont automatiquement passés à SNMPwalk  
 
voilà. mais merci bcp pour ton aide quand même.
comment déclarer un sujet comme résolu???

Reply

Marsh Posté le 15-03-2013 à 14:29:37    

bloomingdals a écrit :

ta méthode me renvoi en exception car le fait de déclarer un object Storage dans l'entête de SNMPwalk ne permet pas d'instancier cet objet. Donc lorsque je veux accèder aux methodes getIP, getAdress, la classe SNMP walk ne les reconnait pas.


 
Sais tu ce qu'est un getter et un setter ?
http://www.developpez.net/forums/d [...] ters-java/
 
Il faut que tu commences par les bases, tu es en train de prendre de mauvaises habitudes de dev ...

Reply

Marsh Posté le 15-03-2013 à 14:34:32    

oui je connais les getter et les setter. mais pk crois tu que ces de mauvaises habitudes???

Reply

Marsh Posté le 15-03-2013 à 14:58:40    

c'est vrai c'est bcp plus élégant avec les getter et les setter j'ai utilisé ta méthode et ça fonctionne
 
merci pour le conseil.

Reply

Marsh Posté le 15-03-2013 à 14:58:40   

Reply

Marsh Posté le 17-03-2013 à 12:15:39    

Cela n'a rien à voir avec de l'élégance, au contraire.


---------------
http://devicenotready.com/ - Informatique et autres bizarreries
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed