Linguagem de Programação Introdução a Orientação a Objetos Rafael Silva Guimarães Instituto Federal do Espírito Santo Campus Cachoeiro de Itapemirim
Definição de Orientação a Objetos. Orientação a Objetos: é um paradigma de análise, projeto e programação de sistemas de software baseados na composição e iteração entre diversas unidades de software chamadas objetos. Objetos: são abstrações dos objetos reais existentes. Todo objeto possui as seguintes características: Estado: conjunto de propriedades de um objeto. Comportamento: conjunto de ações possíveis sobre um objeto. Unicidade: todo objeto é único ( possui um endereço de memória ).
Definição de Orientação a Objetos. Classes: é um molde, um modelo, um protótipo a partir do qual os objetos são criados. A partir de uma classe é possível criar quantos objetos forem desejados. Métodos: são comportamentos inerentes aos objetos ou em suas classes ( métodos da classe ou estáticos ). Ex.: ligar( ), desligar( ). Atributos: são os valores das propriedades de um objeto ou de sua classe ( Atributos da classe ou estáticos ). Ex.: nome, quantidade, endereço, telefone.
Definição de Orientação a Objetos. Pacotes: guarda classes semelhantes. Os pacotes são diretórios ou pastas que iremos guardar arquivos ou outros diretórios(pacotes). Cada arquivo dentro do pacotes é relativo a uma classe.
Declaração de uma classe O qualificador determinará a visibilidade da classe. Caso não seja informado a classe será assumida como protected, sendo visualizada apenas dentro do pacote. Caso seja colocado o qualificador como public, a classe será pública e, portanto, será acessível por qualquer classe de qualquer pacote.
Declaração de uma classe No caso acima a classe ClasseOutroPacote não consegue acesso a classe ClassePrivada pois ela está protegida. No caso da classe ClassePublica conseguimos efetuar o acesso devido que o seu qualificador esta como public, ou seja, a classe pode ser acessada de qualquer pacote.
Utilização de um objeto. Para utilizar um objeto precisamos executar 2 tarefas: Assim como nos tipos primitivos, precisamos declarar o objeto. Ex.: Pessoa p1; Instanciar o objeto: alocar o objeto em memória, sendo o comando new, responsável por este trabalho. Ex.: p1 = new Pessoa( );
Método construtor. Construtor: é um método chamado no momento da criação do objeto, ou seja, no momento em que é utilizado o comando new. Este objeto promove a inicialização do objeto, de modo que, o objeto após esta inicialização, já se encontra logicamente consistente. Ex.: Pessoa p1 = new Pessoa( Joao ); Neste momento é chamado o método construtor da classe Pessoa para inicializar o objeto p1.
Método construtor. Note que na criação do objeto p1 foi chamado o construtor sem parâmetros; na construção do p2, o construtor com o parâmetro da classe String. A palavra this é utilizada para fazer referência a atributos do objeto corrente, sendo obrigatória em casos quando temos uma variável local com o mesmo nome de um atributo.
Destrutores Destrutores: são métodos acionados imediatamente antes do objeto ser desalocado. Em Java, o método destrutor é o método finalize, mas não há garantias da linguagem de que este método irá ser chamado antes de o objeto ser desalocado. Em C utilizamos a função free( ).
Declaração de atributos e métodos. Em Java, para utilizarmos atributos e métodos eles precisam ser declarados. Para declararmos um atributo, utilizamos a seguinte sintaxe: <qualificador> <tipo_atributo> <nome_atributo>; Qualificador: O qualificador é opcional mas por padrão é definido com o protected. O tipo do atributo: pode ser um tipo primitivo ou uma classe que define o atributo. Nome do atributo: é um nome qualquer para o atributo. Ex.: public String nome;
Declaração de atributos e métodos. Em Java, para declararmos um método, utilizando a seguinte sintaxe Qualificador: o mesmo conceito que os atributos. O tipo do retorno e o tipo do atributo se comportam da mesma forma. Nome: é o nome utilizado pelo método.
Declaração de atributos e métodos. Os possíveis qualificadores são: public ( Público ): acessível por qualquer classe. protected ( Protegido ): acessível por classes do mesmo pacote ou na mesma hierarquia ( Iremos ver hierarquia em heranças de classes ). private ( Privado ): acessível apenas pela própria classe.
Declaração de atributos e métodos estáticos. Atributos e métodos estáticos são inerentes a classe e não apenas a um objeto específico. Para isso vamos analisar o seguinte trecho de código: Cachorro é uma classe que determina o comportamento de todos os cachorros. rex é um cachorro específico, é uma instância de Cachorro. Suponhamos que quiséssemos saber a quantidade de cachorros que foram criados. Esta informação não pode ficar em rex, pois não faz sentido rex saber a quantidade de cachorros que foram criados. Para resolver este problema, utilizamos o conceito de atributos e métodos estáticos.
Declaração de atributos e métodos estáticos. Para definirmos atributos e métodos estáticos, utilizamos a palavra static. Atributos: Ex.: public static int qtd_cachorros( ); Métodos: Ex.: public static int getquantidadecachorros( )
Referências TEIXEIRA, Giovany Frossard. Material EAD - Linguagem de Programação II. FURGERI, Sergio. Java 6 - Ensino Didático. 1a Edição. São Paulo: Érica, 2008. DEITEL, Paul. Java - Como Programar. 8a Edição. São Paulo: Prentice Hall, 2010.