Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAlexandre Capote Alterado mais de 10 anos atrás
1
Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05
2
Exercício UML Favor me entregar os exercício até o final desta aula Modelar Primeirão em UML usando diagrama de classes
3
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
4
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
5
Livro Texto: 6ª x 8ª edição ConteúdoPáginas (6ª)Páginas (8ª) Antes de ComeçarXXXIII a XLXXII a XXIX Seções 1.6 a 1.105 a 7 Seção 1.1614 a 1715 a 17 Seções 3.1 a 3.558 a 6857 a 67 Aula 2 Aula 5
6
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
7
Aula de Hoje
8
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
9
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
10
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,...
11
Do Projeto para o Produto Antes do carro ficar pronto, ele deve ser projetado ProjetoProduto
12
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
13
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
14
Conhecendo a Si Próprio Um carro sabe a sua velocidade atual Mas, não sabe a velocidade de outros carros Minha velocidade atual é 60 Km/h
15
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
16
Do Projeto para Implementação Antes do carro ficar pronto, ele deve ser projetado Lembra do nosso trabalhinho UML? Carro cor velocidadeAtual acelerar() frear() class Carro { String cor; int velocidadeAtual; void acelerar() {} void frear() {} } ProjetoImplementação
17
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
18
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 { }
19
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)
20
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
21
Implementando Métodos public class Carro { String cor; int velocidadeAtual = 0; public void acelerar() { velocidadeAtual = velocidadeAtual + 1; } public void frear() { velocidadeAtual = velocidadeAtual - 1; }
22
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...
23
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) {... }
24
O Método Main O método main é automaticamente chamado pela máquina virtual Java public class Teste { public static void main(String[] args) {... }
25
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); }
26
Testar a Classe Carro public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.mostrarVelocidade(); }
27
Compilando o Programa Compilar public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.mostrarVelocidade(); } javac Carro.java Teste.java ou javac *.java
28
Executando o Programa Executar public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.mostrarVelocidade(); } java Teste
29
Resultado do Teste public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.mostrarVelocidade(); } Minha velocidade é 0
30
Acelerando o Carro public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.mostrarVelocidade(); meuCarro.acelerar(); meuCarro.mostrarVelocidade(); }
31
Compilar e Executar public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.mostrarVelocidade(); meuCarro.acelerar(); meuCarro.mostrarVelocidade(); } Compilar Executar
32
Resultado do Teste public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.mostrarVelocidade(); meuCarro.acelerar(); meuCarro.mostrarVelocidade(); } Minha velocidade é 0 Minha velocidade é 1
33
Parâmetros e Instâncias
34
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); }
35
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; }
36
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
37
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
38
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)
39
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; }
40
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; }
41
Testando definirCor public class Teste { public static void main(String[] args) { Carro meuCarro = new Carro(); meuCarro.definirCor(Vermelho); }
42
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
43
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 Vermelho Instância seuCarro tem cor Azul
44
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.
45
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
46
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 é Vermelho Seu carro é Azul
47
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.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.