Gostaria de saber quem pode me ajudar, pois estou em dúvida com relação a passagem de parametros. Em um exercicio existe a passagem de parametros public class Prova (I obj), sendo que I é o nome de uma interface criada, e implementada em outra classe. Nessa classe prova, preciso colocar um algoritmo que fa uma troca de dois numeros. Esse algoritmo eu já sei como é, só num sei como esse tipo de passagem de parametro (I obj) funciona. Aguém tem alguma ideia?
É preciso saber o que essa interface faz… tem como você dizer aí???
Cara tua dúvida tá mal explicada.
isso é um método?
Métodos recebem paramentros, contrutores de classes recebem parametros.
Esse I é uma interface, como vc vai usa-la em seu algoritimo de troca de números?
Tá difícil ajudar… tem que explicar melhor…
Pessoal, desculpa.
Isso é um exercício de faculdade onde eu devo completar o que está faltando no código, para que o programa faça uma troca de dois números um pelo outro. Onde está escrito “complete aqui”, dentro da classe Prova, é onde eu devo completar o código. Já imagino que ali deva entrar o algoritmo que faz a troca dos números, mas a minha dúvida é como funciona essa passagem de parametos “(I obj)”, como ele faz no método “troca”.
A outra classe que deve ser completada, a classe Cliente que implementa I, eu já fiz, eu só num sei como funciona esse tipo de passagem (I obj), que eu nunca vi. Devo ter faltado a essa aula… Se puderem me ajudar…
Vejam o código:
class Prova {
public static void troca(I obj) {
// complete aqui
}
}
interface I {
public int getX();
III
public int getY();
public void setX(int x);
public void setY(int y);
}
public class Cliente implements I {
private int x;
private int y;
// complete aqui
}
class Teste {
public static void main(String args[]) {
Cliente c = new Cliente();
c.setX(7);
c.setY(4);
Prova.troca©;
System.out.println(c.getX() + ", " + c.getY());
Cara isso é conceito de OO. O método troca recebe qualquer Objeto do tipo I, qualquer obj que implementar I é um tipo de I. Quando uma class concreta implenta uma interfa ela tem que obrigatoriamente implementar todos os métodos da interface. Implementar uma interface é como assinar um contrato, a class concreta que implementa DEVE implentar seus métodos.
Voltando ao método troca que recebe um obj do tipo I. Se o parametro é do tipo I ele implenta os métodos
public int getX();
public int getY();
public void setX(int x);
public void setY(int y);
Para fazer a troca provavelmente vc terá que colocar os valores de X no Y e os do Y no X.
Lembrando que cliente Implementa I.
Creio que com essa direção já da para fazer…
Valeu
caramba!!! então deixa ver se eu entendi…
então, nesse caso o objeto “c” criado na classe Teste, chama dos metodos e atribui valores para x e y, aí 7 e 4. E chama o metodo prova, passando como parametro “c”, que é como o método foi escrito, que é um objeto do tipo I. Então na classe Prova, eu devo completar, pura e simplesmente com um código que possui um algoritmozinho de troca. Assim, mais ou menos?
class Prova {
public static void troca(I obj) {
private int x;
private int y;
private int memo; //variavel para a troca
memo=x;
x=y;
y=x;
}
}
obrigado pela força
abç
Amigo,
Me inscrevi neste forum justamente para poder responder sua pergunta. Segue abaixo:
public class Prova{
public static void troca (I obj){
int aux;
aux = obj.getX();
obj.setX(obj.getY());
obj.setY(aux);
}
}
Abracos.
Pro pessoal que tá começando no fórum, aí vai uma dica.
Sempre que postarem códigos usem a tag code.
Tem um ótimo tutorial de como usar esse e outros recursos do fórum aqui:
http://www.guj.com.br/posts/list/50115.java
Isso facilita para a gente ler e, consequentemente, nos ajuda a responder as dúvidas!
Só não respondi nada aqui sobre o assunto do tópico pq parece que a dúvida já foi sanada. Mas fica aí a dica.