Análise de Programação



Documentos relacionados
Encapsulamento de Dados

Prof. Jhonatan Fernando

Programação por Objectos. Java

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

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

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

A Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação

Análise e Projeto Orientados por Objetos

Algoritmos e Programação II. Sobrecarga

Programação Orientada a Objetos em Java

Programação por Objectos. Java

Exercícios de Revisão Java Básico

Programação Orientada a Objetos. Encapsulamento

Linguagem de Programação I. Orientação a Objetos em Java

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

UNIVERSIDADE FEDERAL DO PARANÁ

Construção de novas Classes em Java. Classes Atributos Métodos Herança...

Técnicas de Programação II

Herança. Alberto Costa Neto DComp - UFS

Implementando uma Classe e Criando Objetos a partir dela

Programação Orientada a Objetos C++

Programação Orientada a Objetos (DPADF 0063)

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

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

Módulo 06 Desenho de Classes

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 Orientada a Objetos e Java - Introdução. Carlos Lopes

BSI UFRPE Prof. Gustavo Callou

Programação por Objectos. Java

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

Linguagem de Programação III

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

2 Orientação a objetos na prática

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Orientação a Objetos e a Linguagem Java

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

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

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

Unidade IV: Ponteiros, Referências e Arrays

Material de Apoio 5. int getres() { return res; O que estas classes possuem em comum? 1) 2) 3)

Conversão de Tipos e Arrays

Desenvolvimento OO com Java Orientação a objetos básica

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

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

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

Java. Marcio de Carvalho Victorino

Programação Visual TIC - 3PA. Lista de Exercícios 02

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

insfcanceof new public switch transient while byte continue extends for int null

Projeto de Software Orientado a Objeto

FBV - Linguagem de Programação II. Um pouco sobre Java

Sobre o Professor Dr. Sylvio Barbon Junior

Vetores. Professor Dr Francisco Isidro Massettto

Capítulo 4. Packages e interfaces

Computação II Orientação a Objetos

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

Projeto de sistemas em Java. Algoritmos e Programação I. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario

Java 2 Standard Edition Como criar classes e objetos

Orientação a Objetos com Java

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

Aula 3 Objeto atual com referencia THIS e Classes com Herança

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

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

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

Capítulo 8. Introdução UML

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.

DEFINIÇÃO DE MÉTODOS

Influenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados:

Guia de Fatores de Qualidade de OO e Java

Java Threads. Introdução

Tópicos da Aula. Classes e Objetos. Classe Pública em Java. Classes em Java. Assinatura de Métodos. Corpo de Classes e Métodos. Conceitos de classe

LINGUAGEM ORIENTADA A OBJETOS

Programação Orientada a Objetos (DPADF 0063)

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores

Rafael Santos. Instituto Nacional de Pesquisas Espaciais rafael.santos. Rafael Santos - rafael.

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

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Métodos de Construção de Software: Orientação a Objetos. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Programação Orientada a Objeto

Capítulo 13. Encapsulamento. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

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

Java TM e o Modelo de Objetos

2. O gerador de código estende DepthFirstAdapter implementando a interpretação que gerará código Jasmin a partir de Smallpascal.

Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação

Programação com Acesso a BD. Programação com OO Acesso em Java

Noções sobre Objetos e Classes

Análise de Programação

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

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

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

Algoritmos e Programação

UM ESTUDO PARA A EVOLUÇÃO DO PHP COM A LINGUAGEM ORIENTADA A OBJETOS

Introdução a Java. Hélder Nunes

Introdução a classes e objetos by Pearson Education do Brasil

Reuso com Herança a e Composiçã

Transcrição:

Análise de Programação Conceitos Avançados da Linguagem de Programação Java Prof Gilberto B Oliveira

Encapsulamento Proteger o dado dentro de uma classe (capsula segura) Facilita o uso da classe por outros programadores Protege certos dados contra alterações indevidas Modificadores mais comuns aplicados a métodos e atributos: public Qualquer classe de qualquer lugar pode acessar; private Ninguém pode acessar, exceto a própria classe

Modificadores Modificador Classe Pacote Sub Classe Livre private X default X X protected X X X public X X X X Interface: Métodos e variáveis públicas Implementação Maneira como a classe executa uma operação Boas práticas de POO permitem alterar a implementação sem alterar a interface das classes

Métodos get e set A A implementação de métodos usados para proteger atributos privados é comum em POO Método get() Permite criar uma saída mais adequada ao dado armazenado Método set(tipo arg) Permite controlar de maneira mais eficaz o dado a ser armazenado no atributo antes de atribuí-lo

