Enviar este artigo por e-mail para alguém
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
Technorati Tags: java, aula, segunda aula, orientação a objetos, oo, programação, programa, desenvolvimento, software, código, exercícios, classe, class, extends, subclasses, herdar, hierarquia, herança, String, int, float, objeto, valor, variável, objetos
Powered by ScribeFire.
Se você gostou deste post, pode me pagar um café que servirá como um excelente combustível para que eu escreva mais posts ;)










Dica muito legal para quem quer aprender POO é uma mão na roda.
Vou colocar um pots na minha página com os devidos créditos.
Parabéns pelo post e pelo blog!!
Nossa! que blog mais inteligentão.
Vou ver se uso suas dicas para melhorar meu relacionamento com a net.
Até a próxima
Hebertphp: Muito obrigado! Fico muito feliz pelo elogio e mais ainda quando você postar no seu blog
Abraços
Granulado: Muito obrigado
Apareça aqui sempre que quiser. Será sempre bem-vindo! Abraços
Pô, segunda aula de Java e você já está aprendendo herança? Envy you! u.u
Eduardo Costa Lisboa: Dont envy me, my friend! Se estou apredendo herança já, é justamente porque a professora obviamente não sabe organizar e nem estruturar as aulas que passa
Deveria na verdade era ter pena de mim ;/
Abraços
Só um comentário. Não é necessário utilizar 3 Scanner, um para cada tipo de variável.
Um scanner só é suficiente para fazer as operações de leitura de todas as variáveis, além de não sobrecarregar a memória com objetos inúteis.
Até.
Gustavo: Opa cara! Valew pela dica. Esses códigos foram baseados nos que a professora da minha faculdade passou e, sinceramente, ela é uma tremenda picareta e incompetente… Peço-lhe que me desculpe pela incompetência da minha professora. Se estivesse vendo as aulas de Java que vi na minha faculdade, iria perceber que a única coisa que aprende é o que estiver errado ;D Vou ver se tento aprender direito e melhorar
Abraços
do Terrinha
[...] de recomendar um exemplo prático em Java, “cadastro de animais” encontrado em Terramel [4], bem simples e didático, estarei disponibilizando um arquivo “zipado” com alguns dos [...]
POw manow maneiro mas vc só esqueceu de avisar q toda class public começa com o nome do arquivo maiusculo ,isso pode afetar quem está começando mais está tudo ótimo manow..