COMPORTAMENTOS - Observações

Documentos relacionados
POO fundamentos Parte II. Professor Vicente Paulo de Camargo

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

Classes e Objetos. Sintaxe de classe em Java

Instituto de Informática Estrutura de Dados II

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

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

Linguagem de Programação. Diagrama de classes

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

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

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

Conceitos de Programação Orientada a Objetos

AULA 16 HERANÇA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

Programação Orientada a Objetos Classes e Objetos. Prof. Vicente Paulo de Camargo

Linguagem de programação métodos/funções

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

Estrutura de Dados Funções e Procedimentos

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

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

Programação Orientada a Objetos JAVA - NETBEANS

Programação Orientada a Objetos

Notas de Aula 04: Herança e polimorfismo.

Programação Orientada a Objetos II

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

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

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Programação Orientada a Objetos SANTOS, Rafael

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

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

Conceitos Básicos da Programação OO

Programação Orientada a Objetos em Java

Classes e Objetos. Prof. Fernando V. Paulovich 9 de agosto de 2010

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

Aula 05 Classes, Atributos, Métodos. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

9 Classes Abstractas e Interfaces

Fundamentos de Programação Java. Professor Vicente Paulo de Camargo

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

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Linguagem de Programação III

Laboratório de programação II


Linguagem Algorítmica OO. Linguagem Algorítmica

AULA 13 MÉTODOS. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA

Interfaces e Classes Abstratas

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

Desenvolvimento Web II

Programação Orientada a Objeto (POO)

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

Programação Java (nível intermediário) 4. Polimorfismo

Linguagem de Programação II Implementação

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

Algoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:

Programação por Objectos. Java

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

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático

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

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

Programação Orientada a Objetos

Programação Orientada a Objetos

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

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Introdução aos Algoritmos

Programação Orientada a Objeto (POO)

Universidade Estadual de Santa Cruz

Linguagem de Programação II Herança

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

Como exemplo, vamos criar uma subclasse da classe Funcionario, vista nos capítulos anteriores.

Linguagem de Programação II Implementação

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

Universidade Federal de Uberlândia

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

A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Unidade 8: Sobrecarga de Funções e Vetores e Matrizes (Arrays) Prof. Daniel Caetano

Orientação a Objetos. Vanessa Braganholo

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

Introdução aos Algoritmos

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

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

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

Programação Orientada a Objetos Introdução a POO

Professor Mauricio Lederer Algoritmos. Entrada e saída de dados

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python

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

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Professor Leonardo Cabral da Rocha Soares Lattes:

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

POO29004 Programação Orientada a Objetos

Agenda. O que é um array. Declaração de um array. Instanciação de um array. Acessando os elementos de um array. O tamanho de um array (length)

Aula 7 POO 1 Herança. Profa. Elaine Faria UFU

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

Transcrição:

COMPORTAMENTOS - Observações O próprio objeto realiza operações de consulta ou alteração dos valores dos seus atributos Essas operações são definidas em seus métodos Os métodos também são utilizados para interações entre os objetos de uma aplicação (TROCA DE MENSAGENS) Por exemplo, quando um cliente requisita um saque através de um caixa eletrônico do banco, o objeto que representa o caixa eletrônico deve interagir com o objeto que representa a conta do cliente NÃO ESQUEÇA: AS TAREFAS DE UM OBJETO SÃO DEFINIDAS EM SEUS MÉTODOS

COMPORTAMENTOS (MÉTODOS) COMO FUNCIONAM Considere uma aplicação simples que possui 03 classes: A classe principal (Principal.java), Recibo.java e Cheque.java. A classe principal chama as outras duas classes, que são utilizadas para imprimir, respectivamente, recibos e cheques que, além de outras informações, imprimirão o valor informado por extenso. No entanto, o programador não necessita codificar duas vezes a mesma rotina para escrever o valor por extenso para essas duas classes. Basta escrever uma vez (em algum lugar) e referenciar o mesmo código para imprimir os respectivos valores por extenso. Assim, pode-se utilizar um método que verifica o valor informado e retorna esse valor por extenso em umastring. Observe a ilustração a seguir: Principal.java Recibo.java d a c b a b c extenso(); d Cheque.java

