0

Modificadores de Acesso

Java (2)Modificadores de Acesso

Os modificadores de acesso, tem como função controlar a visibilidade de classes, atributos e métodos em relação a outras classes e pacotes. Em Java temos alguns tipos de modificadores de acessos que serão exemplificados abaixo:

Modificador public

O modificador public pode ser usado na criação de uma classe, de um atributo e de um método, e possui diferentes comportamentos quando antecede alguns deles.

      • Em uma classe, significa dizer que ela poderá ser acessada e herdada por todas as outras classes dentro de uma aplicação.
      • Em um método, significa dizer que ele poderá ser acessado, reescrito e herdado por qualquer classe.
      • Em um atributo, significa dizer que poderá ser referenciado por qualquer outra classe.

Modificador private

O modificador private pode ser usado na criação de um atributo e de um método, e possui diferentes comportamentos quando antecede alguns deles.

      • Não pode ser aplicado como modificador de acesso de uma classe.
      • Em um método, significa dizer que ele poderá ser acessado pelos métodos da classe que o definiu.
      • Em um atributo, significa dizer que poderá ser referenciado somente pela classe que o definiu.

Modificador protected

O modificador protected pode ser usado na criação de um atributo e de um método, e possui diferentes comportamentos quando antecede alguns deles.

      • Não pode ser aplicado como modificador de acesso de uma classe.
      • Em um método, significa dizer que ele poderá ser acessado somente pelas classes que fazem parte do mesmo pacote.
      • Em um atributo, significa dizer que poderá ser referenciado somente pelas classes que fazem parte do mesmo pacote.

Modificador default

O modificado default define o acesso padrão que será aplicado quando não houver definição de modificador de acesso, ou seja quando esquecemos de definir o modificador de acesso a classe.

Modificador static

O modificador static pode ser usado na criação de um atributo e na definição de um método, e possui diferentes comportamentos quando antecede alguns deles. Definir um atributo ou métodos como static significa dizer que os mesmo pertencem a classe em que foram definidos. Membros estáticos podem ser acessados através de instância da classe.

Modificador final

O modificador final pode ser usado na criação de uma classe, de um atributo e de um método, e possui diferentes comportamentos quando antecede alguns deles.

      • Em uma classe, significa dizer que a classe não poderá ser estendida.
      • Em um método, significa dizer que o método não poderá ser reescrito.
      • Em um atributo, significa dizer que seu valor não poderá ser modificado.
0

Orientação a Objetos em PHP

phpInterfaces

Uma interface é utilizada quando queremos  estabelecer alguns padrões de comportamento e funcionamento para algumas de nossas classes, principalmente implementado em poliformismo, aonde temos que garantir que as classes serão geradas estabelecendo um padrão de implementação.

A implementação de uma interface em um projeto deverá ser feita quando houver necessidade de padronização ou de garantia de um determinado comportamento em uma classe do sistema. Através de uma interface é possível controlar e utilizar uma navegação segura entre as classes, tendo certeza que determinados métodos estarão disponíveis quando necessário.

“Em uma interface não devemos implementar nenhum código ou ação, somente a assinatura dos métodos ou definição de atributos constantes.”

Sintaxe:

Para referenciar uma interface em uma classe de domínio basta usar o operador implements após no nome de classe e informar o nome da interface a ser implementada.

Exemplo Prático:

(IDao.php)

(Veiculo.class.php)

 

0

Orientação a Objetos em PHP

phpComposição

A relação de composição também aborda o relacionamento de todo/parte, na composição o objeto-pai ou “todo” é responsável pela criação e destruição de suas partes, sendo assim o objeto-pai possui as instâncias de sua parte.

 Exemplo:composicao

(Contato.class.php)

(Fornecedor.class.php)

(composicao.php)

 

0

Orientação a Objetos em PHP

phpAgregação

O relacionamento de agregação é um tipo de relação entre objetos conhecida como todo/parte, onde um objeto agrega o outro tornando um objeto externo parte de si mesmo pela utilização de seus  métodos. Desta forma um objeto-pai pode usar utilizar funcionalidades do objeto agregado.

Exemplo:

agregacao

(CarrinhoDeCompras.class.php)

(Produto.class.php)

(agregacao.php)

 

0

Orientação a Objetos em PHP

phpAssociação

A associação representa a ligação entre dois objetos de modo que um objeto posso fazer referência ao outro, podendo um objeto visualizar atributos e métodos de um outro objeto.

associacao

Exemplo:

(Produto.class.php)

(Fabricante.class.php)

(associacao.php)

 

0

Orientação a Objetos em PHP

phpMétodos Get e Set

O conceito de método Get e Set permite uma interface mais protegida dentro de uma classe de domínio, através deste uso deste conceito cada propriedade da classe de domínio possui um método Set para atribuir ou definir valor para  a referida propriedade e Get para recuperar o valor da mesma. Através deste conceito a única maneira de obter e atribuir  valor a uma propriedade é fazendo o uso dos métodos de acesso Get e Set.

Exemplo de uso:

No exemplo anterior fizemos o uso da variável $this, está variável é uma variável reservada do PHP que é utilizada para fazer referências internas as propriedades de uma classe.

Crie um script com a codificação a seguir para testar os métodos Get e Set da classe Pessoa.

 

0

Orientação a Objetos em PHP

phpEncapsulamento

O encapsulamento é um recurso da Orientação a Objetos que tem como função esconder os dados de um objeto de outros objetos, permitindo que os mesmo sejam acessados através de seus próprios métodos. Com o recurso de encapsulamento uma classe possui responsabilidades sobre os seus atributos. Uma de suas vantagens é esconder do usuário os detalhes de implementação do objeto.

Para implementar o encapsulamento em um objeto de uma classe de domínio, podemos definir visibilidade as propriedades e dos métodos deste objeto. A visibilidade define a forma que suas propriedades serão acessadas através do uso de modificadores de acessos.

Modificadores de Acesso

Os modificadores de acesso definem a visibilidade de cada propriedade ou método de um objeto. A visibilidade de uma propriedade pode ser: public, protected, private, static. A visibilidade de um método pode ser: public, static, private,final.

Visibilidade de Atributos

  • Modificador public

A visibilidade padrão de um atributo é publica isto significa que o mesmo pode ser acessado e modificado em qualquer lugar de sua aplicação. Mantendo as boas práticas de programação, devemos inserir o modificado public na declaração de um atributo.

Sintaxe:

  • Modificador private

Um atributo privado só pode ser acessado pela classe onde foi declarado, o mesmo não é acessado através de suas subclasses.

Sintaxe:

  • Modificador static

Um atributo static não precisa ser instanciado para ser acessado.

Sintaxe:

Para acessar o atributo estático for do escopo de uma classe sem instanciar o objeto, basta colocar o nome da classe onde foi declarado no inicio da declaração.

Exemplo:

  • Modificador protected

Um atributo protected só pode ser acessado pela classe onde foi declarado e nas suas subclasses.

Sintaxe:

Visibilidade de Métodos

  • Modificador public

Todos os métodos que não possuem um modificador por default são públicos, porém é recomendado que defina o modificador public na hora da criação do método.

Sintaxe:

  • Modificador private

O modificador de acesso private, define que um  método só pode ser acessado dentro do escopo de sua classe.

Sintaxe:

  • Modificador static

Um método static permite que sejam acessados atributos estáticos dentro de uma classe e nada mais. Não é preciso instanciar um objeto para acessar um método estático.

Sintaxe:

  • Modificador final

O modificador de acesso final, define que um  método não pode ser sobrescrito nas subclasses.

Sintaxe:

 

0

Orientação a Objetos em PHP

phpAbstração

Abstrair, significa separar mentalmente, considerar isoladamente, simplificar. Para a construção de sistemas Orientados a Objetos, jamais devemos projetar um sistema como sendo uma peça única, devemos separa-los em partes, concentrando nos detalhes mais importantes e ignorando os detalhes de implementação em um primeiro momento, para podermos construir um sistema em partes muito bem definidas que possam posteriormente ser reaproveitadas.

Classes Abstratas

Utilizando o conceito de abstração, construiremos classes estruturais na hierarquia de nosso projeto para servirem de bases para outras. As classes abstratas são classes que nunca serão instanciadas na forma de objetos. Para a definição de uma classe abstrata fazemos o uso do operador ABSTRACT no início da declaração da classe.

Exemplo:

Classes Finais

As classes finais são classes que não podem ser especializadas, ou seja, uma classe final nunca poderá ser uma superclasse. Para a definição de uma classe final fazemos o uso do operador FINAL no início da declaração da classe.

Exemplo:

Métodos Abstratos

Um método abstrato é um método que não possui implementação na classe a qual foi definido, o detalhe de implementação fica a cargo da subclasse. A classe que possui pelo menos um método abstrato não pode ser instanciada e também deve ser definida como abstrata. Um método abstrato em si consiste na definição da assinatura na classe abstrata. Para a definição de um método abstrato fazemos o uso do operador ABSTRACT no início do método.

Exemplo:

Métodos Finais

Um método final não pode ser sobrescrito, ou seja, não pode ser redefinido em uma subclasse. Para definição de um método final faremos uso do operador FINAL no inicio da declaração do método.

0

Orientação a Objetos em PHP

phpPolimorfismo

Em programação orientada a objetos polimorfismo é o principio que permite que classes derivadas de uma mesma superclasse tenham métodos iguais, ou seja, com a mesma nomenclatura e parâmetros, mas comportamentos diferentes.

Polimorfismo significa ter ‘muitas formas’, que significa um único nome representando um código diferente, selecionado por algum mecanismo automático. “Um nome, vários comportamentos”.

Exemplo:

Testando o Exemplo:

 

0

Orientação a Objetos em PHP

php

Herança

Na Orientação a Objetos a Herança define um relacionamento entre classes, no qual uma classe compartilha sua estrutura e comportamentos com outras classes. Uma classe que herda as características de outra é chamada de subclasse, e a classe que fornece as características é chamada de superclasse. As heranças são definidas através de um mecanismo chamando Generalização / Especialização, onde generalização é representação da superclasse para a subclasse, e especialização é representação da subclasse para a superclasse. A Herança é estabelecida quando estabelecemos um relacionamento de Especialização de uma classe.

Uma Especialização repassa para uma subclasse todos os atributos e métodos definidos em uma superclasse.

O diagrama abaixo demonstrado um caso de Herança:

herança

O Veículo é uma Generalização de Carro e Moto.

Carro e Moto são Especializações de Veículo.

Para representar o relacionamento de herança em PHP, devemos seguir a sintaxe abaixo:

Sintaxe:

Exemplo: