Buscar

exemplos-java-v01

Prévia do material em texto

Programação em Java
Eduardo Figueiredo
http://www.dcc.ufmg.br/~figueiredo
DCC / ICEx / UFMG
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
� Por enquanto…
Do Projeto para Implementação
� Antes do carro ficar pronto, ele deve 
ser projetado
Carro
cor
velocidadeAtual
acelerar()
frear()
class Carro {
String cor;
int velocidadeAtual;
void acelerar() {}
void frear() {}
}
Projeto Implementação
Classe Pública em Java
� Declaração de uma classe pública 
(public) deve ser feita em um arquivo 
de mesmo nome
� Com 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
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 { }
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)
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
Implementando Métodos
public class Carro {
String cor;
int velocidadeAtual = 0;
public void acelerar() {
velocidadeAtual = velocidadeAtual + 1;
}
public void frear() {
velocidadeAtual = velocidadeAtual - 1;
}
}
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 ...
O Método Main
É uma boa prática colocar o método 
main em uma classe separada
public class TesteCarro {
public static void main(String[] args) {
...
}
}
O Método Main
O método main é automaticamente 
chamado pela máquina virtual Java
public class TesteCarro {
public static void main(String[] args) {
...
}
}
Implementando Métodos
public class Carro {
String cor;
int velocidadeAtual = 0;
public void acelerar() {
velocidadeAtual = velocidadeAtual + 1;
}
public void frear() {
velocidadeAtual = velocidadeAtual - 1;
}
public void mostrarVelocidade() {
System.out.println(“Minha velocidade é ” + 
velocidadeAtual);
}
}
Testar a Classe Carro
public class TesteCarro {
public static void main(String[] args) {
Carro meuCarro = new Carro();
meuCarro.mostrarVelocidade();
}
}
Compilando o Programa
Compilar
public class TesteCarro {
public static void main(String[] args) {
Carro meuCarro = new Carro();
meuCarro.mostrarVelocidade();
}
}
javac Carro.java TesteCarro.java
ou
javac *.java
Executando o Programa
Executar
public class TesteCarro {
public static void main(String[] args) {
Carro meuCarro = new Carro();
meuCarro.mostrarVelocidade();
}
}
java TesteCarro
Resultado do Teste
public class TesteCarro {
public static void main(String[] args) {
Carro meuCarro = new Carro();
meuCarro.mostrarVelocidade();
}
}
Minha velocidade é 0
Acelerando o Carro
public class TesteCarro {
public static void main(String[] args) {
Carro meuCarro = new Carro();
meuCarro.mostrarVelocidade();
meuCarro.acelerar();
meuCarro.mostrarVelocidade();
}
}
Compilar e Executar
public class Teste {
public static void main(String[] args) {
Carro meuCarro = new Carro();
meuCarro.mostrarVelocidade();
meuCarro.acelerar();
meuCarro.mostrarVelocidade();
}
}
Compilar Executar
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
Parâmetros e Instâncias
Ainda a Classe Carro
public class Carro {
String cor;
int velocidadeAtual = 0;
public void acelerar() {
velocidadeAtual = velocidadeAtual + 1;
}
public void frear() {
velocidadeAtual = velocidadeAtual - 1;
}
public void mostrarVelocidade() {
System.out.println(“Minha velocidade é ” + 
velocidadeAtual);
}
}
Métodos para Cor
public class Carro {
String cor;
int velocidadeAtual = 0;
public void acelerar() {...}
public void frear() {...}
public void mostrarVelocidade() {...}
public void definirCor(String novaCor) {
cor = novaCor;
}
public String retornarCor() {
return cor;
}
}
Métodos para Cor
public class Carro {
String cor;
int velocidadeAtual = 0;
public void acelerar() {...}
public void frear() {...}
public void mostrarVelocidade() {...}
public void definirCor(String novaCor) {
cor = novaCor;
}
public String retornarCor() {
return cor;
}
}
Método
“set”
Método
“get”
Parâmetros de Métodos
public class Carro {
String cor;
int velocidadeAtual = 0;
public void acelerar() {...}
public void frear() {...}
public void mostrarVelocidade() {...}
public void definirCor( String novaCor ) {
cor = novaCor;
}
public String retornarCor() {
return cor;
}
}
Método com um 
parâmetro
Método sem 
parâmetro
Ocultando Atributos
public class Carro {
private String cor;
private int velocidadeAtual = 0;
public void acelerar() {...}
public void frear() {...}
public void mostrarVelocidade() {...}
public void definirCor(String novaCor) {
cor = novaCor;
}
public String retornarCor() {
return cor;
}
}
Atributos são 
geralmente 
privados ( private) 
ou protegidos 
(protected)
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;
}
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;
}
Testando definirCor
public class TesteCarro {
public static void main(String[] args) {
Carro meuCarro = new Carro();
meuCarro.definirCor(“Vermelho”);
}
}
Passagem de Parâmetros
public class TesteCarro {
public static void main(String[] args) {
Carro meuCarro = new Carro();
meuCarro.definirCor(“Vermelho”);
}
}
Passando um 
parâmetro (String) para 
o método definirCor
Criando Dois Carros
public class TesteCarro {
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
Testando retornarCor
public class TesteCarro {
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.
Compilando e Executando
public class TesteCarro {
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.retornar Cor());
System.out.println(“Seu carro é ”+ seuCarro.retornar Cor());
}
}
Compilar Executar
Resultado do Teste
public class TesteCarro {
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.retornar Cor());
System.out.println(“Seu carro é ”+ seuCarro.retornar Cor());
}
}
Meu carro é Vermelho
Seu carro é Azul
� DEITEL, H. M.; DEITEL P. J. Java: 
Como Programar , 8a. Edição. 
Pearson, 2010.
� Seções 1.5 a 1.10
� Capítulo 3
� BOOCH, G., RUMBAUGH, J., 
JACOBSON, I. UML, Guia do Usuário . 
Rio de Janeiro: Campus, 2000.
Bibliografia

Continue navegando