body#layout #main; body#layout #sidebar { padding: 0; } RPGMAK: Aula-Java:Parte-02

quarta-feira, 24 de março de 2010

Aula-Java:Parte-02

Java: Segunda Aula (Orientação a Objetos)

 

Para explicar orientação a objetos, podem ser feitas comparações com o mundo real, onde vemos objetos como pessoas, animais, plantas, carros, aviões, casas, prédios, computadores, televisões, rádios etc. Os programas de computador também podem ser compostos de objetos que, as vezes, podem ser dividos em duas categorias: animados e inanimados.Os objetos animados são, em certo sentido, “vivos” (se movem e fazem coisas). Os inanimados, por outro lado, não são capazes de fazer coisas por conta própria. Entretanto, ambos os tipos de objetos tem coisas em comum, como atributos (forma, tamanho, cor…) e comportamentos (por exemplo, um carro que acelera).
Diferentes objetos podem ter atributos semelhantes e exibir comportamentos semelhantes. É possível fazer comparações, por exemplo, entre humanos e chimpanzés, entre homens e mulheres, entre carros e motos etc.
Brincando um pouco
Vamos pegar um pincel como exemplo e dar uma olhada em suas características:
  • Cor
  • Formato
  • Espessura
  • Tamanho
  • Material
Se temos dois pincéis, um vermelho e um azul, as características são as mesmas. A única diferença entre os dois é a cor do pincel e de sua tinta. Eles pertencem ao mesmo objeto, pois tem as mesmas características. A única coisa que é mudada é a informação de cada atributo.
Se cada um dos atributos tem um determinado valor, devemos indicar qual o tipo de informação que está em cada um deles. A cor é de que tipo? String. Formato também é string, espessura é float etc.
String cor;
String formato;
float espessura;
float tamanho;
String material;
Como podem ver, definimos o tipo do objeto e as informações que serão armazenadas em cada um deles. Para transformarmos isso em algo que Java entenda, basta colocarmos o ; no final de cada um e botar dentro da classe:


 




public class pincel
{
String cor;
String formato;
float espessura;
float tamanho;
String material;
}
Brincando mais um pouco

Vamos aqui definir uma classe carro:



public class carro
{
float rodas;
String cor;
int portas;
float motor;
String portamala;
}
Extendendo…

Vamos agora criar a classe veiculo:



public class veiculo
{
int freios;
String cor, modelo;
}
Agora usamos o extends para suas respectivas subclasses (carro e moto):



public class carro extends veiculo
{
String estepe, limpador;
}

public class moto extends veiculo
{
String manete;
}
O comando extends herda as características de outro método. Aqui no exemplo, usamos para que as subclasses moto e carro herdem as características da classe veiculo.

Como as subclasses de veiculo herdarão os atributos de veiculo, a classe veiculo obviamente deverá ter atributos que serão comuns a suas subclasses.

Mão na massa

Vamos criar um programinha simples para fazer cadastro de animais. Vamos primeiro criar a classe animais (salve o código em um arquivo chamado animais.java).



public class animais {
String comida, sexo;
}
Agora vamos criar suas subclasses (mamiferos, aves e peixes). Lembrando mais uma vez que cada um deve ser salvo em um arquivo com seu respectivo nome (mamiferos.java, peixes.java e aves.java).



public class mamiferos extends animais {
String tipo_pelo;
String especie;
}

public class peixes extends animais {
String cor_escamas;
float tamanho;
}

public class aves extends animais {
int idade;
String cor_pena;
}
Agora que já criamos a classe animais e suas respectivas subclasses, vamos criar o programa principal para entrada dos dados de cada tipo de animal (salve o código em um arquivo chamado cadastro.java)



import java.util.*;

