Capítulo 4. Packages e interfaces



Documentos relacionados
Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

Programação por Objectos. Java

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Programação por Objectos

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

POO Programação Orientada a Objetos. Classes em Java

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Programação por Objectos. Java

Técnicas de Programação II

Capítulo 3. Programação por objectos em Java

Módulo 07 Características Avançadas de Classes

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding

BSI UFRPE Prof. Gustavo Callou

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Programação Avançada

Programação de Computadores - I. Profª Beatriz Profº Israel

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único

Programação Orientada a Objetos C++

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br)

Programação Orientada a Objetos em Java

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Análise de Programação

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Orientação a Objetos

Keeper of Knowledge. Capítulo 2 Classes em Java

Sistemas Paralelos e Distribuídos /2004 Curso: Matemática /Informática Sistemas Distribuídos /2004 Curso: Ensino da Informática

Capítulo 8. Introdução UML

Herança. Algoritmos e Programação II. Aula 5 Herança

Programação Orientada a Objetos. Pacotes e CLASSPATH: Definifdo e Usando Pacotes

Java 2 Standard Edition Como criar classes e objetos

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

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Java. Marcio de Carvalho Victorino

CONVENÇÃO DE CÓDIGO JAVA

Classes Abstratas e Interfaces

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Como o FIT funciona. FIT: Framework for Integrated Tests FIT. Dados de testes. Programa. Fixtures. classes. Resultados de testes

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

Programação online em Java

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Polimorfismo. Prof. Leonardo Barreto Campos 1

Programação com Objectos. Processamento de Dados I. 4. Classes Abstractas

Programação Orientada a Objetos. Encapsulamento

Programação Orientada a Objetos (DPADF 0063)

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

Programação Orientada a Objetos em Java. Threads Threads Threads. Threads

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.

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

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Programação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Guião de Introdução ao Eclipse IDE Índice

Introdução à orientação a objetos. João Tito Almeida Vianna 25/05/2013

Projeto de Software Orientado a Objeto

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Classes, Superclasses e Subclasses

Lógica de Programação

Linguagem de Programação III

UNIVERSIDADE FEDERAL DO PARANÁ

Programação Orientada a Objetos (DPADF 0063)

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Padrão Básico de Projeto: Interfaces e Polimorfismo

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Sintaxe Básica de Java Parte 1

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Classes Abstratas e Interfaces

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

Prof. Esp. Adriano Carvalho

Programação por Objectos. Java

Introdução. Programação. Orientada a Objetos: Reuso. Introdução. Classes Abstratas

Programação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API

Linguagens de. Aula 02. Profa Cristiane Koehler

Prototype, um Design Patterns de Criação

Programação Orientada a Objetos em java. Polimorfismo

Computação II Orientação a Objetos

Orientação a Objetos com Java

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

THREADS EM JAVA. George Gomes Cabral

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Herança. Alberto Costa Neto DComp - UFS

Um pouco do Java. Prof. Eduardo

Programação Orientada a Objetos em Java. Herança

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Tópicos em Engenharia de Computação

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Membros de classe e de instância. PARTE III: Java e OO - detalhes. Exemplo 1: método. Exercício. Exemplo 1 corrigido

Introdução a Java. Hélder Nunes

Programação com Objectos. Processamento de Dados I. 3. UML (Unified Modeling Language)

PROGRAMAÇÃO JAVA. Parte 1

Threads e Concorrência em Java (Material de Apoio)

Sobre o Professor Dr. Sylvio Barbon Junior

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha

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

Java RMI. Alcides Calsavara

2 Orientação a objetos na prática

Transcrição:

Capítulo 4. Packages e interfaces 1/17

Índice Indice 4.1 - Package 4.2 - Interface 2/17

Índice 4.1 Package 4.1 - Package 4.2 -- Interface 3/17

4.1 Package Package ou pacote está para o Java como as directorias estão para os ficheiros Permitem arrumar classes e seus componentes além de controlar a sua visualização : Permite que os programadores dêem o mesmo nome a diferentes classes. (Colocando-as em pacotes diferentes) Critérios de arrumação: -Hierarquias de classes -Funcionais (Classes que trabalhem em conjunto) -Autor (pessoa ou empresa) -Uma mistura dos anteriores Ao conjunto de métodos disponibilizados por um pacote é chamado API Application programmer interface: A estrutura de directorias pode ser compactada num ficheiro.jar (algoritmo ZIP) Os packages agrupam interfaces e classes relacionadas num mesmo pacote que pode depois de ser disponibilizado num ficheiro jar, juntamente com o ficheiro MANIFEST.MF que descreve o pacote. 4/17

4.1 Package Como criar um package? 1 - Criar uma directoria com o nome do package exemplo p1 (No netbeans a directoria é criada através de New -> JavaPackage ) 2 - Criar a classe A1 dentro da directoria p1. 3 - Editar a classe A1 e adicionar a seguinte linha no início (antes da definição da classe) - package p1; 4 Compilar a classe dentro da directoria. -javac A1.java 5 Executar a classe fora da directoria. -cd.. -java p1.a1 Nota: O java é sensível a maiusculas e minusculas. O nome da directoria tem que ser exactamente igual ao do package Em c:\java\src\p1 package p1; public class A1 { A mesma classe num package diferente p2 seria identificada por p2.a1. 5/17

4.1 Package Hierarquia de packages Da mesma forma que uma directoria pode conter subdirectorias, um package pode conter outros packages Exemplo: -O package p3 está incluído em p2 que por sua vez está incluído em p1. package p1.p2.p3; public class A1 {. No sistema operativo deverá existir uma estrutura de directorias equivalente Se um tipo não for declarado como pertencendo a um package, é colocado num package sem nome. (Facilita o desenvolvimento de pequenos programas) 6/17

4.1 Package Importação simples e a pedido O pacote java.lang é importado automaticamente pelo compilador java. Sempre que se pretende utilizar uma classe pertencente a outro package, temos que a referenciar com o nome completo: fully qualified name O comando import evita as referências através do fully qualified name public class A1 { java.util.date d1 = new java.util.date(); import java.util.date; public class A1 { Date d1 = new Date(); Fully Qualified Name Com importação simples A importação simples importa apenas as definições da classe especificada no import. import java.util.date; A importação a pedido (on demand) indica que devem ser procuradas todas as classes do pacote import java.util.*; 7/17

4.1 Package Ambiguidades na importação Quando existem duas classes com o mesmo nome em packages diferentes -Exemplo: ambos os packages java.util e java.sql têm a classe Date. import java.util.*; import java.sql.*; public class A1 { Date d1 = new Date(); Date d2 = new Date(System.currentTimeMillis()); Erro ambiguidade: Duas classes com o mesmo nome -A ambiguidade só pode ser resolvida referenciando as classes pelo Fully Qualified Name import java.util.*; import java.sql.*; public class A1 { Ambiguidade resolvida java.util.date d1 = new java.util.date(); java.sql.date d2 = new java.sql.date(system.currenttimemillis()); 8/17

4.1 Package Variável ClassPath A variável classpath É uma variável de ambiente do sistema operativo -Por omissão, o compilador e JRE procuram as classes e packages na directoria actual -Esta variável informa o compilador e JRE onde estão localizadas as classes e packages O caminho das classes que desenvolvemos deve ser adicionado da seguinte forma no Windows - My computer -> properties -> advanced - Seleccionar environment variables - Fazer New para criar a variável ou Edit para editar o valor da existente Alternativamente podemos indicar à JVM, o caminho das classes com classpath ou cp na chamada da classe: c:\>java cp c:\progjava\src\testes p1.a1 9/17

Índice 4.2 Interface 4.1 -- Package 4.2 - Interface 10/17

4.2 Interface Interfaces Com os interfaces as classes especificam o que vão fazer e não como vão fazer -Uma interface pode ser implementada por várias classes -Uma classe pode implementar vários interfaces ao mesmo tempo As interfaces permitem simular a herança múltipla (como no C++ em que 1 subclasse pode herdar de mais do que uma superclasse). -Note que o Java apenas suporta herança simples Ao implementar o interface, a classe assume o compromisso de respeitar a norma definida pela interface (são obrigadas a implementar os métodos do interface) Um interface pode herdar as definições de outra interface -Interfaces podem utilizar polimorfismo Um interface não pode ser instanciado 11/17

4.2 Interface Interface: Sintaxe para definição da interface Qualificadores da interface: public abstract interface nome [ extends nomepai ]{ Campos Métodos opcional Herança Qualificadores da interface: -public: A interface pode ser publicamente acedida -abstract: a interface não pode ser instanciada (todas as interfaces são por definição abstract) Na omissão do qualificador public uma interface é apenas acedida no pacote onde está definida. 12/17

4.2 Interface Interface: Sintaxe para definição da interface A interface define-se indicando a assinatura dos seus métodos: -Não se podem definir variáveis -Podem ser definidas constantes que por omissão receberão public static final -Se a interface for public, todos os métodos serão public Exemplo: public interface SalarioDeEmpregado { public double calculosalario(double numhoras, double numfaltas, double salhora); public double calculoimposto(double salario, double taxairs); 13/17

4.2 Interface Interfaces Todas as interfaces são por definição abstract -O qualificador abstract é por convenção omitido. Todos os membros (constantes e métodos) são por definição public -O qualificador public pode ser omitido -Mesmo que o interface não seja declarado public as suas constantes e métodos são. Todas as constantes são por definição public static final -Os qualificadores public static final podem ser omitidos -Não podemos definir variáveis. Todas são constantes (temos obrigatoriamente que indicar o seu valor) Todos os métodos são por definição public abstract -Os qualificadores public abstract podem ser omitidos Um interface não admite nenhum outro qualificador para constantes e métodos 14/17

4.2 Interface Interfaces: Implementação Uma classe pode implementar vários interfaces Um interface pode ser implementado por várias classes Implementação de interfaces não impede que a classe possa estender outra (herança múltipla simulada) package Capitulo4; public interface Pilha { // métodos boolean vazia(); Object topo(); void remover(); Os métodos definidos na interface têm que ser implementados. Todos têm que ter o qualificador public, pois estes são-no por definição e o Java não permite redução da sua visibilidade package Capitulo4; public class Subpilha extends Pai implements Pilha{ // definição da classe // Implementação dos métodos do interface public boolean vazia(){ return true; public int topo(){ return 2; public void remover(){ System.out.println(); 15/17

4.2 Interface Herança de interfaces Herança de interfaces Uma interface pode estender mais que uma interface -As interfaces estendidas são denominadas superinterfaces. A nova interface é denominada subinterface -Uma subinterface herda todas as constantes declaradas nas suas superinterfaces. -Na subinterface a constante herdada é acedida apenas pelo nome qualificado: Superinterface.constante -Herança exemplo: Reescrita da constante 2 + 1 (Nome qualificado) Y extends x 16/17

FIM 17/17