Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Documentos relacionados
Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

4 Conceito de Herança

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Modificadores de Acesso JAVA

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Linguagem de Programação II Implementação

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)

JAVA. Professor: Bruno Toledo

PROGRAMAÇÃO JAVA. Parte 3

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.

Prof. A. G. Silva. 06 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 06 de setembro de / 1

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

AULA TEÓRICA 9. Tema 8. Herança (continuação) Ø Sobreposição de métodos. Ø Variáveis e métodos estáticos. Ø Hierarquia de classes.

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Linguagem de Programação II Implementação

Programação por Objectos. Java

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus


Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Paradigmas da Programação PPROG. Tipos Enumerados. Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Programação Orientada a Objetos

Programação Orientada a Objetos

Linguagem de Programação IV Introdução

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

9 Classes Abstractas e Interfaces

Classe Abstrata e Interface

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Atributos e Métodos Estáticos

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Instituto de Informática Estrutura de Dados II

Programação Orientada a Objetos em Java

Definição de classes em Java (introdução) PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa

Classes e Objetos POO

POO UML e Outros Conceitos. Prof. Vicente Paulo de Camargo

Programação por Objectos. Java

Programação OO em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

Programação com Objectos. 2º Teste 2015/2016 1º Semestre

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Extensão de classes em Java - noções elementares - PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa

Classes e Objetos. Sintaxe de classe em Java

Herança e Propriedades

Instituto Politécnico de Setúbal. Escola Superior de Tecnologia. Departamento de Sistemas e Informática. Guia para codificação em JAVA

Programação Orientada por Objetos

Interfaces. Classes abstratas que possuem apenas métodos abstratos. Na Interface: Métodos são implicitamente. Campos são implicitamente

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objetos

Atributos e Métodos de Classe

Introdução à Programação Orientada por Objectos em Java. Enquadramento e Objectivos Abstracção Encapsulamento Herança Polimorfismo Conclusão

Análise de Programação

Herança e Polimorfismo

Aula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU

Ficha Prática 10. António Nestor Ribeiro, Paulo Azevedo, Mário Martins PPIV (LESI) 2005/06

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces

Palavras Reservadas da Linguagem Java

Prof. A. G. Silva. 30 de outubro de Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de / 1

Aula. Renata Pontin de Mattos Fortes 2006

Tipos, Literais, Operadores

Tipos, Literais, Operadores

3 Classes e instanciação de objectos (em Java)

Desenvolvimento Web TCC Turma A-1

p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos fonte de Java.

DCC / ICEx / UFMG. Membros de Classes. Eduardo Figueiredo.

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

LÓGICA DE PROGRAMAÇÃO (JAVA) HERANÇA. Professor Carlos Muniz

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

Relacionamentos entre objetos

Programação Orientada a Objetos Flávio de Oliveira Silva 144

Métodos em Java. Prof. Esp. André Aparecido da Silva (Aulas 31 a 33) Disponível em:

Strings e Arrays POO

Programação Orientada a Objetos

Aula 2 POO 1 Prática. Profa. Elaine Faria UFU

Lição 11 Herança, polimorfismo e interfaces

Genéricos. Profa. Thienne Johnson EACH/USP

Transcrição:

Mecanismos de controlo de acesso Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a cada classe e cada membro da classe (dados e métodos) Modificadores de acesso: public protected private por omissão Regras de acesso a classes: R1: Uma classe é sempre acessível a todas as outras classes do mesmo package (qualquer que seja o modificador de acesso). R2: Se nenhum modificador de acesso é usado, a classe apenas pode ser acedida dentro do seu package. R3: Quando uma classe é declarada como public pode ser acedida por qualquer classe que tenha acesso ao seu package. R4: Quando uma classe é não pública apenas é acessível dentro do seu package. Apontamentos de POO - 36

Regras de acesso a variáveis e métodos: norma: variáveis são privadas, métodos de interface são públicos, métodos auxiliares são privados. R1: Um método declarado como public é acessível de qualquer ponto de qualquer programa. Designa-se por API ( Application Programming Interface ) de uma classe, o conjunto de métodos de instância que não forem declarados como private. R2: Um método sem modificador de acesso é acessível a qualquer classe do mesmo package. R3: Métodos ou variáveis declarados como private são apenas acessíveis dentro da própria classe. R4: Métodos ou variáveis declarados como protected são acessíveis na própria classe, de outra classe dentro do mesmo package e nas subclasses da classe (!). Apontamentos de POO - 37

Definição da classe Contador public class Contador { // variáveis de instância private int conta; // construtores public Contador () { conta = 0; public Contador ( int conta) { this.conta = conta; // métodos de instância public int getconta(){ return conta; public void incconta () { conta ++; public void incconta (int inc) { conta = conta + inc; public void decconta () { conta --; public void decconta (int dec) { conta = conta - dec; public String tostring () { return ( Contador: + conta ); Apontamentos de POO - 38

Classes de teste - Uma classe de teste serve para testar toda a funcionalidade de uma classe public class TesteContador { public static void main ( String[] args) { // criar instâncias da classe Contador c1, c2; c1 = new Contador(); c2= new Contador (10); A execução de qualquer programa em Java inicia-se por um método com esta assinatura. // enviar mensagens às instâncias criadas // obter o valor do contador int i1, i2; i1 = c1.getconta(); i2 = c2.getconta(); // verificar os resultados System.out.println ( c1 = + i1 ); System.out.println ( c2 = + i2 ); // alterar valores c1.incconta(); c2.incconta(10); System.out.println ( c1= + c1.getconta() + c1.decconta(); c2.decconta (2); \n + c2 = + c2.getconta() ); Apontamentos de POO - 39

// converter para String String s = c1.tostring(); System.out.println (s); System.out.println ( c2.tostring() ); System.out.println ( c2 ); (??) // main // class TesteContador Exercício: Qual o output deste programa? Verifique a sua solução implementando o programa. c1 = 0 c2 = 10 c1= 1 c2 = 20 Contador: 0 Contador: 18 Contador: 18 (??) Numa instrução de escrita, o método tostring definido pelo utilizador será usado para converter o objecto para texto mesmo quando não é explicitamente invocado. Apontamentos de POO - 40

Variáveis e Métodos de Classe Em Java, quer as classes quer as instâncias das classes são objectos. Onde está o estado da classe? Com que operações é manipulado? Variáveis de classe - representam a estrutura interna de uma dada classe Métodos de classe - métodos que implementam o comportamento da classe. - São invocados através de mensagens enviadas à classe. Como se declaram? - com o identificador static Ex.lo método de classe public static int metodoa() private static String texto; variável de classe Para que servem? Usam-se variáveis de classe para armazenar valores que digam respeito a todos os objectos da classe. Apontamentos de POO - 41

Exemplo: - se quiséssemos saber, em determinado instante, quantos objetos do tipo Contador já tinham sido instanciados. public class Contador { // declarar uma variável de classe que vai conter o nº de objetos instanciados private static int contadores = 0; // método de classe public static int getcontadores () { return (contadores) ; // variável de instância private int conta; // reescrever os construtores public Contador () { conta = 0; contadores ++; public Contador ( int conta) { this.conta = conta; contadores ++; Sempre que é criada uma instância da classe Contador a variável contadores é incrementada. Apontamentos de POO - 42

Na classe TesteContador: public class TesteContador { public static void main ( String[] args) { System.out.println ( Nº de objetos do tipo Contador ); System.out.println (Contador.getContadores()); Contador c1 = new Contador(); Contador c2 = new Contador(10); System.out.println ( Nº de objetos do tipo Contador ); System.out.println (Contador.getContadores()); Nome da classe método de classe - Variáveis de classe podem ser usadas mesmo que nunca tenha sido instanciado um objeto da classe. - Métodos de classe são acessíveis às instâncias da classe, isto é um método de instância pode invocar um método de classe. - Métodos de classe não podem invocar métodos de instância. Apontamentos de POO - 43

Questões: - Quantas e quais as variáveis que existem ao longo da execução do programa anterior? - Qual o output do programa anterior? - Em que situações anteriores já usou valores ou métodos de classe? public static void main(string[] args); System.out ; System.in ; Calendar.HOUR_OF_DAY; Math.random(); Classes não instanciáveis: São classes só com variáveis e métodos de classe (diferente de classes com apenas uma instância) - Não especificam a estrutura nem o comportamento de qualquer instância. - Representam centros de serviços que não faz sentido replicar Apontamentos de POO - 44

Ex.lo Classe Math: Math.mensagem(); double x, y, z; double x = Math,sqrt( y ); double y = Math.cos (x ); double z = Math.random(); Quando definimos uma classe, alguns atributos dessa classe podem ser objetos de uma qualquer classe já definida. Trata-se de uma forma de Composição de Classes aula teórico-prática Apontamentos de POO - 45