Programação I Aula 2 (Métodos)

Slides:



Advertisements
Apresentações semelhantes
JAVA Orientação a Objetos
Advertisements

Programação em Java Prof. Maurício Braga
Programação Orientada a Objetos*
Paradigmas da Programação – Semestre 1 – Aula 6
Modificadores Marco Antonio. Introdução Em todas as linguagens de programação o acesso a classes/métodos deve seguir algumas regras.
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique
Prof. Thiago Pereira Rique
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Iniciação ao Java – Márcio F. Campos
Expressões, controle de fluxo, wrappers e strings Profa
Membros estáticos.
Capítulo 9 Herança 1.
Classes & Objectos em JAVA5
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
Estrutura de Dados em Java
CRIANDO OBJETOS EM JAVA
JAVA: Conceitos Iniciais
Programação Orientada a Objetos com Java
Aula prática 13 Orientação a Objetos – C++ Parte 1
JAVA Orientação a Objetos
Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.
Interfaces.
Atributos, Encapsulamento e Interface em Java
PROGRAMAÇÃO I Classes Objetos Atributos Construtores Métodos.
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
Linguagem de Programação JAVA
Classes, Objetos, Atributos e Métodos JAVA
Linguagens de Programação II Aula 04 – Entendendo Classes
Linguagens de Programação II
Orientação a Objetos e Java Graduação em Ciência da Computação
Professora Lucélia Oliveira
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng. da Computação IF62C - Fundamentos de Programação Semana 12 – Overloading X Overriding Prof.a.
Orientação a Objetos Parte I
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Membro Static.
Laboratório I Mateus Raeder. Mateus Raeder – fevereiro de 2009 Associação entre classes  Um objeto é a representação de uma entidade do mundo real 
Orientação a Objetos Parte II
Programação I Aula 6 (Herança, Polimorfismo e Encapsulamento)
Programação Orientada a Objetos - Java
Implementação Orientada a Objetos – Aula 03
Programação I Aula 12 (Arrays Bidimensionais)
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Programação Orientada a Objetos - Java
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
Curso de Aprendizado Industrial Desenvolvedor WEB
Prof. Gilberto Irajá Müller
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
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
Programação I Aula 1 Prof. Gilberto Irajá Müller Última atualização 2/3/2009.
Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009.
JAVA Sintaxe.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Programação I Aula 11 (Arrays de Objetos) Prof. Gilberto Irajá Müller Última atualização 27/5/2009.
Herança Modelagem e Programação Orientada a Objetos
Construtores e Destrutores
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.
Bruno Inojosa MCP .NET Framework
Prof. Marcos LABORATÓRIO DE PRÁTICA DE PROGRAMAÇÃO 06.
Modificadores Programação II.
Laboratório de Programação II Método main Dados e Métodos de Classes.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
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
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:

Programação I Aula 2 (Métodos) Prof. Gilberto Irajá Müller Última atualização 2/3/2009

Métodos É a parte da classe que se encarrega de detalhar como as operações serão feitas; Todo o processamento que um programa Java faz está definido dentro dos métodos de suas classes Utilizando ou não os dados dos seus objetos, representados pelos atributos (getter e setter)

