Dúvida em classe

3 respostas
guj1

Olá pessoal!
Seguem as classes onde estou com dúvida em algo. Não quero código pronto, apenas tirar uma dúvida.

public class Movie {
    String title;
    String genre;
    int rating;
    
    void playIt() {
        System.out.println("Playing the movie!");
    }
}



public class MovieTestDrive {
    public static void main(String[] args) {
        Movie one = new Movie();
        one.title = "Se eu fosse você";
        one.genre = "Cômico";
        one.rating = 12;
        
        Movie two = new Movie();
        two.title = "Irom Man";
        two.genre = "Action";
        two.rating = 10;
        
        Movie three = new Movie();
        three.title = "O homem que copiava";
        three.genre = "Comédia";
        three.rating = 10;
    }
}

Dúvida: na criação de cada objeto da classe TestDiveMovie porque os parêntese do Movie() está vazio, ele sempre será vazio, quando ele não será vazio?
Sou iniciante no java, estou estudando pelo livro Use a Cabeça Java e estou me apaixonando pela Java.
Obrigado pela atenção.

3 Respostas

U

Na verdade ao escrever Movie one = new Movie(); você está instanciando um objeto da classe Movie.
Movie é o tipo de váriavel e one é a referência.

Os parênteses estão vazios, pois não há métodos construtores, isso você estudará um pouco mais para frente.
Resumindo, apenas terá valores quando você for utilizar métodos construtores.

Exemplo:
public class Movie {
    String title; // variáveis de instância(objeto).
    String genre;
    int rating;
    
    public Movie(String title, String genre, int rating){ // método construtor.
		this.title = title; // this referencia variáveis de instância.
  		this.gente = genre;
		this.rating = rating;
    }

    void playIt() {
        System.out.println("Playing the movie!");
    }
}
Movie one = new Movie("Se eu fosse você", "Cômico", 12);
Isso é utilizado quando temos atributos privados, estude sobre encapsulamento e métodos construtores.
guj1

ok. Deu para entender um pouco.
Acho que o construtor é quando eu quero que uma variável possua um determinado valor na inicialização do programa, pelo menos esse é o conceito noutras linguagens.

Estou no início do livro Head First Java! (Capítulo 3).

Obrigado pela atenção utroz.

A
Movie one = new Movie();

traduzindo

Tipo_do_objeto Nome_do _objeto = new Classe_modelo();
Criado 1 de maio de 2011
Ultima resposta 2 de mai. de 2011
Respostas 3
Participantes 3