Na aula anterior, ficou um exercício pendente, onde deveríamos fazer uma classe chamada Matematica que realize as 4 operações básicas(+ - * /) sobre 2 números float. E depois, utilizando a classe Matematica, escreva uma classe chamada programa que realize as seguintes operações: 5.3 + 4.7. É possível construir esse programa? Por que?
Bem, vamos a classe Matemática então, vou colocar o código por inteiro, mas também colocarei uma imagem de como ele ficou, para que tenham uma melhor visualização da identação e vejam melhor os comentários:
package calculadora;
public class Matematica {
private float num1; //definir atributos sempre como private
private float num2;
private float resultado;
public void somar(){ //definindo métodos
resultado = num1 + num2; //realizando as operações
}
public void subt(){
resultado = num1 - num2;
}
public void mult(){
resultado = num1 * num2;
}
public void div(){
resultado = num1 / num2;
}
public float mostrar(){ //metodo que retornará o resultado, por isso não deve ser void,
//e precisa ser do mesmo tipo do atributo, no caso retornará
//um float
return(resultado);
}
}
o código acima é o mesmo da imagem abaixo:
Não, não é possível pois os atributos são privados e não há métodos que permitam a entrada de valores na classe, para resolver isso, ou cria um método entrada(), ou, programando de forma porca, coloque os atributos como públicos. Faremos acrescentando um novo método:
public void entrada (float n1, float n2){ //entre parenteses está a definição de parametros
//este método será usado como forma de enviar dados para dentro da classe
num1 = n1;
num2 = n2; //atributos recebendo parametros
}
Portanto ficará assim:
Pronto, agora é possível resolvermos aquele problema. Continuando, vamos fazer a classe onde realmente realizará as operações, a chamei de classe CalculadoraSimples:
package calculadora;
/*A classe realizará as seguintes operações:
* 5.3 + 4.7 e apresentar o resultado */
public class CalculadoraSimples
{
public static void main(String[] args)
{
Matematica calc = new Matematica();//instanciando a classe Matematica,calc é um objeto
//Somar
calc.entrada(5.3f, 4.7f); //atribuindo valores para os parametros n1 e n2
//sempre que passa um numero com casa decimal, ele acha que é double, mas haviamos
//definido que ele seria float, por isso, colocar o f na frente do numero para
//forçar ele entender que é float
calc.somar();
System.out.println("Resultado = " + calc.mostrar());
//Multiplicação
calc.entrada(3, 1.5f);
calc.mult();
System.out.println("Resultado da multiplicação = " + calc.mostrar());
}
}
imagem:
Beleza, continuando, na aula de ontem aprendemos realizar a entrada de dados com o teclado e a converter valores.
Entrada de dados:
Inicialmente deve-se realizar a importação do pacote java.io, pois, ele contém as classes necessárias que permitirão a entrada de dados através do teclado. A utilização dessas classes requer que o tratamento de exceções seja habilitado, neste exemplo, isso será realizado através da palavra reservada throws.
O próximo passo consiste em criar um objeto pertencente a classe BufferedReader, o qual permitirá receber os dados da System.in que representa o acesso ao dispositivo de hardware teclado. Concluindo este exemplo, o método readLine() obtém o conteúdo digitado até que o usuário pressione a tecla Enter.
É importante salientar que toda entrada de dados é recebida pela linguagem como um objeto pertencente a classe String sendo que, quando necessário, devemos realizar aconversão para o tipo de dados desejado.
Exemplo:
package entradaDeDados;
import java.io.*; //importando pacote para habilitar entrada de teclado
//pacotes em java são conjuntos de classes, esse pacote cuida de classes responsáveis
//por entrada e saida de dados
public class EntradaDeDados
{
public static void main(String[] args) throws IOException
{
String nome, sobrenome, idade; //declarando a variavel nome e idade do tipo String
BufferedReader teclado = new BufferedReader(
new InputStreamReader(System.in)); //cria objeto teclado
System.out.print("Informe o seu nome:"); //saida na tela
nome = teclado.readLine(); //onde pega os valores do teclado, sempre recebe
//em String, caso precise de outros dados, tem que
//converter
System.out.print("Informe seu sobrenome:");
sobrenome = teclado.readLine();
System.out.print("Informe sua idade:"); //o print serve para escrever na frente
idade = teclado.readLine();
System.out.println("Olá, " + nome + " " + sobrenome + " , você tem " + idade + " anos" + "."); //saida em tela
}
}
Conversão de tipos de dados:
A conversão é realizada em dois passos, primeiro é criado um objeto a partir da classe que receberá, como parâmetro, o objeto da classe String, isso porque um dado sempre é recebido como String. Em seguida o método é usado para retornar um valor do tipo de dados inteiro para a variável saída. Exemplo: Convertendo String para int:
String entrada = “12”;
int saida = new Integer(entrada).intValue();
Outro exemplo, convertendo String para double:
String valor = "125.7";
double saida = new Double(valor).doubleValue();
Segue o exemplo de aplicação na classe Soma:
package entradaDeDados;
import java.io.*;
public class Soma
{
public static void main(String[] args) throws IOException
{
String num1, num2; //variaveis
int resulSoma;
BufferedReader teclado = new BufferedReader(
new InputStreamReader(System.in)); //cria objeto teclado
System.out.print("Informe o primeiro valor:"); //mensagem ao usuario
num1 = teclado.readLine(); //pegando valor do teclado
System.out.print("Informe o segundo valor:");
num2 = teclado.readLine();
int valor1 = new Integer(num1).intValue(); //convertendo valores
int valor2 = new Integer(num2).intValue();
resulSoma = valor1 + valor2; //efetuando a operação
System.out.println("O resultado entre " + num1 + " e " + num2 + " é " + resulSoma);
}
}
Agora um Exercício para testar e se divertir:
Efetuar o cálculo da qtde de litros de combustíveis gasta em uma viagem, utilizando um automóvel que faz 12 Km por litro. Para obter o calculo, o usuário deve fornecer o tempo gasto na viagem e a velocidade média.Desta forma, será possível obter a distância percorrida com a fórmula Distancia = tempo * velocidade . Tendo o valor da distancia, basta calcular a quantidade de litros de combustivel utilizada na viagem com a fórmula: Litros_usados = Distacia / 12. O programa deve apresentar os valores da velocidade média, tempo gasto, a distancia percorrida e a qtde de litros utilizados na viagem. Dica: trabalhe com valores reais
package exercicios;
import java.io.*; //para fazer uso do teclado
import java.text.*; //para formatar casas decimais
public class Exe4a {
public static void main(String[] args) throws IOException
{
String sTempo, sVelocidade;
double dDistancia, dDistPercorrida, dLitros;
NumberFormat mascara = new DecimalFormat("###.00"); //para formatar as casas decimais
BufferedReader teclado = new BufferedReader(
new InputStreamReader(System.in)); //cria objeto teclado
System.out.println("Informe o Tempo de Viagem: ");
sTempo = teclado.readLine();
System.out.println("Informe a Velocidade: ");
sVelocidade = teclado.readLine();
//converter as variaveis
double dTempo = new Double(sTempo).doubleValue();
double dVelocidade = new Double(sVelocidade).doubleValue();
dDistPercorrida = dTempo * dVelocidade; //calculo de distacia percorrida
dLitros = dDistPercorrida / 12;
System.out.println("Velocidade Média = " + sVelocidade +
"\nTempo Gasto = " + sTempo +
"\nDistância Percorrida = " + dDistPercorrida +
"\nQuantidade de Litros = " + mascara.format(dLitros));
}
}
Pronto, por enquanto é só, mas os estudos continuam ao longo da semana, agora é melhor eu me concentrar na aqui na aula ;-)
Ahh uma dica, achei um material muito bom para servir de base de estudos, o curso de Java do Jedi, que por sinal, estou aproveitando também, é só conferir aqui.
Bons estudos para todos nós ;-)