Esta aula tem como objetivo introduzir o conceito de objetos, além disso veremos quais são seus principais componentes e como é a sua criação em Java.
Antes de qualquer conceito devemos entender a finalidade de criar objetos. O objetivo o paradigma orientado a objetos já foi discutido na Aula 01 deste curso. Porém, é pertinente dizer que um objeto é a representação de um objeto do mundo real.
A Programação Orientada a Objetos foi criada por Alan Kay, autor da linguagem Smalltalk. Antes mesmo da criação Orientada a Objetos, já existiam algumas aplicações, neste caso da linguagem Simula 67, criada por Ole Johan Dahl e Kristen Nygaard em 1967. Recentemente um aluno em busca de algumas respostas trocou alguns e-mails com o professor Alan Kay que foi documentada e está disponível como um artefato histórico.
1 – Conceitos importantes
Nesta aula abordaremos alguns conceitos muito importantes para a orientação a objetos, são eles: Classes, objetos, atributos, métodos e construtores. Cada um deles serão explicados a seguir.
2 – A classe
Uma classe é o início de tudo, o gênesis para entender a orientação a objetos. Uma classe é uma representação de um objeto no mundo real. Cada classe possui características e comportamentos de um objeto real. Por exemplo: Um carro, pode ser considerado um objeto com atributos como o volante, rodas, pedais, etc. Um carro tem a possibilidade de realizar algumas ações, assim como acelerar, por exemplo.
Toda classe possui algumas características, como:
- Um nome;
- Membros: características e ações;
3 – Como declarar uma nova classe
A declaração de uma classe em Java segue a seguinte estrutura:
class + NomeDaClasse {
// Conteúdo
}
Para declarar atributos devemos identificar sua visibilidade, tipo e nome do atributo. Veja o exemplo:
int idade;
A declaração de métodos (ações) ocorre semelhante a declaração de funções em outras linguagens, observe o exemplo:
int metodoDeclarado() {
//conteúdo
}
4 – Exemplo de uma classe completa
Vamos imaginar uma situação onde precisamos declarar um objeto com seus atributos e métodos. Para tanto vamos utilizar o exemplo de um carro;
public class carro{
String marca;
int quantidadeDeRodas;
int tamanhoDoTanque;
String cor;
void acelerar(){
// Acelera o carro
}
void frear() {
// para o carro
}
void ligarCarro(){
// Dá a partida no carro
}
}
5 – Objetos
Agora pense bem, a classe carros pode representar qualquer carro. Assim podemos ter um carro de cor amarela, ou cinza; mesmo assim, ele não deixa de ser um carro.
Com base nisso, podemos dizer que a descrição geral de um carro é a classe. E também podemos definir que cada carro criado, a partir da especificação da classe é um objeto. Também pode ser chamado de instância.
6 – Construtores
Quando você já definiu a classe desejada, para criar uma instância na memória é necessário invocar o construtor desta classe. Para realizar este comando é necessário digitar o comando new.
Assim como a própria palavra já diz, o new significa – novo. Criar uma nova instância na memória. Podemos comprar com o projeto e um produto. Imaginem que possuímos o projeto de como produzir um carro. É claro que o projeto de um carro, não é um carro, porém ao executar este projeto criamos um novo carro.
Em Java os construtores são declarados dentro da classe utilizando o mesmo nome da classe e um atributo de visibilidade.
NomeDaClasse(){
//Conteúdo;
}
Para realizar a instanciação de um novo carro em Java devemos utilizar a seguinte sintaxe;
Carro c; // Cria a Variável carro
c = new Carro(); // Instancia um novo carro;
Um detalhe importante é que todas as classes precisam de um construtor. Assim, para facilitar a vida dos programadores, o Java por padrão já possui um construtor padrão que inicializa todos os atributos com valores padrão. Por exemplo: Inteiros – 0; String – Vazias; Double – 0.0;
Quando desejamos declarar um construtor personalizado – o que é muito comum – utilizamos o código citado anteriormente. O detalhe é que quando declaramos um construtor personalizado, o construtor padrão se perde e somente o construtor declarado existirá. Fique atento a isso.
Pingback: Exercícios sobre Construtores e Sobrecarga » Computer Science Master