Introdução Atributos, métodos e encapsulamento joao@ecomp.uefs.br Atributos Ipos de acesso: private, public, protected e default Encapsulamento Métodos Construtores Criando objetos Departamento de Ciências Exatas Universidade Estadual de Feira de Santana 1 Atributos em Java Atributos Definem o estado de um objeto Cada atributo é associado a um Ipo private indica que os atributos só podem ser acessados pelos métodos da classe 3 Atributo versus variável Um atributo é um Ipo especial de variável variável da classe definem o estado de um objeto Atributos tem Ipo de acesso private, public, default e protect Atributos podem ser static Acesso à atributos em Java private: visível apenas na classe em que foi criado default: visível dentro do pacote em que foi criado protected: visível na classe e nas subclasses public: visível em qualquer classe 4 5 1
Métodos em Java Métodos Definem as operações que um objeto pode executar public void creditar(double valor){ saldo = saldo + valor; Um método executa instruções e modifica valores dos atributos do objeto 7 public class Banco{ public static void main(string[] args){ Conta conta = new Conta(); conta.creditar(100); Comando return O comando return indica o término de um método public void creditar(double valor){ saldo = saldo + valor; define o tipo de retorno public double getsaldo(){ return saldo; 8 8 9 public class Banco{ public static void main(string[] args){ Conta conta = new Conta(); conta.creditar(100); double saldo = conta.getsaldo(); System.out.println("saldo="+saldo); Encapsulamento Evitar o acesso direto (referência) aos atributos de uma instância. Os atributos só podem ser acessados/ modificados através de métodos da própria classe 10 10 2
Encapsulamento Encapsulamento vem de encapsular proteger em uma cápsula ou como em uma cápsula A idéia principal é construir o código em blocos de soeware individuais os blocos se comunicam através dos métodos O encapsulamento é alcançado usando private Vantagens do encapsulamento Modularidade o código de um objeto pode ser escrito e man8do independentemente do código de outros objetos InformaIon- hiding o acesso exclusivo através dos métodos, ocultam detalhes de implementação Reuso de código facilita o reuso já que o comportamento fica bem definido Manutenção facilita iden8ficar e isolar um problema pode- se facilmente subsituir objetos 12 13 public posso renomear sem problemas public void sacar(double valor){ saldo = saldo valor; Construtores posso adicionar novas funcionalidades Métodos especiais que são usados para criar os objetos 14 Construtores Construtores são métodos especiais de uma classe tem como objeivo específico inicializar os atributos de um objeto só são executados uma única vez, no momento da criação do objeto o nome do construtor é igual ao nome da classe public public Conta(){ saldo = 0; construtor não tem tipo de retorno! 16 17 3
Outro exemplo public class Slide{ private String title; private String text; public Slide(String tit, String txt){ title= tit; text = txt; public String gettitle(){ return title; Construtor default Caso não seja definido um construtor na classe, o construtor implícito default é equivalente a NomeDaClasse() { Quando o construtor default é uilizado, os atributos são inicializados com valores default 18 19 Construtores versus declarações com inicialização class Conta { public Conta() { saldo =0; numero = ; private String numero = ; private double saldo = 0; equivalentes neste caso, mas nem sempre é assim... Construtores versus declarações com inicialização na práica Os construtores são parametrizados, portanto mais genéricos pode variar conforme os parâmetros passados A inicialização no construtor é feita após a inicialização na declaração A inicialização no construtor pode ser realizada com o auxilio de métodos 20 21 Operador new class Conta { private String numero=""; private double saldo=0; public Conta(String num) { saldo = 0; numero = num; Qual o valor de numero após incialização? Para avaliar a expressão do Ipo Conta c = new Conta(""); Cria um objeto (c) da classe Conta, armazenando o objeto na memória Inicializa os atributos deste objeto usando o construtor desta classe Devolve uma referência (idenificação) para o objeto criado 22 23 4
Criando um objeto Conta c = new Conta("") 1. cria o objeto e armazena na memória 2. inicializa objeto, utilizando o construtor 3. devolve a referência para o objeto criado id2455 id2456 id2457 A variável c passa a ter uma referência para a posição de memória id2456 Memória...... IdenIdade de um objeto Objetos podem ter o mesmo conteúdo e serem diferentes id2456 id2458 24 25 Referência para objetos Todo acesso e manipulação de objetos é feito indiretamente através de referências A referência é a iden8dade do objeto Referência para o objeto id2456 Objeto class Conta { public Conta(String num) { saldo = 0; numero = num; public void creditar(double valor){ saldo = saldo + valor; public void showsaldo(){ System.out.println("Saldo="+saldo); 26 27 public class Banco{ public static void main(string[] args){ Conta a = new Conta("456-X"); Conta b = a; b.creditar(100); a.showsaldo(); Resumo Atributos Ipos de acesso Métodos escopo Encapsulamento Construtor construtor default Criando objetos operador new 28 29 5
Créditos Alguns slides uilizados nesta apresentação foram baseados em slides preparados pelo professor Paulo Borba (Cin/UFPE) hop://www.cin.ufpe.br/~phmb/ip Atributos, métodos e encapsulamento joao@ecomp.uefs.br Departamento de Ciências Exatas Universidade Estadual de Feira de Santana 30 6