Olá Pessoal…
Hoje irei falar mostrar alguns exemplos de uso de Objeto em Java, como uso de calculadora, aluno, etc… Lembrando que como Java é multiplataforma, os códigos mostrados aqui rodam em Linux, Windows, Mac, etc…
Pessoal, para os que ainda não tem tanto conhecimento em java, talvez seria melhor ler:
–Conceitos de Programação: Orientação a Objeto – Objeto, Encapsulamento, Atributo, Método, etc…
–Programação: Configurando Java JDK – Instalando e configurando o Java para desenvolvimento (JDK)
Abaixo estão os respectivos programas (objeto e classe em java), nessa ordem:
– Lampada
– Aluno
– Elevador
– Controle Remoto
– Maior Número
– Par ou Ímpar
Questão: Criar uma classe chamada Lampada, contendo um atributo chamado estadoLampada e os métodos respectivos de Acender, Apagar e Mostrar o Resultado.
Classe – Objeto: Lampada.java
public class Lampada {
//Variavel booleana, Verdadeiro / Falso
private boolean estadoDaLampada;
//Classe principal
public Lampada(boolean x) {
this.estadoDaLampada = x;
}
//Metodo Acende Lampada
public void acende(){
this.estadoDaLampada=true;
}
//Metodo Apaga Lampada
public void apaga(){
this.estadoDaLampada=false;
}
//Metodo Mostra Resultado
public void mostraResultado(){
//Se o estado da lampada for Verdadeiro
if(this.estadoDaLampada){
System.out.printf("\n\nA lampada esta acessa!\n\n");
}
else{
System.out.printf("\n\nA lampada esta apagada!\n\n");
}
}
}
Classe – Principal: usaLampada.java
import java.util.Scanner;
import java.util.Formatter;
public class usaLampada {
public static void main(String[] args) {
int nOpc=-1;
//Declarando o Objeto Lampada
Lampada lamp[]=new Lampada[1];
Scanner sLer = new Scanner(System.in);
//Inicia a Lampada desligada
lamp[0]=new Lampada(false);
System.out.printf("Iniciando...");
while(true){
pintaMenu();
nOpc = sLer.nextInt();
//Se for 0, encerra programa
if(nOpc==0)
break;
//Verificando a opção
switch (nOpc) {
case 1:
lamp[0].acende();
break;
case 2:
lamp[0].apaga();
break;
case 3:
lamp[0].mostraResultado();
break;
default:
System.out.printf("\n --> Valor Incorreto");
//esperando 2 segundos (delay)
try { Thread.sleep (2000); }
catch (InterruptedException ex) {}
break;
}
}
System.out.printf("\n\nPrograma Finalizado!\n\n");
}
//Função que cria o menu
private static void pintaMenu(){
System.out.printf("\n\n > Menu ");
System.out.printf("\n 1- Acender Lampada ");
System.out.printf("\n 2- Apagar Lampada ");
System.out.printf("\n 3- Mostrar Resultado ");
System.out.printf("\n 0- Sair ");
System.out.printf("\n > Resposta: ");
}
}
Imagem:
Questão: Crie uma classe chamada de Aluno, que possua os atributos Matrícula, Nome, eMail, Curso, Telefone, Celular e Endereço. Essa classe deve ter os métodos de acesso e modificação (getters e setters). Na função principal utilize um vetor para cadastrar 5 alunos, depois exiba todos os alunos cadastrados.
Classe – Objeto: Aluno.java
public class Aluno {
//Variaveis globais
private String cMatricula, cNome, cEmail, cCurso, cFone, cCelular, cEndereco;
//Classe principal
public Aluno(String cMat, String cNom, String cEma, String cCur, String cFon, String cCel, String cEnd) {
this.cMatricula = cMat;
this.cNome = cNom;
this.cEmail = cEma;
this.cCurso = cCur;
this.cFone = cFon;
this.cCelular = cCel;
this.cEndereco = cEnd;
}
//Get - Matricula
public String getMat() {
return this.cMatricula;}
//Get - Nome
public String getNom() {
return this.cNome;}
//Get - Email
public String getEma() {
return this.cEmail;}
//Get - Curso
public String getCur() {
return this.cCurso;}
//Get - Fone
public String getFon() {
return this.cFone;}
//Get - Celular
public String getCel() {
return this.cCelular;}
//Get - Endereco
public String getEnd() {
return this.cEndereco;}
//Set - Matricula
public void setMat(String cM){
this.cMatricula = cM;}
//Set - Nome
public void setNom(String cN){
this.cNome = cN;}
//Set - Email
public void setEma(String cE){
this.cEmail = cE;}
//Set - Curso
public void setCur(String cC){
this.cCurso = cC;}
//Set - Fone
public void setFon(String cF){
this.cFone = cF;}
//Set - Celular
public void setCel(String cT){
this.cCelular = cT;}
//Set - Endereco
public void setEnd(String cR){
this.cEndereco = cR;}
}
Classe – Principal: usaAluno.java
import java.util.Scanner;
import java.util.Formatter;
public class usaAluno {
public static void main(String[] args) {
int nAux;
Scanner sLer = new Scanner(System.in);
//Objeto Aluno, vetor de 5 posições
Aluno alu[]=new Aluno[5];
//zerando valores
for(nAux=0;nAux<=4;nAux++){
alu[nAux]=new Aluno("","","","","","","");
}
//lendo valores
for(nAux=0;nAux<=4;nAux++){
System.out.printf("\nDados - aluno%d \n",nAux+1);
System.out.printf("Matricula: ");
alu[nAux].setMat(sLer.nextLine());
System.out.printf("Nome: ");
alu[nAux].setNom(sLer.nextLine());
System.out.printf("Email: ");
alu[nAux].setEma(sLer.nextLine());
System.out.printf("Curso: ");
alu[nAux].setCur(sLer.nextLine());
System.out.printf("Fone: ");
alu[nAux].setFon(sLer.nextLine());
System.out.printf("Celular: ");
alu[nAux].setCel(sLer.nextLine());
System.out.printf("Endereco: ");
alu[nAux].setEnd(sLer.nextLine());
}
System.out.printf("\n\n\n");
//mostrando valores
for(nAux=0;nAux<=4;nAux++){
System.out.printf("\nAluno %d:\n", nAux+1);
System.out.printf("Matricula: %s\n", alu[nAux].getMat());
System.out.printf("Nome: %s\n", alu[nAux].getNom());
System.out.printf("Email: %s\n", alu[nAux].getEma());
System.out.printf("Curso: %s\n", alu[nAux].getCur());
System.out.printf("Fone: %s\n", alu[nAux].getFon());
System.out.printf("Celular: %s\n", alu[nAux].getCel());
System.out.printf("Endereco: %s\n", alu[nAux].getEnd());
//esperando 2 segundos
try { Thread.sleep (2000); }
catch (InterruptedException ex) {}
}
System.out.printf("\n\nPrograma Finalizado!\n\n");
}
}
Imagem:
Questão: Crie uma classe que simule um Elevador, que irá armazenar o anadar atual (térreo = 0), total de andares (excluindo o térreo), capacidade do elevador e quantas pessoas estão dentro dele. Lembrando que os atributos e funções devem ser encapsulados (getters e setters). Sendo que deve haver os métodos:
-Inicializa: recebe a capacidade do elevador e o total de andares
-Entra: Acrescenta uma pessoa no elevador (se não estiver cheio)
-Sai: Sai uma pessoa do elevador (se não estiver vazio)
-Sobe: Sobe um andar (se já não estiver no último)
-Desce: Desce um andar (se já não estiver no térreo)
Classe – Objeto: Elevador.java
public class Elevador {
//Variaveis globais
private int nAtual, nTotal, nCapac, nPessoas;
//Classe principal
public Elevador(int nA, int nT, int nC, int nP) {
this.nAtual = nA;
this.nTotal = nT;
this.nCapac = nC;
this.nPessoas = nP;
}
//Get - Capacidade
public int getCapac() {
return this.nCapac;}
//Get - Pessoas presentes
public int getPessoas() {
return this.nPessoas;}
//Get - Total de andares
public int getTotal() {
return this.nTotal;}
//Get - Andar Atual
public int getAtual() {
return this.nAtual;}
//Set - Pessoas Presentes
public void setPes(int nPe){
this.nPessoas = nPe;}
//Inicializa
public void Inicializa(int nCap,int nTot){
this.nTotal = nTot;
this.nCapac = nCap;
}
//Entra pessoa
public void Entra(){
this.nPessoas+=1;
}
//Sai pessoa
public void Sai(){
this.nPessoas-=1;
}
//Sobe de andar
public void Sobe(){
this.nAtual+=1;
}
//Desce de andar
public void Desce(){
this.nAtual-=1;
}
}
Classe – Principal: usaElevador.java
import java.util.Scanner;
import java.util.Formatter;
public class usaElevador {
public static void main(String[] args) {
int nOpc=-1, nTot, nCap, nAux;
Scanner sLer = new Scanner(System.in);
//objeto Elevador
Elevador elev[]=new Elevador[1];
elev[0]=new Elevador(0,0,0,0);
//Inicializando (capacidade total e andares)
System.out.printf("Capacidade total? R: ");
nCap=sLer.nextInt();
System.out.printf("Quantos andares? R: ");
nTot=sLer.nextInt();
elev[0].Inicializa(nCap,nTot);
while(true){
pintaMenu();
nOpc = sLer.nextInt();
if(nOpc==0)
break;
System.out.printf("\n\n");
switch (nOpc) {
case 1:
System.out.printf("Num de pessoas atualmente: ");
nAux=sLer.nextInt();
if(nAux<elev[0].getCapac())
elev[0].setPes(nAux);
break;
case 2:
//só sobe se o andar atual for menor que o total
if (elev[0].getAtual()<elev[0].getTotal())
elev[0].Sobe();
break;
case 3:
//só desce se o andar atual for maior que o terreo
if (elev[0].getAtual()>0)
elev[0].Desce();
break;
case 4:
//só entra, se não tiver atingido a capacidade
if (elev[0].getPessoas()<elev[0].getCapac())
elev[0].Entra();
break;
case 5:
//só sai, se houverem pessoas (>0)
if (elev[0].getPessoas()>0)
elev[0].Sai();
break;
case 6:
System.out.printf("Quantidade de Pessoas: %d\n",elev[0].getPessoas());
System.out.printf("Capacidade Suportada: %d\n",elev[0].getCapac());
System.out.printf("Andar Atual: %d\n",elev[0].getAtual());
System.out.printf("Quantidade de Andares: %d\n",elev[0].getTotal());
//espera 2 segundos
try { Thread.sleep (2000); }
catch (InterruptedException ex) {}
break;
default:
System.out.printf("\n --> Valor Incorreto <--");
break;
}
}
System.out.printf("\n\nPrograma Finalizado!\n\n");
}
//função eu mostra menu
private static void pintaMenu(){
System.out.printf("\n\n > Menu ");
System.out.printf("\n 1- Numero de pessoas ");
System.out.printf("\n 2- Sobe de Andar ");
System.out.printf("\n 3- Desce de Andar ");
System.out.printf("\n 4- Entra Pessoa ");
System.out.printf("\n 5- Sai Pessoa ");
System.out.printf("\n 6- Mostrar dados ");
System.out.printf("\n 0- Sair ");
System.out.printf("\n > Resposta: ");
}
}
Imagem:
Questão: Crie uma classe que simule um ControleRemoto, que pode controlar o volume e trocar os canais de televisão. Sendo que devem existir métodos para troca de Volume e troca de Canal e também um método para Consulta dos dados.
Obs.: No código que criei abaixo, fiz um limite de Volume que vai de 0 a 100, e de canal que vai de 1 a 200.
Classe – Objeto: ControleRemoto.java
public class ControleRemoto {
//Variaveis globais
private int nCanal, nVolume;
//Classe principal
public ControleRemoto(int nC, int nV) {
this.nCanal = nC;
this.nVolume = nV;
}
//Get - Canal
public int getCanal() {
return this.nCanal;}
//Get - Volume
public int getVolume() {
return this.nVolume;}
//Set - Canal
public void setCanal(int nCa){
if((nCa>=1)||(nCa<=200)){
this.nCanal = nCa;}
}
//Muda Canal
public void mudaCanal(int nTipo){
//+ (Aumenta Canal)
if(nTipo==1){
//se for menor que 200, aumenta
if(this.nCanal<200){
this.nCanal+=1;}
//volta pro 1
else{
this.nCanal=1;}
}
//- (Diminui Canal)
else {
//se for maior que 1, diminui
if(this.nCanal>1){
this.nCanal-=1;}
//volta pro 200
else{
this.nCanal=200;}
}
}
//Muda Volume
public void mudaVolume(int nTipo){
//+ (Aumenta Volume)
if(nTipo==1){
//se for menor que 100
if(this.nVolume<100){
this.nVolume++;}
}
//- (Diminui Volume)
else{
//se for maior que 0
if(this.nVolume>0){
this.nVolume--;}
}
}
}
Classe – Principal: usaControle.java
import java.util.Scanner;
import java.util.Formatter;
public class usaControle {
public static void main(String[] args) {
int nOpc=-1;
Scanner sLer = new Scanner(System.in);
//objeto Controle
ControleRemoto cont[]=new ControleRemoto[1];
//inicia no canal 1, volume 20
cont[0]=new ControleRemoto(1,20);
while(true){
pintaMenu();
nOpc = sLer.nextInt();
if(nOpc==0)
break;
System.out.printf("\n\n");
switch (nOpc) {
case 1:
cont[0].mudaCanal(1);
break;
case 2:
cont[0].mudaCanal(0);
break;
case 3:
System.out.printf("\nInsira o canal: ");
cont[0].setCanal(sLer.nextInt());
break;
case 4:
cont[0].mudaVolume(1);
break;
case 5:
cont[0].mudaVolume(0);
break;
case 6:
System.out.printf("Volume: %d\n",cont[0].getVolume());
System.out.printf("Canal: %d\n",cont[0].getCanal());
//esperando 2 segundos
try { Thread.sleep (2000); }
catch (InterruptedException ex) {}
break;
default:
System.out.printf("\n Valor Incorreto");
//Esperando 2 segundos
try { Thread.sleep (2000); }
catch (InterruptedException ex) {}
break;
}
}
System.out.printf("\n\nPrograma Finalizado!\n\n");
}
private static void pintaMenu(){
System.out.printf("\n\n > Menu ");
System.out.printf("\n 1- + Canal ");
System.out.printf("\n 2- - Canal ");
System.out.printf("\n 3- Buscar canal ");
System.out.printf("\n 4- + Volume ");
System.out.printf("\n 5- - Volume ");
System.out.printf("\n 6- Mostrar dados ");
System.out.printf("\n 0- Sair ");
System.out.printf("\n > Resposta: ");
}
}
Imagem:
Questão: Crie um programa em java que leia 10 números (vetor), e depois imprima o maior deles. Criando uma classe que contém um objeto e os métodos get e set.
Classe – Objeto: MaiorNum.java
public class MaiorNum {
//Variaveis globais
private int nValor;
//Classe principal
public MaiorNum(int nV) {
this.nValor = nV;
}
//Get - Valor
public int getValor() {
return this.nValor;}
//Set - Valor
public void setValor(int nVal){
this.nValor = nVal;
}
}
Classe – Principal: usaMaior.java
import java.util.Scanner;
import java.util.Formatter;
public class usaMaior {
public static void main(String[] args) {
int nAux,nMaior;
Scanner sLer = new Scanner(System.in);
//Objeto MaiorNum, 10 posições
MaiorNum num[]=new MaiorNum[10];
//Inicializando valores (0)
for (nAux=0;nAux<=9;nAux++){
num[nAux]=new MaiorNum(0);
}
//Inserindo valores
for (nAux=0;nAux<=9;nAux++){
System.out.printf("\nInsira o valor %d: ",nAux+1);
num[nAux].setValor(sLer.nextInt());
}
nMaior=num[0].getValor();
//Procurando o maior valor
for (nAux=1;nAux<=9;nAux++){
if(num[nAux].getValor() > nMaior){
nMaior=num[nAux].getValor();
}
}
System.out.printf("\n\nMaior valor encontrado: %d",nMaior);
//Esperando 2 segundos
try { Thread.sleep (2000); }
catch (InterruptedException ex) {}
System.out.printf("\n\nPrograma Finalizado!\n\n");
}
}
Imagem:
Questão: Crie um programa, que a partir de um número, mostre se ele é par ou ímpar. Obs.: No programa abaixo, ao digitar 0, o programa é finalizado.
Classe – Objeto: ParImpar.java
public class ParImpar {
//Variaveis globais
private int nVal;
//Classe principal
public ParImpar(int x) {
this.nVal = x;
}
//Get Valor
public float getVal1() {
return this.nVal;}
//Get Resultado
public String getResul(){
String cRetorno = "";
//se o resto da divisão for 0
if(this.nVal % 2 == 0)
cRetorno = "Par";
else
cRetorno = "Impar";
return cRetorno;
}
//Set
public void setVal1(int n) {
this.nVal = n;}
}
Classe – Principal: fazParImpar.java
import java.util.Scanner;
import java.util.Formatter;
public class fazParImpar {
public static void main(String[] args) {
int nOpc=-1;
float nA, nB, nResul;
Scanner sLer = new Scanner(System.in);
ParImpar oParImpar[]=new ParImpar[1];
oParImpar[0]=new ParImpar(0);
System.out.printf("Iniciando...");
while(true){
//esperando 2 segundos
try { Thread.sleep (2000); }
catch (InterruptedException ex) {}
pintaMenu();
nOpc = sLer.nextInt();
if(nOpc==0)
break;
oParImpar[0].setVal1(nOpc);
System.out.println("\nValor "+oParImpar[0].getVal1()+" = "+oParImpar[0].getResul());
}
System.out.printf("\n\nPrograma Finalizado!\n\n");
}
private static void pintaMenu(){
System.out.printf("\n\n > Menu ");
System.out.printf("\n x - Insira o valor do numero ");
System.out.printf("\n 0 - Sair do Programa ");
System.out.printf("\n > Resposta: ");
}
}
Imagem:
Obs.: Todos esses códigos tem o intuito de ajudar os novos programadores em Java, usem eles como apoio para criarem suas próprias soluções.
Bom pessoal, por hoje é só.
Abraços e até a próxima.