Implementação de classe não encapsulada Classe Funcionário: public class Funcionario { public String nome; public double salario; public void identificarfuncionario(){ Systemoutprintln("Nome: " + nome); Systemoutprintln("Salário: " + salario);

Quebrando as regras de negócio Sem o encapsulamento outra classe acessa o salário da classe funcionário e atribui um salário menor do que o salário mínimo atual no Brasil: public class TesteFuncionario { public static void main(string[] args){ Funcionario f1 = new Funcionario(); f1salario = 45000;

Método Get O O método get gera uma saída mais inteligível para o usuário: public String getnome(){ if(thisnomecharat(thisnomelength() - 1) == 'a'){ return "Sra " + thisnome; else { return "Sr " + thisnome;

Método Set(arg) O O método set permite um tratamento mais eficaz: public void setsalario(double salario){ if(salario < 510){ Systemoutprintln( Salário inapropriado! ); else { thissalario = salario;

Método Construtor São invocados automaticamente ao instanciar objetos; Normalmente são usados para inicializar atributos Sintaxe: [modificador] class NomeClasse { [modificador] NomeClasse([argumentos] [argumentos]){ bloco_codigo;

Exemplo: Método construtor simples: public Funcionario() { thissetnome("funcionario"); thissetsalario(5100); O O método construtor pode ser sobrecarregado permitindo a inicialização de várias formas

Exemplo2: Método construtor sobrecarregado: public Funcionario() { thissetnome("funcionario"); thissetsalario(5100); public Funcionario(String nome){ thissetnome(nome); thissetsalario(5100); public Funcionario(double salario){ thissetsalario(salario); thissetnome("funcionario");

Sintaxe: Declaração de vetores de uma dimensão Sintaxe: tipo [] nomevetor; Exemplos com tipos primitivos: char [] codcor; double [] preco; Exemplos com tipos objetos: Camisa [] minhacamisa; Date [] agenda;

Instancia de vetores de uma dimensão: Sintaxe: Sintaxe: nomevetor = new tipo [comprimento]; Exemplos com tipos primitivos: codcor = new char[5]; preco = new double[3]; Exemplos com tipos objetos: minhacamisa = new Camisa[2]; agenda = new Date[7];

Sintaxe: Inicializando vetores de uma dimensão Sintaxe: nomevetor[indice] = valor; Exemplo com tipos primitivos codcor[0] = 'P'; codcor[1] = 'V'; codcor[4] = 'A';

Inicializando vetores de uma dimensão Exemplo com tipos objeto: minhacamisa[0] = new Camisa(); minhacamisa[1] = new Camisa( T-Shirt ); Outro exemplo: agenda[0] = new Date(); agenda[1] = new Date(2010, 05, 18); agenda[6] = new Date( 2010/11/21 );

Declarar, instanciar e inicializar Sintaxe: Sintaxe: tipo [] nomevetor = {item0,, itemn; Exemplo com tipos primitivos: double [] preco = {125, 135, 130; char [] codcor = {'A', 'P', 'V', 'B', 'R'; Exemplo com tipos objetos: Camisa [] minhacamisa = {new Camisa(), new Camisa( T-Shirt ), new Camisa( Polo, 'M'); Date [] agenda = {new Date( 2010/07/10 ), new Date(2010, 03, 21), new Date();

Acessando valores contidos em vetores Inserindo um valor em uma posição do vetor: codcor[3] = 'W'; agenda[0] = new Date( 2010/07/30 ); preco[2] = 245; minhacamisa = new Camisa( Social, 'G'); Retirando valores de uma posição do vetor: Date d = agenda[0]; char c = codcor[3]; double p = preco[1]; Camisa c1 = minhacamisa[2];

Comportamento da Memória (primitivos) char [] codcor = {'P', 'B', 'V'; char tamanho = 'M'; 0@B25X32 P B V M Pilha Stack Aleatória Heap

Comportamento da Memória Camisa [] suacamisa = {new Camisa( Social ), new Camisa('P'), new Camisa( Polo, 'M'); Camisa minhacamisa = new Camisa(); 0@B25X32 0@X56622 Pilha Stack 0@B12345 0@D23456 0@F34567 T-Shirt B M Social B M T-Shirt P M Polo B G Aleatória Heap

Exemplo: Atribuição de valores através de laço Exemplo: int [] meuvetor; meuvetor = new int[100]; for(int i = 0; i < meuvetorlength length; ; i++){ meuvetor[i] = i;

Exemplo Laço for melhorado public class ExemploFor { public static void main(string[] args) { int [] num = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19; int soma = 0; for(int item : num) ) { soma += item; Systemoutprintln( Soma: + soma);

Varargs Criação de métodos que recebem uma quantidade de argumentos variada public class MensagemVar { public static void minhamensagem(string nome){ for(string lista : nome) { Systemoutprintln(lista); public static void main(string [] args) { minhamensagem(args);

Vetores multidimensionais Sintaxe de criação: tipo [] [] nomevetor; Exemplo: Exemplo: int [] [] notabim; Sintaxe de instância: nomevetor = new int [numvetores] [comp]; Exemplo Exemplo notabim = int[5][4];

Exemplo de vetor multidimensional João José Maria Joana Joaquina 1 Bim 2 Bim 3 Bim 4 Bim

Atribuição Exemplo de atribuição de valores às posições dos vetores: notabim[0] [0] = 5; notabim[0] [1] = 7; notabim[0] [2] = 9; notabim[1] [3] = 5; notabim[2] [2] = 10; notabim[3] [0] = 7;

Atribuição em vetor multidimensional 1 Bim 2 Bim 3 Bim 4 Bim João 5 7 9 José 5 Maria 10 Joana 7 Joaquina

Herança (inheritance) Sintaxe para a criação de subclasses: [modificado] class NomeSubClasse extends NomeSuperClasse Permite criar classes mais especializadas a partir de classes generalistas Classes generalistas são superclasses e classes especializadas subclasses Classes generalistas carregam atributos e métodos que são herdados pela(s) subclasse(s) Quanto mais abstratas forem as classes de um sistema, mais abrangente ele será, portanto, melhor construído

Pacotes da API Java API Application Programming Interface Abstract Windowing Toolkit: Usada para construir e gerenciar uma GUI (Graphic User Interface): javaawt*; Comportamentos específicos de Applet javaapplet*; Permite executar operações relacionadas a rede javanet*; Pacote com classes utilitárias, permite gerar números randômicos, data e hora, etc javautil*;

Importando pacotes: Usando uma declaração import import javaawt*; public class MeuBotao extends Button { //Implementação da classe Usando o nome qualificador da classe completo public class MeuBotao extends javaawtbutton { //implementação da classe