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:
Função:
Espero ter ajudado.
Abraços.