Faz apenas alguns dias que comecei a estudar java, estava lendo um material na internet quando me deparei com esse exemplo sobre instanciação de objetos
01.public class TV {
02. int tamanho;
03. int canal;
04. boolean ligada;
05.
06. TV() {
07. tamanho = 21;
08. canal = 0;
09. ligada = false;
10. }
11.
12. public static void main(String[] args) {
13. TV objeto1 = new TV();
14. TV objeto2;
15. objeto2 = new TV();
16. }
17.}
Achei simples e facil de entender, mas fiquei com uma duvida pq eh escrito esse TV na frente de objeto1 e objeto2? Daonde é esse TV?
Espero que entendam a minha dúvida :shock:
Esse TV é o tipo do Objeto1 e Objeto2. A classe foi criada logo acima, onde vc ve o class TV. Se vc tivesse um class ControleRemoto, poderia criar objetos do tipo controle remoto. Assim como já há vários tipos que existem no Java, como String, Integer, StringBuilder etc.
Isso porque, em Java, classes definem tipos. Você pode fazer isso:
String nome = "Fulano";
Pois alguém criou a classe String que define um tipo de variável (variáveis do tipo String). O mesmo se aplica para a classe TV no seu caso.
Aliás, não só classes definem tipos, mas também interfaces e enums.
classes são tipos abstratos de dados onde vc define as caracteristicas e as ações que determinado “objeto” deste tipo deverá ter.
Quando vc digita:
Tipo nome_da_referencia = new Tipo();
vc está criando um objeto na memória e atribuindo ele à uma variável de referencia, que no caso seria o nome_da_referencia.
Tendo um objeto instanciado, vc pode manipula-lo e definir as suas características e ações referentes ao objeto em questao.
Boa noite a todos.
…
…
Não só em Java, classes, interfaces e enums definem tipos, mas também em todas as linguagens orientada o objetos, como o Object Pascal do Delphi e o C++.
No Object Pascal do Delphi existe também um outro elemento que define tipo que é o “Record”.
Em linguagens fortemente tipadas, sim. Linguagens OO fracamente tipadas não precisam.