public class cadastro
{
public static void main(String args[])
{
System.out.println("nnCADASTRO DE ANIMAIS:nn1. Peixesn2. Avesn3. Mamiferosnn4. Sairn");
System.out.printf("Escolha a opção: ");
Scanner resp = new Scanner(System.in);
int respo = resp.nextInt();

animais objAnimais = new animais();

Scanner sc_line = new Scanner(System.in);
Scanner sc_int = new Scanner(System.in);
Scanner sc_float = new Scanner(System.in);

System.out.printf("fDigite a comida de seu animal: ");
objAnimais.comida = sc_line.nextLine();
System.out.printf("nDigite o sexo de seu animal: ");
objAnimais.sexo = sc_line.nextLine();

if (respo==1)
{
peixes objPeixes = new peixes();

System.out.printf("nDigite o tamanho do peixe: ");
objPeixes.tamanho = sc_float.nextFloat();

System.out.printf("nDigite a cor das escamas do peixe: ");
objPeixes.cor_escamas = sc_line.nextLine();

System.out.println("nnFoi cadastrada um peixe que mede " + objPeixes.tamanho + "cm(s)!" + (objPeixes.tamanho >= 10 ? " É um peixe grande" : " É um peixe pequeno") + "!");
System.out.println("O peixe tem escamas de cor " + objPeixes.cor_escamas + "!n");
}

if (respo==2)
{
aves objAves = new aves();

System.out.printf("nDigite a idade da ave: ");
objAves.idade = sc_int.nextInt();

System.out.printf("nDigite a cor das penas da ave: ");
objAves.cor_pena = sc_line.nextLine();

System.out.println("nnFoi cadastrada uma ave de " + objAves.idade + " ano(s)!");
System.out.println("A ave tem penas cor " + objAves.cor_pena + "!n");
}

if (respo==3)
{
mamiferos objMamiferos = new mamiferos();

System.out.printf("nDigite o tipo de pelo: ");
objMamiferos.tipo_pelo = sc_line.nextLine();

System.out.printf("nDigite a espécie: ");
objMamiferos.especie = sc_line.nextLine();

System.out.println("nnFoi cadastrado um mamifero de pelo " + objMamiferos.tipo_pelo + "!");
System.out.println("O mamífero é " + objMamiferos.especie + "!n");
}

System.out.println("O animal come " + objAnimais.comida + " e seu sexo é " + objAnimais.sexo + "nn");
}
}
No cadastro.java começamos importando a biblioteca java.util.* que é necessária para o uso do Scanner. Foram feitos 3 Scanners (sc_int, sc_float e sc_line), pois é necessário um Scanner para cada tipo de variável. Como foram usados 3 tipos (int, float e String), criamos um Scanner para cada um de seus respectivos tipos. Alguns comandos foram usados para criar um objeto. Por exemplo, animais objAnimais = new animais(); cria um objeto animais e o atribui a objAnimais. Com isso podemos usar, por exemplo, o atributo objAnimais para chamar objetos da classe animais (comida e sexo, que foram chamados da seguinte forma: objAnimais.comida e objAnimais.sexo)

Um dos System.out.println foi feito da seguinte forma:


System.out.println(“\n\nFoi cadastrada um peixe que mede ” + objPeixes.tamanho + “cm(s)!” + (objPeixes.tamanho >= 10 ? ” É um peixe grande” : ” É um peixe pequeno”) + “!”);
Isso porque foi usado o operador ternário. Com ele fizemos um teste para ver direto dentro do System.out.println o valor que foi inserido na variável tamanho (dentro do objeto peixes, por isso, objPeixes.tamanho). Antes do interrogação (?) foi feita a verificação se o valor era maior ou igual a 10. Se essa condição for verdadeira, o System.out.println mostra a frase ” É um peixe grande”. Se a condição for falsa, ele mostra a frase ” É um peixe pequeno”.

Agora que já foi tudo explicado certinho vamos compilar o programa e rodar:



javac cadastro.java (se quiser, pode também usar javac *)
java cadastro
Prontinho, nosso primeiro programinha “orientado a objetos” ;D

link para outras postagens:
Aula Java: Parte-04
Aula Java: Parte-03
Aula Java: Parte-02
Aula Java: Parte-01



Nenhum comentário:

Postar um comentário

retirei ENVIO anonimo porque algumas pessoas faziam perguntas anonimamente e eu não tinha como contacta-los

para duvidas pode enviar um e-mail para
rpgmak@rpgmak.tk