Exemplos de Funções em Java

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

Linguagem Java

Linguagem Java

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:

Lampada - Java

Lampada – Java


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:

Aluno - Java

Aluno – Java


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:

Elevador - Java

Elevador – Java


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:

Controle Remoto - Java

Controle Remoto – Java


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:

Maior Numero - Java

Maior Numero – Java


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:

Par ou Impar - Java

Par ou Impar – Java


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.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

10 Responses

  1. luis disse:

    FILEEE MANO, Mrs. PROGRAMADOR, ABRAÇOS, KKK ISSO É MUITO COMPRICADO FOR MI.

  2. Os códigos estão muito bons; escritos com clareza e bem legíveis…continue postando !

  3. TADEU ALVES disse:

    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.

  4. 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

    • Dan_Atilio disse:

      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.

Deixe uma resposta

Terminal de Informação