Programação Java. - Classes, Objetos, Atributos e Métodos - Marco Fagundes Marco Fagundes -

Documentos relacionados
Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Orientação a Objetos

Introdução à orientação a objetos

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

Orientação a Objetos com Java

Banco de Dados. Banco de Dados Parte 2. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Exercício de Estrutura de dados. Java Fila

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS

Revisão Diagrama de Caso de Uso. Rodolfo Adamshuk Silva 30/08/2013

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

DEFINIÇÃO DE MÉTODOS

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

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

Linguagem de Programação III

Simulado de Linguagem de Programação Java

Ayuda Sua ONG na mão

GUIA DO USUÁRIO AUTOR GECi Gerenciador de eventos científicos

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

RAIS RELAÇÃO ANUAL DE INFORMAÇÕES SOCIAIS

Exercícios de Revisão Java Básico

BC-0505 Processamento da Informação

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

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

Objetivos: Entender o funcionamento dos programas Java via linha de comando

Estrutura em Camadas. Estrutura em Camadas. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Introdução a Java. Hélder Nunes

Modificador static e Pacotes. Alberto Costa Neto DComp - UFS

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

,QVWDODomR. Dê um duplo clique para abrir o Meu Computador. Dê um duplo clique para abrir o Painel de Controle. Para Adicionar ou Remover programas

LIBERAÇÃO DE ATUALIZAÇÃO CORDILHEIRA

Unidade IV: Ponteiros, Referências e Arrays

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

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

Java 2 Standard Edition Como criar classes e objetos

Programação Orientada a Objetos C ++ 4 Conceitos de OO em Java Classes e Objetos

ENG1000 Introdução à Engenharia

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

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

Orientação a Objetos

Programação por Objectos. Java

O sistema gestor já contem uma estrutura completa de categorias que são transferidas automaticamente para cada empresa nova cadastrada.

Algoritmos APRENDENDO A PROGRAMAR COM C#

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

BSI UFRPE Prof. Gustavo Callou


Disciplina: Programação III Conteúdo: Programação Orientada a Objetos Linguagem JAVA Página: 70

POO Programação Orientada a Objetos

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA:

Inteligência Artificial

Manual Mobuss Construção - Móvel

Portal de Sistemas Integrados. Manual do Usuário. Versão: 1.0

Guia de Fatores de Qualidade de OO e Java

MANUAL DE INSTALAÇÃO DO CERTIFICADO DIGITAL A1

Engenharia de Software II

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

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access

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

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos

CONTEÚDO ORIENTAÇÃO A OBJETOS 1. INTRODUÇÃO PROGRAMAÇÃO ORIENTADA A OBJETOS 19/08/ Introdução. 9. Encapsulamento 2. Lógica de Programação

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

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

Lendo Dados do Teclado

Conversão de Tipos e Arrays

INF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1

Programação por Objectos. Java

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

Um Exemplo de Refatoração. Prof. Alberto Costa Neto DComp/UFS

Conhecendo o Delphi 2010

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

Curso de Inverno - CECID

Modelo Lógico: Tabelas, Chaves Primárias e Estrangeiras

Inclusão de Validação Biométrica

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

FACULDADE PITÁGORAS DE UBERLÂNDIA PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA LISTA DE EXERCÍCIOS (Compilação) Versão 2.0

Objetivo do Portal da Gestão Escolar

Programação para Web HTML - Parte 2

Desenvolvimento de aplicações Web. Java Server Pages

Procedimento para Adequações às Mudanças Tecnológicas do Módulo Autorizador v4

Disciplina: Unidade III: Prof.: Período:

Capítulo 5 Reuso de Classes

Reader e Writer para streams de caracteres (texto).

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

Desenvolvimento Web TCC Turma A-1

Os passos a seguir servirão de guia para utilização da funcionalidade Acordo Financeiro do TOTVS Gestão Financeira.

Solicitação de Autorização Intercâmbio

Criar a classe Aula.java com o seguinte código: Compilar e Executar

HEMOVIDA (CICLO DO SANGUE - Gerenciamento de estoque para grandes eventos)

Java na Prática. Célio Silva Aula 3

Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC, Programação em Comunicações

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

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

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

XML Schema. Vanessa Braganholo. Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo

