[Pesquisar este blog]

quinta-feira, 11 de janeiro de 2018

POO::Fundamentos-02-Objetos, Tipos e Classes

POO-F-01-Características POO-F-03-Criação de Objetos

Compreendemos e interagimos com o mundo, em grande parte, através do conceito de objetos [6], que, conforme Jamsa & Klander [1], são simplesmente coisas ou entidades do mundo real.


Observando os objetos que existem ao seu redor, note que, provavelmente, todos são conhecidos. Mas as palavras que dão nome a cada um destes objetos são, de fato, nomes? A maioria dos termos que dão nome aos objetos conhecidos são substantivos e, diferentes dos nomes próprios, dados às pessoas, animais de estimação ou coisas especiais, os nomes dos objetos acabam designando algo maior: categorias de objetos. Habitualmente criamos categorias de objetos, usando o nome destas categorias para lidar com os muitos objetos que pertencem a cada categoria.

Tomemos um objeto conhecido, por exemplo, um livro. A simples menção do nome desta categoria de objeto nos leva, automaticamente, a imaginar algum livro e associar características destes objetos, como tamanho, espessura, título, conteúdo, autor e eventualmente outras que para nós estão ligadas a tal objeto. Também sabemos que existem muitos livros, que combinam, diferentemente as características possíveis destes objetos. Então, ao entrar numa livraria ou biblioteca, você não tem dificuldade de reconhecer os muitos livros distintos que lá existem, a despeito dos variados formatos, tamanhos, espessuras, capas e conteúdos variados [6][7].

Isto indica que somos capazes de reconhecer este tipo de objeto pelo conjunto de características comuns com as quais os descrevemos. A palavra livro serve, assim, para designar um imenso conjunto de objetos que compartilham um grupo de características comuns, ou seja, uma categoria de objetos, o mesmo que um tipo de objeto ou uma classe de objetos. Na POO, os termos classe e tipo são frequentemente considerados como sinônimos. 

Surgem aqui dois conceitos importantes da orientação a objetos:
  • classificação, que consiste na criação de categorias ou tipos de objetos que compartilham características e comportamento comuns;
  • encapsulamento, que estabelece um agrupamento de ideias correlacionadas e pode ser tratado como uma unidade por meio do seu nome.

No exemplo que analisamos, livro é uma classe de objetos que encapsula conceitos como formato, tamanho, espessura (ou número de páginas), título, autor e eventualmente outros.´

Os conceitos encapsulados em uma classe podem, então, representar características de seus objetos (como o tamanho de um livro), ou mesmo estados de seus objetos (como a situação ligado/desligado de uma máquina). Estas características e estados são conhecidas como atributos.

Além dos atributos, uma classe pode possui operações, ou seja, pode incluir comportamentos ou ações possíveis para os objetos da classe. Em geral, as operações atuam sobre os atributos e, assim, podem modificar as características ou estados dos objetos da classe.

Temos assim que os objetos encapsulam atributos (características e estados próprios) e também operações (comportamentos e ações possíveis), como ilustrado a seguir.


A sintaxe para declaração de uma classe utilizando a linguagem de programação Java é como segue:

<acesso> class <Nome> {
[declaração de atributos]
[declaração de métodos]
[declaração de construtores]
}

Entre os símbolos <> temos os elementos obrigatórios:
* acesso - especificador de acesso (que serão vistos na lição Encapsulamento);
* Nome - nome da classe, dado por meio de identificador válido.

Entre os símbolos [] temos os elementos opcionais:
* declaração de atributos - que definem o tipo e o nome dos atributos da classe;
* declaração de métodos - que definem as operações presentes na classe;
* declaração de construtores - que definem as operações especiais de criação de objetos.

Uma classe simples, em Java ou C#, pode ser declarada como:

class Livro {
}

As classes podem possuir, opcionalmente, um número variável de atributos, de métodos e de construtores. Os atributos e operações de uma classe serão discutidos nas próximas lições.

Finalizando, para que os objetos do mundo real possam existir, devem ser criados ou fabricados, possibilitando que sejam usados. Na POO a criação de objetos é também uma etapa importante, que seja tratada na próxima lição.

POO-F-01-Características POO-F-03-Criação de Objetos

Referências Bibliográficas

[1] JAMSA, K.; KLANDER, L.. Programando em C/C++: a bíblia. São Paulo: Makron Books, 1999.
[2] PAGE_JONES, M.. Fundamentos do Desenho Orientado a Objeto com UML. São Paulo: Makron Books, 2001.
[3] SOMMERVILLE, I.. Software Engineering. 6th. Ed. Harlow: Pearson, 2001.
[4] DEITEL, H.M.; DEITEL, P.J.. Java: como programar. 6a, Ed. Pearson Prentice-Hall: São Paulo, 2005.
[5] SAVITCH, W.. C++ Absoluto. Pearson Addison-Wesley: São Paulo 2004.
[6] JANDL JR., P.. Introdução ao C++. São Paulo: Futura, 2003.
[7] JANDL JR., P.. Java - guia do programador. São Paulo: Futura, 2003.
[8] RUMBAUGH, J.; BLAHA, M.; PREMERLANI, W.; EDDY, F.; LORENSEN, W.. Object-oriented modeling and design. Englewoods Cliffs: Prentice-Hall, 1991.

Nenhum comentário: