Organizando seu código Classes, pacotes, modificadores. Padrões.

Slides:



Advertisements
Apresentações semelhantes
Curso de aprofundamento na linguagem C
Advertisements

Introdução a Programação Orientada a Objetos
Programação Orientada a Objetos*
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
Prof. Thiago Pereira Rique
Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005.
Kleinner Farias e Raphael do Vale
Java: Pacotes e Modificadores de Visibilidade
Orientação a Objetos: Modificador Final para Métodos e Classes
Java: Pacotes e Modificadores de Visibilidade
Refatorações Experiência é aquela coisa maravilhosa que permite que você reconheça um erro tão logo o cometa novamente F.P. Jones.
Polimorfismo e Acoplamento Dinâmico
Capítulo 13 Pacotes. 2 Capítulo 13 – Pacotes Pacotes Pacote Cláusula package Cláusula import Executando uma classe de pacote Modificadores de acesso.
Orientação a Objetos Classes
Paradigmas da Programação – Semestre 1 – Aula 3
Classes & Objectos em JAVA5
Clique para editar o estilo do subtítulo mestre Desenvolvimento web com Java JAVA 5 – Declarações e Controles de Acesso.
Clique para editar o estilo do subtítulo mestre Desenvolvimento web com Java JAVA 5 – Declarações e Controles de Acesso.
Classes e objetos P. O. O. Prof. Grace.
CRIANDO OBJETOS EM JAVA
Classes, Objetos e Encapsulamento
Introdução a programação (if669cc)
Aula prática 13 Orientação a Objetos – C++ Parte 1
JAVA Orientação a Objetos
Interfaces.
Programação I Aula 2 (Métodos)
Linguagem de Programação JAVA
Prof. Daniel Aula 03.  Criar Projeto  Criar Pacote  Criando classes  Meu primeiro programa  Compilar  Comentários  Variáveis.
Classes, Objetos, Atributos e Métodos JAVA
Linguagens de Programação II Aula 04 – Entendendo Classes
if669 - Introdução à Programação
Professora Lucélia Oliveira
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Programação Orientada à Objetos
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Membro Static.
Acoplamento e Coesão Modelagem e Programação Orientada a Objetos
LPII Professora Lucélia. Pacotes Um pacote em Java é um diretório onde ficam armazenadas uma ou mais classes. Geralmente as classes com a mesma afinidade.
Estruturas de Dados Aula 2: Estruturas Estáticas 07/04/2014.
Curso de Aprendizado Industrial Desenvolvedor WEB
Linguagem II Exceções.
Implementação Orientada a Objetos – Aula 03
Programação Orientada à Objetos
Curso de Aprendizado Industrial Desenvolvedor WEB
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Prof.: Bruno Rafael de Oliveira Rodrigues. Construtor é bloco declarado que é chamado no momento em que o Objeto é criado (instanciado). Todas as classes.
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Aula Prática 3 Funções Monitoria Introdução à Programação.
Laboratório de Programação II Pacotes Visibilidade Referências a Objetos.
Java Básico Instrutor: Davi Pires
Linguagem I Strings.
1 Reestruturação das Linguagens da Disciplina “Paradigmas de Linguagens de Programação” para Java 1.5 Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt)
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Clique para editar o estilo do subtítulo mestre POO Utilizando PHP5 Prof. André Rabelo.
Linguagem II Classes Abstratas Interfaces. Davi Pires Revisão Reuso de código Superclasses e subclasses Composição vs. Herança Construtores.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Modificadores Programação II.
Aula Prática 13 Orientação a Objeto Monitoria
Orientação a Objetos Paradigma. Davi Pires Revisão Dúvidas da aula passada? –Características de Java –Compilador vs. Interpretador.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Mapeamento de IDL para C#
Curso Básico de Android
Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin/ Marcia Bissaco Universidade de Mogi das Cruzes
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Organizando seu código Classes, pacotes, modificadores. Padrões

Davi Pires Revisão Classes Atributos Métodos Construtores Palavras-chave –class, void, return, new, this, null

Davi Pires Pacotes Permitem organizar um projeto com diversas classes de forma mais intuitiva. docentesdisciplinas Professor CadastroProfessor RepositorioProfessor ProfessorAdjunto Disciplina CadastroDisciplina RepositorioDisciplina DisciplinaDaPos

Davi Pires Pacotes Não há sub-pacotes. Mas podemos ligar pacotes “semanticamente” –Usando o nome. –Servidor projeto.rede projeto.rede projeto.rede.servidor Conexao ConexaoHandler ConexaoFinalizer AbstractProtocol Servidor ServidorHTTP ServidorFTP ServidorIRC

Davi Pires Porque usar pacotes? Isola declarações de nomes. Ligação semântica entre as classes. Ligação entre a classes e o modo como elas estão fisicamente armazenadas. –Pacotes e estrutura de diretórios projeto rede servidor Conexao ConexaoHandler ConexaoFinalizer AbstractProtocol Servidor ServidorHTTP ServidorFTP ServidorIRC

Davi Pires Ligando classes e pacotes Cláusula package: –Se estiver presente, deve ser a primeira cláusula num arquivo. projeto.rede Conexao ConexaoHandler ConexaoFinalizer AbstractProtocol package projeto.rede; class Conexao { AbstractProtocol protocol; //... }

Davi Pires Como ligar pacotes? Cláusula import –Usada para importar para dentro do pacote atual as definições de classes contidas em outro pacote. projeto.rede projeto.rede.servidor Conexao ConexaoHandler ConexaoFinalizer AbstractProtocol Servidor ServidorHTTP ServidorFTP ServidorIRC package projeto.rede.servidor; class Servidor { Conexao conexao; //... } import projeto.rede.Conexao;

Davi Pires Cláusula import Versão genérica: –import projeto.rede.*; –Não carrega todas as classes. Somente aquelas que você precisa. projeto.rede projeto.rede.servidor Conexao ConexaoHandler ConexaoFinalizer AbstractProtocol Servidor ServidorHTTP ServidorFTP ServidorIRC package projeto.rede.servidor; import projeto.rede.*; class Servidor { Conexao conexao; ConexaoHandler handler; //... }

Davi Pires Pacotes Fundamentais em projetos grandes. –Organização das classes. –Divisão de tarefas dentro da equipe. Melhora a geração de documentação. Ajuda a implantação do tópico que veremos no slide seguinte...

Davi Pires Controle de Acesso Como controlar a “visibilidade” de um atributo? Porque controlar a visibilidade de um atributo?

Davi Pires Modificadores de Acesso Atributos –private – só é visto dentro da classe. –public – acessíveis de qualquer outra parte do projeto. –default – visibilidade de pacote. Métodos –private – auxiliares; visíveis só na classe. –public – acessíveis de qualquer outra parte do projeto. –default – visibilidade de pacote.

Davi Pires Modificadores de Acesso Classes –public – acessível de qualquer parte. –private – acessível apenas no arquivo. –default – visibilidade de pacote. Pacotes –são sempre visíveis.

Davi Pires Modificadores de Acesso Tentando acessar conteúdo private –PrivateExample.java –PrivateAcessor.java Tente compilar ambas as classes. –O que acontece?

Davi Pires Corrigindo o erro... Sugestões?

Davi Pires Corrigindo o erro... Será uma boa tornar o atributo public? –Resposta: NÃO! Razões –E se mudarmos o tipo ou a forma de armazenamento do atributo? –E se queremos ele read-only? –Ou write-only?

Davi Pires Encapsulamento Solução: métodos get/set public! –Torne o atributo private –Crie métodos public que permitam acessar o valor da variável, ou alterá-lo.

Davi Pires Exemplos // típico método get private int atributoSecreto; public int getAtributoSecreto( ) { return atributoSecreto; } // típico método set private int atributoSecreto; public void getAtributoSecreto (int parametro ) { atributoSecreto = parametro; }

Davi Pires Encapsulamento Solução largamente encontrada em diversas aplicações (reais!). Tornando os atributos private você concentra os erros nos métodos public. –Facilita a detecção dos erros.

Davi Pires Encapsulamento Exercício: –Altere os arquivos PrivateExample.java e PrivateAcessor.java. –Aplique encapsulamento nos campos de PrivateExample e altere o código em PrivateAcessor para que ele funcione com essas alterações.

Davi Pires Padrão de Codificação Padrão de codificação Java. Variáveis e Métodos: –1ª palavra minúscula; palavras subjacentes maiúsculas. Classes –Sem underlines; todas palavras começando com maiúscula. Pacotes –letras minúsculas.

Davi Pires Padrão de Codificação Nomes significativos para variáveis –Evite declarações como: int i = 0; boolean v; //para representar se o usuário é VIP –Prefira int contador = 0; boolean ehUsuarioVIP;

Davi Pires Exercício Voltem à modelagem do restaurante da aula passada. Organize suas classes em pacotes. Reflita sobre a facilidade da implantação de mudanças neste design.

Este trabalho está licenciado sob uma Licença Creative Commons Atribuição-Uso Não-Comercial-Compatilhamento pela mesma licença. Para ver uma cópia desta licença, visite ou envie uma carta para Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.