Métodos Em java a sintaxe para criação de métodos é: modificadores tipo de retorno nome do método(lista de parâmetros) { // código... } Modificadores: Pode-se citar a visibilidade (private, public, protected, package, ...) Tipo de retorno: Sempre mencionamos que um método é uma função. Neste caso, o tipo de retorno é o tipo de dado (int, double, String) que o método retornará. Caso o método não tenha retorno, ou seja, um procedimento, então, utiliza-se a palavra reservada void Lista de parâmetros: Os métodos poderão receber parâmetros que serão úteis para o seu propósito. Então, cada parâmetro (que é uma variável), recebe duas informações: tipo de dado e o nome. Ex: String nome, double salario, entre outros. Caso o método não possua parâmetros, então, devemos utilizar apenas o parênteses () sem informação.

Métodos Implementação do método setPeso da classe Pessoa (revisão) public class Pessoa { public String nome; private double altura; private double peso; private int idade; public void setPeso(double novoPeso) { peso = novoPeso; } Basicamente, este método irá alterar o atributo “peso” do objeto através do valor do parâmetro “novoPeso” Modificador Parâmetro Tipo de Retorno

Métodos Pessoa p1 = new Pessoa(); Pessoa1 p1 Pessoa2 p2 A sintaxe para a chamada de métodos em java é: Identificador do objeto (ou variável).nome do método(lista de parâmetros); Identificador do objeto (ou variável).nome do método(); Exemplo Pessoa p1 = new Pessoa(); Pessoa p2 = new Pessoa(); p1.setPeso(80.0); p2.setPeso(70.0); Pessoa1 p1 nome: null altura: 0.0 peso: 80.0 idade: 0 nome: null altura: 0.0 peso: 70.0 idade: 0 Pessoa2 p2

Métodos Exercício: Codificar os métodos setNome(), setAltura() e setIdade para a classe Pessoa E o método getPeso() ? Como é realizado o retorno do valor de um método? Até o momento, criamos um método que não tem retorno (void)

Métodos Exercício: Crie uma classe Circulo com um atributo inteiro chamado “raio”. Escreva o método alteraRaio (lembre-se: esse é um método do tipo setter). Como ficaria o Diagrama de Classes? Exercício: Crie o objeto do tipo Circulo (nossa classe) e chame o método alteraRaio.

Métodos Saída de dados Para visualizar os dados dos objetos, utilizaremos uma classe “interna” do java, ou seja, uma classe pronta com seus métodos e atributos. System.out.println(); System -> classe Out -> objeto Println() -> método Vamos criar um método em nossa classe Pessoa que permitirá visualizar os dados na tela do computador public void exibeDados() { System.out.println(nome); System.out.println(peso); System.out.println(altura); System.out.println(idade); }

Métodos Saída de dados public void exibeDados() { System.out.println(nome); System.out.println(peso); System.out.println(altura); System.out.println(idade); } Utilização: Pessoa p1 = new Pessoa(); p1.setNome(“João da Silva”); p1.setAltura(1.80); p1.setPeso(80.0); p1.setIdade(30); p1.exibeDados(); // Saída na tela do computador João da Silva 1.80 80.0 30

Métodos Concatenação de dados Em java, podemos concatenar strings utilizando o operador “+” “João” + “ da “ + “Silva” -> “João da Silva” Caso a primeira ocorrência seja do tipo string, então, podemos concatenar dados do tipo string com int, double, .... “João “ + 1 + “ “ + 2.50 -> “João 1 2.50” Melhorando a saída de dados do método exibeDados() public void exibeDados() { System.out.println(“Nome: “ + nome); System.out.println(“Peso: “ + peso); System.out.println(“Altura: “ + altura); System.out.println(“Idade: “ + idade); } Qual seria o resultado na tela do computador?

Métodos Construtores Exemplo para a classe Pessoa Construtor é um método especial usado para inicializar objetos quando estes são criados. Características: Tem o mesmo nome da classe É automaticamente chamado pelo operador new Não tem tipo de retorno (mas não se escreve void) Exemplo para a classe Pessoa public Pessoa(String n, double a, double p, int i) { nome = n; altura = a; peso = p; idade = i; }

Métodos Construtores Pessoa1 p1 A chamada do construtor é automática, ou seja, quando o objeto é criado (instanciado) utilizando new. Exemplo Pessoa p1 = new Pessoa(“João da Silva”, 1.80, 80.0, 30); O construtor poderá ser chamado SOMENTE no momento da criação do objeto = new. nome: João da Silva altura: 1.80 peso: 80.0 idade: 30 Pessoa1 p1

Métodos Construtores Exercício: Para a classe Circulo, crie um método construtor em que todo o objeto do tipo Circulo tenha raio = 5 Crie uma classe do tipo Empregado. Ao ser criado o objeto do tipo Empregado, o seu salário deverá iniciar com 2000.00 e o número de dependentes 0.

Métodos Sobrecarga de métodos ou de construtores Numa mesma classe, dois ou mais métodos (ou construtores) podem ter o mesmo nome, desde que tenham tipos ou quantidades de parâmetros diferentes (lista de parâmetros). Chama-se a isso sobrecarga de métodos ou de construtores. Chamamos a lista de parâmetros de assinatura de um método

Métodos Sobrecarga de métodos ou de construtores Exemplo public class Pessoa { public String nome; private double altura; private double peso; private int idade; public Pessoa(String n) { nome = n; } public Pessoa(String n, double a) { altura = a; Mesmo nome, porém, com a assinatura diferente Mesmo nome, porém, com a assinatura diferente

Métodos Sobrecarga de métodos ou de construtores O compilador Java identifica qual o construtor que deve ser acionado, dependendo dos argumentos que são passados para ele na chamada. O mesmo mecanismo vale para métodos sobrecarregados. Se não dotarmos nossa classe de construtor(es), Java adota um construtor padrão (default), sem parâmetros, que atribui valores default aos atributos do objeto. Era o que estava acontecendo com a nossa classe Pessoa() antes de introduzirmos os construtores. Pessoa p1 = new Pessoa(); Se dotarmos nossa classe de um ou mais construtores, Java não adotará construtor padrão para ela. Então, a chamada Pessoa p1 = new Pessoa(); passará a ser um erro de compilação, pois não existe mais construtor padrão na classe.

Métodos Exercício: Na classe Empregado você tem um construtor com dois parâmetros (salário e dependentes). Crie um outro construtor (sobrecarga) para Empregado, com dois parâmetros, o nome do empregado e o seu salário.

Classe Teste De modo a testarmos nossa classe Pessoa ou Empregado, podemos utilizar um recurso que chama-se de CLASSE TESTE. Classe Teste é uma classe que objetiva o teste de uma determinada classe (em nosso caso, Pessoa ou Empregado) A Classe Teste possui um método estático (veremos adiante!) chamado “main” que permite: Criar objetos das nossas classes (Pessoa e Funcionario) Testar os métodos e atributos de nossas classes

Classe Teste Exemplo public class TestaPessoa{ public static void main(String args[]) { Pessoa p1 = new Pessoa(“João da Silva”, 1.80, 80.0, 30); p1.exibeDados( ); } Quando executamos uma classe (um arquivo .java), Java procura o método main desta classe e executa-o. Os outros métodos só executam quando são chamados pelo método main ou por outro método qualquer da própria classe O arquivo de armazenamento do código acima possui extensão .java e, OBRIGATORIAMENTE, deverá ter o nome da classe principal, em nosso caso, TestaPessoa.java (Laboratório I)

Classe Teste Exercício: O que acontece (na memória e na tela) quando a classe TestaPessoa é executada? Exercício: Crie a classe teste para a classe Empregado e instancia três objetos do tipo Empregado.

Hot Topic A palavra-chave this é utilizada para acessar o parâmetro implícito. Exemplo de sua utilização public pessoa(String nome, double altura, double peso, int idade) { this.nome = nome; this.altura = altura; this.peso = peso; this.idade = idade; } Temos os parâmetros (nome, altura, peso, idade) iguais aos nomes dos atributos. Então, para não causar problema de referência (confusão do valor do parâmetro com o atributo), utiliza-se o this para que o java interprete de maneira correta. this.nome -> atributo nome do objeto.

Hot Topic Declaramos na classe Pessoa o atributo nome como public. Para efeitos de visibilidade, podemos acessar o atributo diretamente, ou seja, não utilizar os métodos getters e setters. Exemplo Pessoa p1 = new Pessoa(); p1.nome = “João da Silva”; Até o momento, estávamos utilizando p1.setNome(“João da Silva”); por questões de integridade dos dados. Dessa forma, podemos alterar um atributo sem utilizar métodos! PERIGOSO! Os modificadores private/protected/package/public permitem fazer isso (visibilidade). Como orientação, usaremos private para os atributos. Os demais atributos (altura, peso, idade) podem ser atribuídos dessa forma?

Métodos Referências bibliográficas http://inf.unisinos.br/~anibal http://www.google.com.br HORSTMANN, C. Big Java. Bookman, 2004. DEITEL, H. M.; DEITEL, Paul J. Java: como programar. 6. ed. São Paulo: Pearson, 2006.