Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação Orientada a Objetos. 1 Prof.Fábio Rener Modificadores de acesso e Construtores. Construtores O método construtor determina que ações devem ser executadas quando da criação de um objeto. Em Java, o construtor é definido como um método cujo nome deve ser o mesmo nome da classe e sem indicação do tipo de retorno -- nem mesmo void. O construtor é unicamente invocado no momento da criação do objeto através do operador new. O retorno do operador new é uma referência para o objeto recém-criado. O construtor pode receber argumentos, como qualquer método. Usando o mecanismo de sobrecarga, mais de um construtor pode ser definido para uma classe. Toda classe tem pelo menos um construtor sempre definido. Se nenhum construtor for explicitamente definido pelo programador da classe, um construtor padrão, que não recebe argumentos, é incluído para a classe pelo compilador Java. No entanto, se o programador da classe criar pelo menos um método construtor, o construtor padrão não será criado automaticamente -- se o programador desejar mantê-lo, deverá criar um construtor sem argumentos explicitamente. No momento em que um construtor é invocado, a seguinte seqüência de ações é executada para a criação de um objeto: 1. O espaço para o objeto é alocado e seu conteúdo é inicializado (bitwise) com zeros. 2. O construtor da classe base é invocado. Se a classe não tem uma superclasse definida explicitamente, a classe Object é a classe base. 3. Os membros da classe são inicializados para o objeto, seguindo a ordem em que foram declarados na classe. 4. O restante do corpo do construtor é executado. Seguir essa seqüência é uma necessidade de forma a garantir que, quando o corpo de um construtor esteja sendo executado, o objeto já terá à disposição as funcionalidades mínimas necessárias, quais sejam aquelas definidas por seus ancestrais. O primeiro passo garante que nenhum campo do objeto terá um valor arbitrário, que possa tornar erros de não inicialização difíceis de detectar. Exemplo: class Pessoa{ String nome; String rg; Date dtNascimento; public Pessoa(){} Programação Orientada a Objetos. 2 Prof.Fábio Rener public Pessoa(String n, String doc,Date dt){ nome = n; rg = doc; dtNascimento = dt; } } Modificadores de Acesso Modificadores de acesso – são responsáveis pela visibilidade de nossas classes, métodos e atributos. public class Pessoa{ // modificadores privados para implementação do encapsulamento private String nome; private String rg; private String sexo; private Date dtNascimento; //construtor padrão public Pessoa(){} //construtor usado para inicialização das variáveis public Pessoa(String n, String doc,String s,Date dt){ nome = n; rg = doc; sexo =s; dtNascimento = dt; } //método de encapsulamento do atributo/variável nome public void setNome(String n){ if(n.length() > 60){ nome = n.substring(0,60); }else{ Nome= n; } } //método de retorno do valor do atributo/variável nome public String getNome(){ return nome; } //outros métodos get e sets para o encapsulamento das variaveis } Membros final – Métodos com modificador final não pode ser sobrescritos e atributos com modificador final não podem sofrer alteração e geralmente são usamos para constantes que iremos utilizar em nosso sistema. Programação Orientada a Objetos. 3 Prof.Fábio Rener Membros estáticos – Métodos com modificador static podem ser acessados sem a necessidade de instanciar a classe para utilização, o mesmo podemos dizer sobre atributos com o modificador static. Modificadores de Classe Modificador Classe Classe Interna (InnerClass) public Pode ser instanciada e utilizada livremente Pode ser instanciada e utilizada livremente protected (Não Aplicável) Pode ser utilizada apenas no mesmo package ou em subclasses da classe (sem modificador) Pode ser utilizada e instanciada apenas no mesmo package Pode ser utilizada e instanciada apenas no mesmo package. private (Não Aplicável) Pode ser utilizada apenas na classe externa abstract Não pode ser instanciada Não pode ser instanciada final Não permite definição de subclasse Não permite definição de subclasse Modificadores de Métodos Modificador Descrição public Pode ser invocado livremente protected Só pode ser invocado no mesmo package e em subclasses (sem modificador) Só pode ser invocado no mesmo package. private Só pode ser utilizado na mesma classe. abstract O método não pode ter implementação(código). Estes métodos deverão ser sobrescritos por subclasses. static Pode ser invocado sem precisar criar uma instância da classe. final Não pode ser sobrescrito. Modificadores de Atributos Modificador Descrição public Pode ser utilizado livremente protected Só pode ser utilizado no mesmo package ou em subclasses (sem modificador) Só pode ser utilizado no mesmo package. private Só pode ser utilizado na mesma classe static Pode ser utilizado sem precisar criar uma instância da classe. final É uma constante.
Compartilhar