Déclarer une variable sans déclarer son type ?

Résolu/Fermé
high_templar Messages postés 40 Date d'inscription jeudi 14 juin 2012 Statut Membre Dernière intervention 26 janvier 2017 - 6 oct. 2015 à 09:02
high_templar Messages postés 40 Date d'inscription jeudi 14 juin 2012 Statut Membre Dernière intervention 26 janvier 2017 - 7 oct. 2015 à 09:38
Bonjour à tous,

Je débute en Java/Android.

J'ai bien compris que pour pouvoir utiliser une variable, il fallait déclarer son type. Exemple :

int counter;
counter=1;

Existe-t-il une manière de procéder pour que la déclaration du type se fasse automatiquement ?

L'idée serait de faire quelque chose comme : "Toutes les variables déclarées ci-après seront du type int". Voyez-vous ce que je veux dire ?

Bien cordialement.

2 réponses

Nexii Messages postés 338 Date d'inscription jeudi 13 mars 2014 Statut Membre Dernière intervention 14 mars 2017 570
6 oct. 2015 à 10:08
Salut,

Cela ne fonctionne qu'avec des objets immuables, par exemple :
String toto, titi, tata;
toto = "foo";
titi= tata = "bar";


Donc cela ne fonctionnera pas dans cet exemple, où les variables pointent tous la même instance :
Voiture renault, citroen, peugeot;
renault = citroen = peugeot = new Voiture();

Il faut donc ici faire :
Voiture renault = new Voiture();
Voiture citroen = new Voiture();
Voiture peugeot = new Voiture();
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
6 oct. 2015 à 18:40
Bonjour,

Je ne suis pas d'accord avec la première partie de ta réponse sur les objets immuables (ou alors c'est une spécificité pour Android qui n'existe pas en Java).
Si c'est un objet on manipule sa référence, donc immuable ou pas c'est le même objet qui sera pointé par les deux variables.

On peut très bien faire :
Voiture renault = new Voiture(), citroen = new Voiture(), peugeot = new Voiture();

D'ailleurs rien ne permet de dire si Voiture est immuable ou non, c'est le genre de propriétés qui ne sont pas explicitables dans le code.
0
Nexii Messages postés 338 Date d'inscription jeudi 13 mars 2014 Statut Membre Dernière intervention 14 mars 2017 570
7 oct. 2015 à 08:56
En effet KX ma réponse était incomplète pour avancer que l'objet Voiture n'était pas immuable.

Ce que je voulais exprimer à travers cette réponse, était le fait que l'objet String, comme l'objet Integer entre autres, créait une nouvelle instance pour chaque nouvelle déclaration, contrairement à la classe Voiture qui, j'ai omis de préciser, est un objet muable/mutable ? (trop d'anglicismes dans notre langue française....) et donc ne pouvait se permettre d'utiliser les même instanciations.

Quand à Android je ne sais pas, je ne travaille pas sur cet environnement et je parlais bien ici de Java "pur" si je peux.
0
high_templar Messages postés 40 Date d'inscription jeudi 14 juin 2012 Statut Membre Dernière intervention 26 janvier 2017 1
7 oct. 2015 à 09:38
Merci beaucoup pour vos réponses.

J'ai encore un peu de mal à comprendre car je suis trop débutant.

J'ai finalement trouvé une solution alternative :

Je vais faire une déclaration du type de certaines variables directement dans les boucles de calcul dont j'ai besoin.

En tout cas, encore merci.

Bien cordialement.
0