sexta-feira, 26 de fevereiro de 2010

Linguagem de Programação – Java – Aula 2 e 3

Um pouquinho atrasada para postar o conteúdo da segunda e terceira aula de java, mas vamos lá. Na segunda aula, fomos finalmente ao laboratório aplicar os conceitos que havíamos aprendido, que você pode conferir aqui .
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:




Continuando o exercício, utilizando a classe Matemática, escreva uma classe chamada programa que realize as seguintes operações: 5.3 + 4.7. É possível construir esse programa? Por que?
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 ;-)







Um comentário:

  1. Noemi,
    Parabens pelo blog e por esta explicação. Estava apanhando um pouco para entender estas partes do java. Sou estudante do sexto período da Uninversiade Estadual da Zona OEste no Rio de JAneiro. Sou autor do blog Fatos GErais. PArabens!

    ResponderExcluir