Portée d'une variable / Java

macErmite a dit:
J'ai essayé cet exemple :

public static void conjugaisonObjet(double onde, double apositionObjet,int aposition){

(...)

double[] conteneurPositionImageInverse = Positions_des_images(aposition,apositionObjet);

(...)

}

public static double Positions_des_images(int aposition,double apositionObjet){

(...)
double positionImageInverse [] = new double [rAposition+1];
(...)
return positionImageInverse;
}

Xcode me retourne : incompatible types :confused: :confused:
fais un peu attention a ce que tu fais

double positionImageInverse [] = new double [rAposition+1];

-> regarde bien

int[] mValue ;
mValue= new int[10];

tu assignes double à double[]

tu confonds le type et l'adresse
 
double[] tab=new double[100]; // double positionImageInverse []

la tu l'as la voie :) elle va partir :D

pour aller plus loin :

Double[] tab=new Double[100];
Double d=new Double(x);
tab=d;

double[] tab=new double[100];
double d=new Double(x);
tab=d;

double[] tab=new double[100];
double d=x;
tab=d.doubleValue();

!!!!!
il y a une difference entre double et Double pour Java < 5
les primitives ne sont pas des objets
 
tatouille a dit:
double positionImageInverse [] = new double [rAposition+1];

double[] positionImageInverse = new double [rAposition+1];

alors la paf le taquet :D


Je croyais que les syntaxes suivantes étaient équivalentes :

double positionImageInverse [] = new double [rAposition+1];
ou
double []positionImageInverse = new double [rAposition+1];
ou
double positionImageInverse [] ;
positionImageInverse = new double [rAposition+1];
ou
double []positionImageInverse ;
positionImageInverse = new double [rAposition+1];

non ?
 
Toutes ces versions ont fait l'objet d'une vérification, elles fonctionnent toutes sans aucun problème. Je pense que le soucis lié à la méthode return doit se situer ailleurs. Même si il s'agit bien de définir correctement soit les variables et ou soit les méthodes utilisées.

(Pour info, j'utilise la version 1.5)
 
Bloc de code:
public static String[] splitString(String s)
{
    StringTokenizer tok = new StringTokenizer(s);
    Vector v = new Vector();
    String[] splitted;

    while(tok.hasMoreTokens())
        v.addElement(tok.nextToken());
    splitted = new String[v.size()];
    v.copyInto(splitted);
    
    return splitted;
}

public static double[] GetDoubleFromString(String s)
{
    String[] piece = splitString(s);
    double[] arr = new double[piece.length];

    for(int i = 0; i < arr.length; i++)
        arr[i] = (new Double(piece[i])).doubleValue();
    
    return arr;
}

public static int[] GetIntFromString(String s)
{
    String[] piece = splitString(s);
    int[] arr = new int[piece.length];

    for(int i = 0; i < arr.length; i++)
        arr[i] = Integer.parseInt(piece[i]);
    
    return arr;
}

il n' ya aucun probleme de type mais des erreurs :)
 
En reprenant l'exemple d'origine, je me suis rendu compte qu'il y avait un oublie : les [] :mad:

public static void conjugaisonObjet(double onde, double apositionObjet,int aposition){

(...)

double[] conteneurPositionImageInverse = Positions_des_images(aposition,apositionObjet);

(...)

}

public static double[] Positions_des_images(int aposition,double apositionObjet){

(...)
double positionImageInverse [] = new double [rAposition+1];
(...)
return positionImageInverse;
}

Maintenant cela fonctionne, je peux enfin allé me coucher :sleep: