Classe sem erro mas tbm, sem resultado!

6 respostas
H
pessoal, criei essa classe e metodo:
package cinema;

public class Movie {

    String title;
    String genre;
    int rating;

    void playIt() {
        System.out.println("Passando o filme");
    }
}
e essa outra classe "testdora",digamos assim:
package cinema;

public class MovieTestDrive {

    public static void main(String[] args) {
        Movie one = new Movie();
        one.title = "os esquilos";
        one.genre = "aventura";
        one.rating = 5;
        Movie two = new Movie();
        two.title = "taxi driver";
        two.genre = "drama";
        two.rating = 18;
        Movie three = new Movie();
        three.title = "taxi driver2";
        three.genre = "drama";
        three.rating = 18;
    }
}

bom, no netbeans, peço que execute esses codigos e ele diz que "run:
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
"
mas não exibe a mensagem "Passando o filme"...
por que??
cadê o erro aqui??
obrigado a todos!!
Horácio

6 Respostas

Eric_Yuzo

Quem exibe a mensagem é o método playIt(), que por sinal não está sendo chamado.

luxu

e já vai aprendendo...não é de boas práticas deixar os atributos(title, genre, rating) desemcapsulados(sem private antes), ou seja, sempre decláre-os assim:

private String title;  
private String genre;  
private int rating;

e depois nos métodos, para manipular os atributos, sim podem ser públicos:

public setTitle(String title){
       this.title = title;
}

public String getTitle(){
       return title;
}

espero ter ajudado...qq coisa tamô ae!

joaodaniel

Fora os detalhes do encapsulamento, a causa da mensagem não ser exibida é que o método que executa esta ação não está sendo chamado.

one.playIt();
H

esse codigo eu peguei do livro use a cabeça…
faz sentido mesmo…ele tinha que chamar o outro método…nesse caso, o que eu fz , então, como deveria ficar???
estou tentando chamar esse método, mas ainda não estou consegindo…
obs.: desculpem estar atrapalhado ssim, mas ainda estou começando e a ajuda de vocês aqui é essencial…obrigado!!!

alanrodrigues

realmente, você deveria usar o encapsulamento… com os getters e setters… mas enfim, pra chamar os métodos use:

one.playIt();
two.playIt();
three.playIt();
Eric_Yuzo
Em sua classe de teste, foram criados os objetos do tipo Movie, que é a classe onde o método playIt() está declarado, portanto você deve chamá-lo através das variáveis que criou para acessar o objeto. No caso de one ficaria:
package cinema;

public class MovieTestDrive {

    public static void main(String[] args) {
        Movie one = new Movie();
        one.title = "os esquilos";
        one.genre = "aventura";
        one.rating = 5;
        one.playIt();
        . . .
Criado 12 de dezembro de 2010
Ultima resposta 12 de dez. de 2010
Respostas 6
Participantes 5