Programação para a Plataforma Android Aula 17. Broadcasts

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

Manual para utilização da funcionalidade de importar arquivo XML para prestação de contas

Transcrição:

Programação Java - Classes, Objetos, Atributos e Métodos - Marco Fagundes mfagundes@tre-pa.gov.br 1

Tópicos Programação Orientada a Objetos Classes e Objetos Definindo e Instanciando Classes Atributos Métodos Exercício Leitura Recomendada 2

Classes e Objetos Uma classe de objetos descreve um grupo de objetos com: Propriedades (atributos) e comportamentos (métodos) semelhantes Relacionamentos comuns com outros objetos Objetos/Instâncias Classificação Instanciação Aeronave capacidade prefixo... decolar manter pousar... 3

Classes e Objetos Banco Conta Corrente $ $ $ Abstração numero cc001 cc002 saldo 10,00 20,00 Objeto Conta Corrente depositar () numero 001 saldo 10,00 4

Especificando Classes Classe define um tipo abstrato de dados (TAD) dentro de um domínio específico de aplicação Por exemplo: Em um sistema bancário podem-se ter as seguintes classes: Cliente, Conta Corrente, Conta Poupança Especificação ContaCorrente Implementação em Java public class ContaCorrente{... } 5

Definindo e Instanciando Classes Java considera uma classe vazia como válida. Por exemplo: ContaCorrente class ContaCorrente{ } Para instanciar a classe definida deve-se: 1. Declarar uma variável do tipo da classe ContaCorrente cl; 2. Usar o operador new para criar o objeto cl = new ContaCorrente (); 6

Utilizando o Tipo Abstrato de Dados Para ilustrar o uso do TAD (classe) serão usadas 2 classes Classe do TAD Classe aplicativo (método main) public class ContaCorrente{... } public class TestaContaCorrente{ public static void main(string[] args){... } } 7

Lab1 - Definindo Abstrações Construa uma classe ContaCorrente. Construa uma classe TestaContaCorrente para criar um objeto do tipo ContaCorrente. Compile e execute o programa. 8

Atributos 9

Atributos Uma classe contém atributos e métodos Atributos são variáveis membro que armazenam informações de estado/propriedades do objeto ContaCorrente numero: String saldo: double Atributos ou variáveis membro ou variáveis de instância public class ContaCorrente{ String numero; double saldo; } 10

Acessando Membros de Objetos Uma vez criado o objeto seus atributos e métodos podem ser acessados através do operador. (<objeto>.<membro>) Por exemplo: c1.numconta = 001 ; //Acessando atributos c1.depositar(); //Acessando métodos É importante destacar que o acesso a atributos é somente para ilustração, pois os atributos devem estar protegidos (a ser visto em tópicos posteriores - Encapsulamento) 11

Acessando Atributos 1.public class TestaContaCorrente{ 2. public static void main(string[] args){ 3. ContaCorrente c = new ContaCorrente(); 4. c.numero = 001 ; 5. c.saldo = 10.0; 6. System.out.println(c.numero+ \t +c.saldo); 7. } 8. } Variável de Referência c linha 3 numero = null saldo = 0.0 linhas 4 e 5 c numero = "001" saldo = 10.0 12

Lab2 - Especificando Atributos Acrescente à classe ContaCorrente (criada no Lab1) os atributos numero e saldo. Na classe aplicativo crie um objeto do tipo ContaCorrente e atribua valores a seus atributos. Exiba o conteúdo do objetos criado. 13

Modelo de Referência a Objetos 14

Modelo de Referência a Objetos ContaCorrente c1 = new ContaCorrente(); c1.numero = "001 ; c1 Variável de Referência numero = 001" Memória 15

Modelo de Referência a Objetos ContaCorrente c1 = new ContaCorrente(); c1.numero = "001 ; ContaCorrente c2 = new ContaCorrente(); c2.numero = "001 ; c1 == c2?? c1.equals(c2)?? Variáveis de Referência c1 c2 numero= 001" numero= 001" Memória 16

Modelo de Referência a Objetos Continuando o exemplo anterior observe a instrução c1 = c2;//atribuição c1==c2?? c1.equals(c2)?? Destruído pelo GC Variáveis de Referência c1 c2 Aliasing numero = 001" numero = 001" Memória 17

