Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula...
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/1.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/2.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/3.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/4.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/5.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/6.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/7.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/8.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/9.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/10.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/11.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/12.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/13.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/14.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/15.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/16.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/17.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/18.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/19.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/20.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/21.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/22.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/23.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/24.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/25.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/26.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/27.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/28.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/29.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/30.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/31.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/32.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/33.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/34.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/35.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/36.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/37.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/38.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/39.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/40.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/41.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/42.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/43.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/44.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/45.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/46.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc132497959413d8d6a5c/html5/thumbnails/47.jpg)
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.