Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula...

47
Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POO Aula 05

Transcript of Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula...

Page 1: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Introdução a Java:Classes, métodos e variáveis

Eduardo Figueiredo

24 de Março de 2010

POO Aula 05

Page 2: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Exercício UML

Favor me entregar os exercício até o final desta aula Modelar “Primeirão” em UML usando

diagrama de classes

Page 3: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Avaliação

Duas provas: 35 pts cada Prova 1 (P1): 06/Maio Prova 2 (P2): 08/Julho

Dois trabalhos: 15 pts cada Trabalho 1 (T1): Abril Trabalho 2 (T2): Junho

Page 4: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Avaliação

Duas provas: 35 pts cada Prova 1 (P1): 06/Maio Prova 2 (P2): 08/Julho

Dois trabalhos: 15 pts cada Trabalho 1 (T1): Abril Trabalho 2 (T2): Junho

Exercícios serão contados como pontos extras

Page 5: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Livro Texto: 6ª x 8ª edição

Conteúdo Páginas (6ª) Páginas (8ª)

Antes de Começar XXXIII a XL XXII a XXIX

Seções 1.6 a 1.10 5 a 7 5 a 7

Seção 1.16 14 a 17 15 a 17

Seções 3.1 a 3.5 58 a 68 57 a 67

Au

la 2

Au

la 5

Page 6: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Aulas em Laboratório

Reservado laboratório IV (Bloco 1B) para a aula de amanhã

Proposta Aulas teóricas às quartas Aulas práticas às quintas

Page 7: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Aula de Hoje

Page 8: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Tópicos da Aula

Conceitos de POO em Java

Elementos principais de um objeto Método Atributos (ou variáveis)

Transformando um projeto UML em um programa Java

Page 9: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Visão Geral

Um programa OO é geralmente constituído de várias classes Cada classe possui vários métodos

(comportamento) Classes também possuem variáveis

(atributos)

Classes trocam mensagens entre si Chamada de métodos

Page 10: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Analogia: Carro

Funcionalidades Andar mais rápido: acelerador Andar mais devagar: freio

Atributos Cor, número de portas, capacidade do

tanque, ... Quantidade atual de combustível,

velocidade atual, ...

Page 11: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Do Projeto para o Produto

Antes do carro ficar pronto, ele deve ser projetado

Projeto Produto

Page 12: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Ocultando os Detalhes

Os pedais freio e acelerador “ocultam” do motorista os reais mecanismos que fazem o carro andar mais rápido ou mais devagar

Pessoas com pouco ou nenhum conhecimento de mecânica / hidráulica podem dirigir um carro

Page 13: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Envio de Mensagens

Acelerar O pedal acelerador envia uma

mensagem para o carro aumentar a velocidade

Frear O pedal de freio envia

uma mensagem para o carro diminuir a velocidade

Page 14: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Conhecendo a Si Próprio

Um carro sabe a sua velocidade atual Mas, não sabe a velocidade de outros

carrosMinha velocidade atual é 60 Km/h

Page 15: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Implementando um Projeto

Assim como em outras engenharias, o projeto não é suficiente Ninguém pode dirigir o desenho de um

carro Ninguém pode executar o projeto de

um sistema

Page 16: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Do Projeto para Implementação

Antes do carro ficar pronto, ele deve ser projetado Lembra do nosso trabalhinho UML?

Carro

corvelocidadeAtual

acelerar()frear()

class Carro { String cor; int velocidadeAtual;

void acelerar() {} void frear() {}}

Projeto Implementação

Page 17: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Classe Pública em Java

Declaração de uma classe pública (public) deve ser feita em um arquivo de mesmo nome Mais a extensão

“.java”

public class Carro { String cor; int velocidadeAtual;

void acelerar() {} void frear() {}}

Arquivo Carro.java

Modificador public permite acesso / chamadas de qualquer outra classe do programa

Page 18: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Corpo de Classes e Métodos

O corpo de uma classe é delimitado por chaves { }

public class Carro { String cor; int velocidadeAtual;

void acelerar() {...} void frear() {...}}

O corpo de um método também é delimitado por chaves { }

Page 19: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Convenção de Nomes

Nome de classes Substantivo Iniciar com letra maiúscula CamelCase (MeuCarro)

public class Carro { String cor; int velocidadeAtual;

void acelerar() {...} void frear() {...}}

Nome de métodos Verbo Iniciar com minúsculo camelCase (acelerarCarro)

Page 20: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Assinatura de Métodos

Modificador + Tipo de Retorno + Nome do Método + Lista de Parâmetros Modificador: public | private | protected | ... Tipo de Retorno: void | int | String | ...

public class Carro { private String cor; private int velocidadeAtual;

public void acelerar() {} public void frear() {}}

Nome: acelerar | frear | ...

Parâmetros:delimitado por parênteses

Page 21: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Implementando Métodos

public class Carro { String cor; int velocidadeAtual = 0;

public void acelerar() { velocidadeAtual = velocidadeAtual + 1; } public void frear() { velocidadeAtual = velocidadeAtual - 1; }}

Page 22: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Executar a classe Carro ...

Um programa Java começa pelo método main

public class Carro { String cor; int velocidadeAtual = 0;

public void acelerar() { velocidadeAtual = velocidadeAtual + 1; } public void frear() { velocidadeAtual = velocidadeAtual - 1; }}

Exception in thread main ...

Page 23: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

O Método Main

É uma boa prática colocar o método main em uma classe separada

public class Teste { public static void main(String[] args) { ... }

}

