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);
}
}
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í!
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?
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);