davide92 Posted October 13, 2012 at 02:39 PM Report #478976 Posted October 13, 2012 at 02:39 PM (edited) Boas a todos, já fiz o programa em Java e está a correr tudo como é pedido. Mas agora tem de pôr em várias classes para o main não ficar muito grande, gostaria de saber tendo no ficheiro a.java a variavel double chocolate; como a posso ir "buscar/chamar" essa variavel para o b.java ? Já sei que terei de fazer algo deste genero para o ficheiro na main a method = new a(); Edited October 18, 2012 at 03:05 PM by davide92
DiogoAfonso Posted October 13, 2012 at 02:50 PM Report #478977 Posted October 13, 2012 at 02:50 PM Se o método que queres chamar for estático, não precisas criar uma instância do objecto. Basta fazer a.<nome_do_metodo> (sem os <>). Se for um método de instância, então terás de criar uma instância do objecto. Pegando no que tu tens -> a method = new a(); Fazes method.<nome_do_metodo> (sem os <>). Acho que é isso 😉
davide92 Posted October 13, 2012 at 02:52 PM Author Report #478978 Posted October 13, 2012 at 02:52 PM (edited) Faço do genero method.chocolate ? O que eu quero é agarrar na variavel chocolate e usar o valor que ela tem no b.java Edited October 13, 2012 at 03:00 PM by davide92
DiogoAfonso Posted October 13, 2012 at 03:41 PM Report #478980 Posted October 13, 2012 at 03:41 PM É melhor meteres o código completo 😉
davide92 Posted October 13, 2012 at 04:31 PM Author Report #478983 Posted October 13, 2012 at 04:31 PM (edited) Imaginemos que eu tenho este a.java import java.util.Scanner; public class a { /** * @param args */ public static void pergunta (String[] args) { int number = 0; Scanner teclado = new Scanner(System.in); System.out.println("Digite um número :"); number = teclado.nextInt(); double metade = number /2; System.out.println("Metade será :" + metade); } } e quero chamar a variavel metade para o b.java public class b { /** * @param args */ public static void paridade(String[] args) { pergunta method = new pergunta(); if ((metade % 2) == 0) { System.out.println("É par!"); } else { System.out.println("É impar!"); } } } de modo a ter uma main assim: public class Main { /** * @param args */ public static void main(String[] args) { pergunta method = new pergunta(); paridade method_2 = new paridade(); method.pergunta(); method_2.paridade(); } } Edited October 13, 2012 at 04:36 PM by davide92
DiogoAfonso Posted October 13, 2012 at 04:57 PM Report #478986 Posted October 13, 2012 at 04:57 PM Esse código não faz sentido. Antes de explicar como deverias fazer, poderias dizer-me quais são os teus conhecimentos de Java? Vejo que fazes alguma confusão nos conceitos!
davide92 Posted October 13, 2012 at 06:07 PM Author Report #478998 Posted October 13, 2012 at 06:07 PM Esse código não faz sentido. Antes de explicar como deverias fazer, poderias dizer-me quais são os teus conhecimentos de Java? Vejo que fazes alguma confusão nos conceitos! esquece aquela main so preciso de saber como posso chamar uma variavel de um lado para o outro se faz favor
DiogoAfonso Posted October 13, 2012 at 06:36 PM Report #479003 Posted October 13, 2012 at 06:36 PM Ok, tudo bem. Por mim, a solução seria import java.util.Scanner; public class a { public static double metade = 0; public static void pergunta() { int number = 0; Scanner teclado = new Scanner(System.in); System.out.println("Digite um numero"); number = teclado.nextInt(); metade = number/2; System.out.println("A metade será: "+metade); } } public class b { public static void paridade() { if ((a.metade % 2) == 0) System.out.println("É par"); else System.out.println("É impar"); } } public class App { public static void main(String[] args){ a.pergunta(); b.paridade(); } } Como te tinha dito se a variavel for de instancia, precisas de criar o objecto. Se for estática podes aceder a ele, consoante a visibilidade. Outra coisa, a classe de teste (que contém o método main) não a chames por Main, App é um nome plausivel 😉
davide92 Posted October 13, 2012 at 08:03 PM Author Report #479022 Posted October 13, 2012 at 08:03 PM Muito obrigado pela excelente ajuda eheh. A minha main tem agora 7 linhas como eu queria 😄 . Mais uma vez obrigado 😉
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now