FILEEE MANO, Mrs. PROGRAMADOR, ABRAÇOS, KKK ISSO É MUITO COMPRICADO FOR MI.
rsrs…
Abraços luis.
Os códigos estão muito bons; escritos com clareza e bem legíveis…continue postando !
Boa noite Wendel,
Muito Obrigado.
Abração e boa semana.
Estou começando estudo de programação na Universidade e Já comecei com Java. Você pode sugerir onde posso encontrar conteúdo para eu estudar. Vi que suas postagens são muito boas.
Bom dia Tadeu.
Eu costumava usar muito o GUJ – http://www.guj.com.br/ como fórum para soluções e dúvidas.
Para aprender, eu pesquisava mesmo no stackoverflow, google, etc.
Eu pensei em voltar a postar sobre Java, mas tenho que montar uma estrutura para as postagens.
Agradeço pelo apoio.
Qualquer dúvida, pode entrar em contato.
Um grande abraço.
Dan_Atilio Poderia está me ajudando em um problema urgente ?
Boa tarde Jeferson.
Claro que sim. Qual seria o problema?
Abraços.
Bom dia nossa acho que você poderia me dar uma luz. Estou dando uma ralada básica pra aprender a programar é o professor passou uma questão que eu simplesmente travei, sabe o que é travar eu não tenho ideia de como começar essa budega vey. Só me dar uma luz como começar isso, se sair o inicio o restante vai embora. Por favor
Considerando um Despertador no mundo real, crie uma classe java que represente seus estados e comportamentos
Boa tarde Leidy, tudo bem?
Eu estava preparando um exemplo para postar de despertador. Segue abaixo, talvez você consiga reaproveitar algo.
Classe:
public class Despertador { private int ativado, hora, minuto; //Cria o despertador public Despertador() { this.hora = 0; this.minuto = 0; this.ativado = 0; } //Pega a hora public int getHora() { return this.hora;} //Pega os minutos public int getMinutos() { return this.minuto;} //Pega se está ativado public int getAtivado() { return this.ativado;} //Seta as horas public void setHora(int hor){ if ((hor < 0) || (hor >= 24)){ System.out.printf("> Hora invalida!\n"); } else this.hora = hor; } //Seta os minutos public void setMinuto(int min){ if ((min < 0) || (min >= 60)){ System.out.printf("> Minutos invalida!\n"); } else this.minuto = min; } //Ativa / Desativa despertador public void ativa(){ if (this.ativado == 0) this.ativado = 1; else this.ativado = 0; } //Consulta o estado do despertador public void consulta(){ String texto = "Despertador "; if (this.ativado == 1) texto += "ATIVADO! "; else texto += "DESATIVADO! "; texto += "Hora: "+ Integer.toString(this.hora)+"; "; texto += "Minutos: "+ Integer.toString(this.minuto)+"\n"; System.out.printf(texto); } }Função:
import java.util.Scanner; import java.util.Formatter; public class usaDespertador { public static void main(String[] args) { int nOpc=-1; Scanner sLer = new Scanner(System.in); //Objeto meu despertador Despertador meuDespertador = new Despertador(); while(true){ pintaMenu(); nOpc = sLer.nextInt(); if(nOpc==0) break; System.out.printf("\n\n"); switch (nOpc) { case 1: System.out.printf("\nInsira a hora: "); meuDespertador.setHora(sLer.nextInt()); break; case 2: System.out.printf("\nInsira os minutos: "); meuDespertador.setMinuto(sLer.nextInt()); break; case 3: meuDespertador.ativa(); break; case 4: meuDespertador.consulta(); break; default: System.out.printf("\n Valor Incorreto"); //Esperando 2 segundos try { Thread.sleep (2000); } catch (InterruptedException ex) {} break; } } System.out.printf("\n\nPrograma Finalizado!\n\n"); } private static void pintaMenu(){ System.out.printf("\n\n > Menu "); System.out.printf("\n 1- Definir Hora "); System.out.printf("\n 2- Definir Minutos "); System.out.printf("\n 3- Ativar / Desativar "); System.out.printf("\n 4- Consultar "); System.out.printf("\n 0- Sair "); System.out.printf("\n > Resposta: "); } }Espero ter ajudado.
Abraços.