2012-05-07 4 views
1

Cela devrait être relativement simple, mais je suis submergé d'informations SQL chaque fois que je recherche de l'aide avec cela.Java True Global Variables (Eclipse pour Android)

Fondamentalement, j'ai 3 classes et ils génèrent chacun un nombre et je veux obtenir le nombre total à la fin. Est-il possible de créer une variable à laquelle les 3 classes peuvent ajouter sans générer de base de données SQLite?

exemple

  • Page1.java crée 5 -> ajoute à Total

  • Page2.java crée 12 -> ajoute à Total

  • Page3.java crée 10 -> ajoute à Total

  • Page4.java opens total

Comme je l'ai dit, c'est probablement un problème simple mais SQLite domine mes recherches.

J'espère que vous pouvez aider, merci.

+0

Quel est votre contexte ici? Courent-ils dans la même application? Peut-on accéder aux instances des 3 classes à partir d'un lieu commun? – musaul

Répondre

2

Vous pouvez utiliser une variable statique pour cela. Si vous ne vous souciez pas de l'encapsulation, vous pouvez même utiliser une seule variable statique publique à cette fin.

Exemple:

private static int mCounter = 0; 

public static void addToCounter(int i) 
{ 
    mCounter += i; 
} 

public static int getCount() 
{ 
    return mCounter; 
} 
+0

Eclipse a un problème avec tout et sa solution est de tout renommer afin que rien ne soit lié. Je suis encore en train de me familiariser avec Java et je n'ai aucune idée de comment je pourrais implémenter cela sur plusieurs pages. –

+0

Trié, Merci beaucoup! –

0

Qu'est-ce que vous pourriez faire serait d'avoir une valeur privée, par exemple, dans chaque private int count de votre classe et son getter respective. Vous auriez alors également une méthode dans chaque classe, disons, public void doSomething(){... count = ...}.

Une fois que vous avez tout cela, dans Page4 vous pourriez faire quelque chose comme:

public class Page4 { Page1 pg1 = new Page1(); Page2 pg2 = new Page2(); Page3 pg3 = new Page3();

pg1.doSomething(); 
pg2.doSomething(); 
pg3.doSomething(); 

int total = pg1.getCount() + pg2.getCount() + pg3.getCount(); 

}

D'autre part, vous pouvez passer à une variable entière à la classe qui obtient modifié et transmis à la classe suivante. Vous pouvez également transmettre une référence à une classe qui contient le compteur réel, et une fois que chaque classe (Page1, Page2 ...) a terminé de faire ce dont elle a besoin, elle référencerait simplement cette classe et mettrait à jour la valeur elle-même .

0

Ce n'est pas très clair comment vous appelez vos cours.

Cependant, si vous avez seulement 3 classes simples et un endroit pour appeler les classes, vous pouvez passer votre variable entre les classes et y ajouter les valeurs.

public class Page1 { 

    public void addToVariable(int var) { 
    var = var + 5; 
    } 
} 

public class Page2 { 

    public void addToVariable(int var) { 
    var = var + 12; 
    } 
} 
... 

Et puis appeler les méthodes de la classe avec votre variable:

int yourVariable = 0; 
Page1 p1 = new Page1(); 
Page2 p2 = new Page2(); 

p1.addToVariable(yourVariable); 
p2.addToVariable(yourVariable); 

yourVariable tiendra le total que vous recherchez.