Page 24: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

O Método Main

O método main é automaticamente chamado pela máquina virtual Java

public class Teste { public static void main(String[] args) { ... }

}

Page 25: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Implementando Métodos

public class Carro { String cor; int velocidadeAtual = 0;

public void acelerar() { velocidadeAtual = velocidadeAtual + 1; } public void frear() { velocidadeAtual = velocidadeAtual - 1; }

public String mostrarVelocidade() { System.out.println(“Minha velocidade é ” + velocidadeAtual); }}

Page 26: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Testar a Classe Carro

public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.mostrarVelocidade(); }}

Page 27: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Compilando o Programa

Compilar

public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.mostrarVelocidade(); }}

javac Carro.java Teste.javaou

javac *.java

Page 28: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Executando o Programa

Executar

public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.mostrarVelocidade(); }}

java Teste

Page 29: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Resultado do Teste

public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.mostrarVelocidade(); }}

Minha velocidade é 0

Page 30: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Acelerando o Carro

public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.mostrarVelocidade(); meuCarro.acelerar(); meuCarro.mostrarVelocidade(); }}

Page 31: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Compilar e Executar

public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.mostrarVelocidade(); meuCarro.acelerar(); meuCarro.mostrarVelocidade(); }}

Compilar Executar

Page 32: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Resultado do Teste

public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.mostrarVelocidade(); meuCarro.acelerar(); meuCarro.mostrarVelocidade(); }}

Minha velocidade é 0Minha velocidade é 1

Page 33: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Parâmetros e Instâncias

Page 34: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Voltando a Classe Carro

public class Carro { String cor; int velocidadeAtual = 0;

public void acelerar() { velocidadeAtual = velocidadeAtual + 1; } public void frear() { velocidadeAtual = velocidadeAtual - 1; }

public String mostrarVelocidade() { System.out.println(“Minha velocidade é ” + velocidadeAtual); }}

Page 35: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Métodos para Cor

public class Carro { String cor; int velocidadeAtual = 0;

public void acelerar() {...} public void frear() {...} public String mostrarVelocidade() {...}

public void definirCor(String novaCor) { cor = novaCor; }

public String retornarCor() { return cor; }}

Page 36: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Métodos para Cor

public class Carro { String cor; int velocidadeAtual = 0;

public void acelerar() {...} public void frear() {...} public String mostrarVelocidade() {...}

public void definirCor(String novaCor) { cor = novaCor; }

public String retornarCor() { return cor; }}

Método“set”

Método“get”

Page 37: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Parâmetros de Métodos

public class Carro { String cor; int velocidadeAtual = 0;

public void acelerar() {...} public void frear() {...} public String mostrarVelocidade() {...}

public void definirCor(String novaCor) { cor = novaCor; }

public String retornarCor() { return cor; }}

Método com um parâmetro

Método sem parâmetro

Page 38: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Ocultando Atributos

public class Carro { private String cor; private int velocidadeAtual = 0;

public void acelerar() {...} public void frear() {...} public String mostrarVelocidade() {...}

public void definirCor(String novaCor) { cor = novaCor; }

public String retornarCor() { return cor; }}

Atributos são geralmente

privados (private)

Page 39: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

O método definirCor

Não retorna nada quando é chamado Tipo de retorno: void

Recebe um parâmetro Parâmetro: String novaCor

public void definirCor(String novaCor) { cor = novaCor; }

Page 40: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

O Método retornarCor

Retorna um objeto Tipo de retorno: String

Não recebe nenhum parâmetro Parâmetro: vazio

public String retornarCor() { return cor; }

Page 41: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Testando definirCor

public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.definirCor(“Vermelho”); }}

Page 42: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Passagem de Parâmetros

public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.definirCor(“Vermelho”); }}

Passando um parâmetro (String) para

o método definirCor

Page 43: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Criando Dois Carros

public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.definirCor(“Vermelho”);

Carro seuCarro = new Carro(); seuCarro.definirCor(“Azul”); }}

Instância “meuCarro” tem

cor VermelhoInstância

“seuCarro” tem cor Azul

Page 44: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Testando retornarCor

public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.definirCor(“Vermelho”);

Carro seuCarro = new Carro(); seuCarro.definirCor(“Azul”);

System.out.println(“Meu carro é ”+ meuCarro.retornarCor()); System.out.println(“Seu carro é ”+ seuCarro.retornarCor()); }}

Cada instância da classe Carro (meuCarro e seuCarro) tem sua cor.

Page 45: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Compilando e Executando

public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.definirCor(“Vermelho”);

Carro seuCarro = new Carro(); seuCarro.definirCor(“Azul”);

System.out.println(“Meu carro é ”+ meuCarro.retornarCor()); System.out.println(“Seu carro é ”+ seuCarro.retornarCor()); }}

Compilar Executar

Page 46: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Resultado do Teste

public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.definirCor(“Vermelho”);

Carro seuCarro = new Carro(); seuCarro.definirCor(“Azul”);

System.out.println(“Meu carro é ”+ meuCarro.retornarCor()); System.out.println(“Seu carro é ”+ seuCarro.retornarCor()); }}

Meu carro é VermelhoSeu carro é Azul

Page 47: Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.

Referências

DEITEL, H. M.; DEITEL P. J. Java: Como Programar, 6a. Edição. Pearson, 2005.

BOOCH, G., RUMBAUGH, J., JACOBSON, I. UML, Guia do Usuário. Rio de Janeiro: Campus, 2000.