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

Upload: internet

Post on 18-Apr-2015

103 views

Category:

Documents


1 download

TRANSCRIPT

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.