Métodos 18

Métodos Implementam as operações que agem sobre os atributos do objeto São definidos da seguinte forma: <modificador_acesso><tipo_retorno> <nome><parâmetros> public boolean sacar(double pval){ return (saldo >= pval); } 19

Métodos Caso o método não retorne valor utiliza-se a keyword void public void depositar(double pvalor){ saldo += pvalor; //saldo = saldo + pvalor; } 20

Métodos - Exemplo ContaCorrente numero: String saldo: double depositar(x) class ContaCorrente{ String numero; double saldo;... public void depositar(double pval){ saldo += pval; } } class TestaContaCorrente{ public static void main(string[] args){ ContaCorrente c = new ContaCorrente(); c.numero = 001 ; c.saldo = 10; System.out.println(c.numero + \t +c.saldo); c.depositar(50); System.out.println(c.numero + \t +c.saldo); } } 21

Métodos - Escopo de Variáveis Variáveis de instância: global à classe Variáveis locais: residem no bloco em que foram definidas class ContaCorrente{ String numero; void impnumero(){ System.out.println(numero); } } Variável local variável de instância class ContaCorrente { String numero; void impnumero(){ String num; System.out.println(num); } } Erro!!! Variáveis de instância são inicializadas implicitamente, enquanto as variáveis locais devem ser inicializadas explicitamente 22

Lab3 - Implementando Métodos Implemente os métodos depositar e sacar na classe conta corrente. O método depositar recebe o valor a ser depositado como argumento e o adiciona ao saldo O método sacar recebe o valor a ser sacado como argumento, verifica se o saldo é suficiente para a operação Caso positivo debita o valor do saldo e retorna uma string informando ao usuário que o saque foi efetuado com sucesso. Caso negativo retorna uma string informando que o saldo é insuficiente para a operação. 23

Lab3 - Implementando Métodos Na classe aplicativo: crie um objeto do tipo conta informando número e saldo Exiba o número da conta e o saldo do cliente Efetue um depósito passando como argumento um valor(em hardcode) Exiba novamente o saldo da conta para confirmar se o depósito foi efetuado Efetue um saque passando como argumento um valor(em hardcode). Caso o saque seja efetuado com sucesso, exiba o novo saldo. Caso contrário exiba o saldo corrente. 24

Exercício 1 Construa uma aplicação que permita ao usuário informar dados de 3 candidatos. Crie uma abstração para representar os candidatos, com as propriedades: número e nome. Na classe aplicativo, deve-se listar os dados dos 3 candidatos. 25

Exercício2 Estenda o exercício anterior para permitir a realização de uma eleição entre os 3 candidatos cadastrados Para isso considere o seguinte: Os números 00 e 99 correspondem aos candidatos branco e nulo. Caso o eleitor digite um número inválido seu voto será nulo Caso o eleitor não informe nenhum número seu voto será branco Caso seja informado (-1) para o número do candidato a eleição termina Deve-se acrescentar uma propriedade no candidato que armazene seu total de votos 26

Exercício2 Ao término da eleição deve-se exibir: Total de Comparecimento. Qual candidato foi eleito (mostrar: número, nome e total de votos). Total de Branco e Nulos. 27

Relação entre Classes 28

Associação Refere-se ao modo como objetos interagem Objetos estão associados quando um usa os serviços ou operações de outro Conta num: String possui * 1 Cliente cpf: String public class Conta{ private String num; private Cliente correntista; } public class Cliente{ private String cpf;...; } 29

Pontos Principais Dois passos são envolvidos na criação de uma instância da classe 1º Passo: Criação da referência para o objeto ContaCorrente c1; 2º Passo: Criação da instância da classe (objeto) c1 = new ContaCorrente(); Uma vez criado o objeto os atributos e métodos da classe podem ser acessados usando o operador. O acesso direto aos atributos foi utilizado somente para facilitar a ilustração de conceitos, pois eles devem estar protegidos. (a ser visto na próxima aula) 30

Leitura Recomendada Tutorial Sun: Learning the Java Language Lesson: Object-Oriented Programming Concepts http://java.sun.com/docs/books/tutorial/java/concepts/ index.html Lesson: Classes and Objects http://java.sun.com/docs/books/tutorial/java/javaoo/i ndex.html 31