COMPORTAMENTOS (MÉTODOS) COMO FUNCIONAM (cont.) Assim, o método extenso() deverá ficar em alguma classe específica. Essa classe, então é referenciada pelas classes Recibo.java e Cheque.java. Esse método pode estar definido na classe principal ou em outra classe. Considerando que esse método esteja em outra classe, denominada de Util.java, então temos: class Util { String extenso(float valor) { //codigo do método extenso... String retornoextenso=... ; return retornoextenso; } Note que o método extenso possui um tipo String na sua declaração (a String retornoextenso). A String retornada é a variável retornoextenso, definida dentro do método Quando um método não retorna nenhum conteúdo, ele terá o tipo void e não terá nenhum comando return em seu interior. Exemplo: void soma (int a, int b) {...} PROGRAMAÇÃO ORIENTADA A OBJETOS Tipo do método extenso Retorno do método extenso Possui 2 parâmetros, separados por vírgula O método soma não tem retorno, pois seu tipo é void

COMPORTAMENTOS (MÉTODOS) COMO FUNCIONAM (cont.) Assim, as classes Recibo.java e Cheque.java acessam o método extenso() da classe Util.java. Observe a ilustração apenas com a classe Recibo.java. Class Recibo{ float valoremreal=... //Recebe digitação do valor //usuário digita valor e este é armazenado na variável // valoremreal Util u = new Util(); String valorextenso = u. extenso(valoremreal) ; //trecho de codigo que imprime o recibo usando a variável valorextenso } class Util { String extenso(float valor) { //codigo do método extenso... String retornoextenso=... ; return retornoextenso; }

COMPORTAMENTOS (MÉTODOS) COMO FUNCIONAM (cont.) Um método pode ter ou não parâmetros. O método extenso() possui um parâmetro do tipo float. Assim, ele recebe um valor (que também deve ser do mesmo tipo). O método Extenso() retorna uma String porque ele foi definido como String extenso(...); Por isso, quando um método é definido com o tipo void, como void nome_metodo, ele não efetua nenhum retorno. Class Recibo{ float valoremreal=...// Recebe digitação do valor //usuário digita valor e este é armazenado na variável // valoremreal Util u = new Util(); String valorextenso = u. extenso(valoremreal) ; //trecho de codigo que imprime o recibo usando a variável valorextenso } class Util { String extenso(float valor) { //codigo do método extenso... String retornoextenso=... ; return retornoextenso; }

COMPORTAMENTOS (MÉTODOS) COMO FUNCIONAM (cont.) Para que a classe Recibo.java acesse o método da classe Util.java é necessário instanciar Util.java na classe Recibo.java. Assim, criou-se o objeto u que é uma instância da classe Util.java. Util u = new Util(); Class Recibo{ float valoremreal=...// Recebe digitação do valor //usuário digita valor e este é armazenado na variável // valoremreal Util u = new Util(); String valorextenso = u. extenso(valoremreal) ; //trecho de codigo que imprime o recibo usando a variável valorextenso } class Util { String extenso(float valor) { //codigo do método extenso... String retornoextenso=... ; return retornoextenso; } Objeto u acessa o método extenso

Exercícios 1. Elabore uma aplicação que, através de orientação a objetos, solicite pelo teclado o nome e as três notas de dois alunos, sendo que cada objeto deve efetuar e escrever o cálculo da média aritmética das três notas informadas. 2. Elabore uma aplicação que, através de objetos específicos, solicite pelo teclado a altura e a largura de três retângulos, sendo que cada objeto deve calcular e escrever a sua respectiva área e seu respectivo perímetro. Nota: Os métodos devem ser específicos em cada objeto: um método para entrada de dados, outro cada cálculo e outro para escrita dos resultados

INSTANCIANDO OBJETOS Um método construtor possui o mesmo nome da classe O nome do método construtor se inicia com letra maiúscula Um método construtor é responsável por criar objetos Instanciação de objetos Formato nomedaclasse identificador = new métodoconstrutor() Quando uma classe não possui um método construtor, a linguagem Java utiliza o método construtor da classe responsável por todas as classes Java, denominada de Object. Neste caso, todos os atributos da classe são inicializados com valores padrão (tipos numéricos com zero (0), String com null, booleanos com false).

INSTANCIANDO OBJETOS cont. public INDICA QUE O ELEMENTO PODE SER ACESSADO POR QUALQUER CLASSE DE UMA APLICAÇÃO. É UM TERMO USADO PARA DAR VISIBILIDADE AOS MÉTODOS E ATRIBUTOS DE UMA CLASSE. visibilidades Public Private protected A LINGUAGEM JAVA PERMITE A CRIAÇÃO DE VÁRIOS MÉTODOS COM O MESMO NOME, DESDE QUE TENHAM OU PARÂMETROS DE TIPOS DIFERENTES, OU QUANTIDADE DIFERENTE DE PARÂMETROS

INSTANCIANDO OBJETOS cont. Denomina-se de SOBRECARGA DE MÉTODOS quando se tem mais de um método com o mesmo nome em uma classe public INDICA QUE O ELEMENTO PODE SER ACESSADO POR QUALQUER CLASSE DE UMA APLICAÇÃO. É UM TERMO USADO PARA DAR VISIBILIDADE AOS MÉTODOS E ATRIBUTOS DE UMA CLASSE. visibilidades Public Private protected A LINGUAGEM JAVA PERMITE A CRIAÇÃO DE VÁRIOS MÉTODOS COM O MESMO NOME, DESDE QUE TENHAM OU PARÂMETROS DE TIPOS DIFERENTES, OU QUANTIDADE DIFERENTE DE PARÂMETROS

Método Construtor O método construtor é responsável pela criação de objetos de uma classe Quando uma classe permite a criação de objetos ela poderá ter um, nenhum ou vários métodos construtores O método construtor possui o mesmo nome da classe, iniciando-se com letra maiúscula Caso um objeto seja criado de uma classe sem método construtor, a criação do objeto se dará pelo método construtor da classe que é a super classe de todas as classes, que é a classe Object Portanto, a classe Object é a super classe de todas as classes Assim, se uma classe não possuir um método construtor, os seus objetos serão criados através da classe Object Neste caso, não esqueça que os valores dos atributos serão os valores padrões: 0 para numéricos, null para String e false para boolean

Método Construtor - Exemplo Carro objcarrox = new Carro(1500); Carro objcarroy = new Carro(1600, GM ); EXEMPLO DE INSTÂNCIAS EXEMPLO EM UM PROGRAMA INSTANCIANDO UM OBJETO

Exercício - Metódos Crie um novo projeto e acrescente nele a classe Carro do exercício de fixação. Em seguida, insira o atributo velocidade na classe Carro, do tipo int. Crie dois métodos na classe Carro: a)o primeiro método, com o nome alterarvelocidade, deve possuir um parâmetro inteiro, sem retorno. Deve aumentar a velocidade do carro com o valor passado como parâmetro. A velocidade não deve ultrapassar 250 km/h. Caso isso ocorra, ela deve retornar a 60. Caso a velocidade final seja negativa, esta também deve retornar a 60; b)o segundo método, com o nome retornarvelocidade, sem parâmetro, com retorno inteiro, deve retornar o valor da velocidade. Copie o mesmo programa Principal do exercício de fixação para esse novo projeto e altere-o de tal forma que ele possa, no seu final, antes da apresentação dos resultados, chamar o método alterarvelocidade, várias vezes (preferencialmente), passando valores para o objeto Carro. Acrescente a apresentação do valor da velocidade no final do programa.

EXERCÍCIO DE FIXAÇÃO Considere o domínio de uma universidade, onde se tem o aluno como uma de suas diversas entidades. Assim, elabore um programa Java que permita criar quatro objetos da classe Aluno [atributos: nome, cpf(string), matrícula(int), curso(int), local de nascimento(string)] sendo que cada um deve ser criado com um construtor distinto, sendo que o código do curso dependerá do local do nascimento informado. Tem-se, no mínimo, 5 locais de nascimento para os alunos que frequentam a respectiva universidade. Escrever cada um dos atributos de cada um desses quatro objetos.

HERANÇA SIMPLES Mecanismo que permite a uma classe, denominada de SUBCLASSE ou CLASSE FILHA, herdar todos os atributos e métodos de outra classe, denominada de SUPERCLASSE ou CLASSE MÃE

HERANÇA SIMPLES cont. A subclasse pode ter outros atributos e outros métodos, tornando-a uma ESPECIALIZAÇÃO. A superclasse é uma GENERALIZAÇÃO

HERANÇA SIMPLES cont. ESQUEMA

HERANÇA SIMPLES cont. EXEMPLO

HERANÇA SIMPLES cont. EXEMPLO Essa estrutura de classes é denominada de HIERARQUIA DE CLASSES

HERANÇA SIMPLES CODIFICAÇÃO JAVA Representa a herança no código

HERANÇA SIMPLES CODIFICAÇÃO JAVA Note que Gerente tem gratificação Logo, salário de Gerente é diferente: É composto por salário + gratificação Note o import java.util.date

HERANÇA SIMPLES CODIFICAÇÃO JAVA getsalario chama a si mesmo infinitas vezes Crie (SOBRESCREVA) um outro método getsalario em Gerente ERRO PORQUE? Também não é a solução. Nota: salario é private PORQUE? Solução?

HERANÇA SIMPLES CODIFICAÇÃO JAVA O QUE FAZER ENTÃO? SOLUÇÃO O IDEAL Observe o valueof Usar super(). Se for usado, super deve ser a primeira instrução do construtor

HERANÇA NÃO ESQUEÇA!! Toda subclasse tem um relacionamento É UM com sua superclasse Exemplos: PROGRAMAÇÃO ORIENTADA A OBJETOS Um Caminhão É UM tipo de Transporte Um Funcionario É UM tipo de Pessoa