Alguém poderia me ajudar ?
Como é funciona esse esquema de criar duas classes e instanciar uma na outra e atribuir valores ?
Criar classes, declarar as variáveis até ai blz, mais como é esse negócio de instanciar alguem pode me ajudar ?
Está estudando por conta ou em algum curso? Pois instanciação é um dos conceitos mais básicos ensinados em qualquer curso de linguagens OO. É o que ocorre sempre que você tem uma classe ClasseComNomeQualquer e faz algo como:
ClasseComNomeQualquer objetoCriadoAPartirDaClasse = new ClasseComNomeQualquer ();
Por exemplo, você tem uma classe Produto:
public class Produto{
String nome;
public void setNome(String novoNome){
nome = novoNome;
}
}
e faz:
Produto umProduto = new Produto();
O que o exercício está pedindo é nada mais que você criar uma classe chamada Principal, que tenha um método main, onde você possa criar e operar sobre uma instância da classe Aluno. Seguindo o exemplo da classe Produto que dei acima:
public class Principal{
public static void main(String[] args){
Produto umProduto = new Produto();
produto.setNome("Tomate a 5,99 o Kilo!!!!!");
}
}
Abraço.
É como o @TerraSkilll disse:
No entanto, passemos a algumas explanações:
1 - Construtor: é uma peça de software usado para inicializar objetos durante a sua instanciação (). Embora alguns digam se tratar de um método, o construtor não se enquadra na definição de método por não apresentar certos elementos básicos, como por exemplo, a ausência de retorno (ORACLE, Docs - Providing Constructors for Your Classes).
2 - Instanciação: é a ação que permite criar uma instância de uma classe, isto é, um objeto. No Java, isso equivale a separa um espaço de memória do computador, vincular as variáveis de instância (atributos) e inicializar essas variáveis. A palavra reservada new
tem a função de “pedir um espaço de memória = alocar memória” e retornar o endereço desse espaço de memória ao mesmo tempo que chama o construtor da classe. (ORACLE, Docs - Instantiating a Class) .
Como retornar o endereço da memória alocada, esse endereço deve necessariamente ser atribuído a uma variável de referência.
Exemplo:
Aluno aluno = new Aluno();
Aluno aluno
= declaração de tipo. A variável de referência aluno
pode receber um endereço de memória que contém dados de uma instância aluno
.
new
= instanciação de um objeto. aloca um espaço de memória necessário para representar um aluno
e retorna o endereço desse espaço de memória.
new Aluno()
= inicialização do objeto. A variável de instância aluno
recebe o endereço de memória retornado por new
.
3 - Método main
: o compilador (programa que interpreta códigos Java) Java precisa saber por onde começar a executar o programa. Para isso, existe o método principal (main) que define o ‘starter’ do programa. Logo, para um programa Java seja executado, deve-se informar a classe onde o método main
está. Um método main
sempre deve ser público (public
), isto é, acessível de qualquer lugar estático (não precisa ser instanciado um objeto para ele seja chamado), ou seja, deve começar com a palavra reservada static
e de retorno nulo (void
). Como argumentos, pode receber um array de String:
public static void main(String[] args){
}
Logo, você pode declara uma classe C1
e iniciar o programa pela classe C2
, bastando que na C2 esteja o método main
. Se você instanciar na C2
um objeto do tipo C1
, então o compilador irá ‘vincular’ construir esse objeto e disponibilizá-lo para uso na C2
.
Exemplo:
public class Aluno {
private long matricula;
private String nome;
private String endereco;
private String telefone;
private String eMail;
/*Métodos acessores (get) e modificadores (set)*/
//Matrícula
public void setMatricula(long matricula){
this.matricula = matricula;
}
public long getMatricula(){
return matricula;
}
//Nome
public void setNome(String nome){
this.nome = nome;
}
public String getNome(){
return nome;
}
//Endereço
public void setEndereco(String endereco){
this.endereco = endereco;
}
public String getEndereco(){
return endereco;
}
//Telefone
public void setTelefone(String telefone){
this.telefone = telefone;
}
public String getTelefone(){
return telefone;
}
//E-mail
public void setEMail(String eMail){
this.eMail = eMail;
}
public String getEMail(){
return eMail;
}
}
public class Principal {
public static void main(String[] args){
/*Instanciação de alunos*/
Aluno aluno = new Aluno();
aluno.setMatricula(1);
aluno.setNome("Maria da Silva Azevedo");
aluno.setEndereco("Rua Wenceslau Brás, 39, Centro, Loanda-PR");
aluno.setTelefone("(44) 9 9975-2301");
aluno.setEMail("masazev@isp.com.br");
System.out.println("\n\nNº Matrícula: " + aluno.getMatricula());
System.out.println("Aluno: " + aluno.getNome());
System.out.println("Endereço: " + aluno.getEndereco());
System.out.println("Telefone: " + aluno.getTelefone());
System.out.println("E-mail: " + aluno.getEMail());
}
}