Sobre construtores e como inicializá-los... Help

Pessoal, estou voltando a estudar java agora, então criei um construtor da forma que me ensinaram (Fig 1). Mas estou estudando sozinha agora e no livro ele inicializa de uma outra forma (Fig 2). Minha dúvida é: 1. Qual a diferença dos dois? 2. Como faço para incializar meu construtor (Fig 1), com os dados Nome: Thais e Nota: 8?

Fig 1

public class Estudante {

	private String nome;
	private float nota;
	
	public Estudante(String n, float b){
		
		this.nome = n;
		this.nota = b;
	}
	
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public float getNota() {
		return nota;
	}
	public void setNota(float nota) {
		this.nota = nota;
	}
	
}

Fig 2

public class Constructors{
	public static void main (String [] args){
		
		SimpleDate independenceDay;
		independenceDay = new SimpleDate (7, 4, 1776);
	}
}

Obrigada!

Thais,

O primeiro não é uma inicialização de nada, aquilo é sua classe, sua “declaração” de classe. Em analogia ao segundo exemplo a inicialização do primeiro exemplo seria algo como:

public class Constructors{  
    public static void main (String [] args){  
          
        Estudante estudante;  
        estudante = new Estudante ("Thais", 100.0F);  
    }  
}

E o contrário, a declaração do segundo exemplo seria da seguinte forma (possivelmente, não é a única forma aceitável):

public class SimpleDate {  
  
    private int a, b, c;  
      
    public SimpleDate(int a, int b, int c){  
          
        this.a = a;  
        this.b = b;
        this.c = c;

    }  

} 

Entendeu? Um você diz como deve ser usado (a declaração) e no outro você utiliza do que foi declarado (a instanciação). Qualquer dúvida estamos aí! :slight_smile:

Bem, você criou a classe com o construtor, agora tem que instancia a classe com os seguintes valores

tipo

Estudante eu = new Estudante(“Thais”, 8.0f);

Na figura 2 você só está instanciado a classe SimpleDate

Espero ter ajudado. Qualquer coisa
msn: evolucao_da_mente@hotmail.com
gmail: didobruno2010@gmail.com

xau

A diferença entre os dois é que no primeiro código está sendo criado a classe e no segundo a mesma está sendo instanciada.

Entendi… na figura 2 foi criado e instanciado, correto?

Essa parte abaixo do código da figura 1, não entendi o que ele faz…

public Estudante(String n, float b){
		
		this.nome = n;
		this.nota = b;
	}

Na figura 1, então, eu não criei um construtor, porque ele é criado a partir do new, certo?
Suponhamos que na figura 1 tenha uma linha assim:
Estudante estudante = new Estudante (“Thais”, 8.0F);
Como eu faço para dar um print nos valores Thais e nota 8?

Obrigada!

Esse trecho que código que você não entendeu o que faz, recebe os valores passados ao construtor quando criando o objeto (sim, chamando o new) e os atribui a variáveis de instância da sua classe.

Enquanto sua classe viver você poderá usá-los! Portanto logo abaixo de:

Estudante estudante = new Estudante ("Thais", 8.0F);

Você faz:

System.out.println(estudante.nome + " " + estudante.nota);

Entendi tudo, rss
Muitíssimo obrigada!
:smiley:

O construtor é a especificação de como o objeto será criado quando você utilizar o “new”.

Você disse que não criou um construtor na figura 1, mas criou!

[code] public Estudante(String n, float b){

    this.nome = n;  
    this.nota = b;  
} 

[/code]

Isso é o construtor. Instanciar um objeto desse tipo é outra coisa, e requer o “new”.

Quando você faz:

Estudante estudante1 = new Estudante("Joaquim", 6.0f);

Está criando um objeto do tipo Estudante. Como esse objeto é criado? Da maneira que você especificou no construtor.

Hmmm, então eu criei, mas não instanciei… Apenas defini, hmm
Daí dou o new para instanciar.
Belezinha.
Obrigadaaa