Mostrando postagens com marcador atributo. Mostrar todas as postagens
Mostrando postagens com marcador atributo. Mostrar todas as postagens

domingo, 4 de abril de 2010

Linguagem de Programação - Java - Aula 5

Olá olá olá galera, revendo as aulas de java, eu esqueci de postar uma delas, a referente a laços de repetição, portanto vou apresentar em resumo nesta aqui.

Nesse link postado acima, na wikipédia, há uma explicação detalhada a respeito do assunto, vale a pena conferir.

Em java, os loops são feitos da seguinte forma:

While: Enquanto i, que é uma variável inteira, for menor ou igual a 20, deve-se imprimir em tela o valor de i. O “i++” é usado para incrementar o valor, ou seja, cada vez que passar aí, fará i = i + 1;


while ( i <= 20)

{

System.out.println(i);

i++;

}

Linguagem de Programação - Java - Aula 5

For: Para i que começa valendo 1 até i ser menor ou igual a 20 deve fazer também imprimir em tela o valor de i. Note que na própria estrutura da condição, já definimos que o i deve ser incrementado.

for(i = 1; i <= 20; i++)

{

System.out.println(i);

}


Do while: O programa passará pelo menos uma vez pela estrutura e continuará até que a condição se torne falsa.


do{

System.out.println(i);

i++;

}while(i <= 20);


As estruturas de repetição são muito usados, segue um exemplo de uma tabuada feita usando o for, e é possível fazer usando qualquer tipo de loop, fica aí o desafio para tentarem de outras formas.


int valor = 0;

for (int i = 1; i <= 10; i++)

{

valor = 7 * i;

System.out.println("7 x " + i + " = " + valor);

}


Agora sim a aula 5ª aula. Nesta aula, começaremos a trabalhar realmente com o conceito de classes, atributos e métodos, usando como exemplo um cadastro. Se houver dúvidas no conceito de cada coisa, vale a pena recordar a 1ª aula onde explica claramente o que é cada detalhe.

Vamos então definir duas classe, uma classe Pessoa e a outra ExemploPessoa, na classe Pessoa vamos mostrar ao java o que é uma pessoa, que dados serão requeridos. Toda pessoa tem nome, endereço e telefone, portanto, esses serão nossos atributos. Segue então como ficará a classe Pessoa, onde o que está em itálico são os comentários de cada parte do código.

Abaixo do código, segue as imagens possibilitando um melhor entendimento e visualização da identação.

/*Essa classe não terá o método main pq a classe principal que executa e inicia o programa é que tem o main

*

* Lembrando que uma classe precisa ter atributos e métodos

*

* Atributos: nome, endereço, telefone = são privados e podem ser acessados dentro da classe

*

* Metodos: Pessoa() e Pessoa(String, String, String) = são públicos, são a forma de comunicação entre as classes */

public class Pessoa {

private String nome;

private String endereco;

private String telefone;

public Pessoa() //Métodos que possuem o mesmo nome da classe são chamados detodos construtores, sua função é definir como um objeto será criado, ele somente pode ser usado na criação de um objeto, pq a função é falar como o obj deve ser criado - instância)

{ //esse método cria um objeto vazio, pq o usuario vai digitar depois os dados,

//ainda não há valor definido, mas o objeto ja existe

}

public Pessoa(String _nome, String _endereco, String _telefone) //segundo metodo construtor

//nesse construtor é criado um objeto e ja sabe os dados do objeto, por isso foi passado com parâmetros, usar o anderline na frente (_nome) é convenção para identificar melhor e facilitar a manutenção

{

nome = _nome; //recebe os valores dos parâmetros e passa para os atributos

endereco = _endereco;

telefone = _telefone;

}

public void DefinirNome(String _nome) //o objetivo desse metodo: permite alterar o valor do atributo nome

{

nome = _nome;

}

public void DefinirEnd(String _endereco) //o objetivo desse metodo: permite alterar o valor do atributo endereco

{

endereco = _endereco;

}

public void DefinirTel(String _telefone) //o objetivo desse metodo: permite alterar o valor do atributo telefone

{

telefone = _telefone; //ele não retorna valor (void), apenas pega o parametro e atribui ao atributo

}

public String ObterNome() //metodos que retornam precisam mostrar o tipo de dado que retorna, no caso uma String

{

return (nome);

}

public String ObterEnd()

{

return (endereco);

}

public String ObterTel()

{

return (telefone);

}

// Demais métodos ...

}



A classe ExemploPessoa é a que realmente executará o programa, nela contém o método main, e é nela que colocaremos os dados das pessoas. Segue abaixo como ela deve ficar.


/*A classe principal, aqui é que pode usar as outras classes*/

public class ExemploPessoa {

public static void main(String[] args) throws IOException

{

BufferedReader teclado = new BufferedReader(

new InputStreamReader(System.in)); //cria o objeto teclado

Pessoa p1 = new Pessoa(); // A classe Pessoa será um modelo para mostrar o que será uma pessoa para o programa, o p1 é um objeto, o new é o operador de instancia (a partir de uma classe cria-se um objeto) e o Pessoa() é o método construtor, ele sempre vai aparecer com o new

//esse metodo é vazio, isso seria necessário pq por exemplo, num banco de dados como ele vai retornar um valor se não leu ainda o banco? Então com o metodo construtor vazio ele faz a leitura e depois ele usa um metodo

construtor para atribuir valor

System.out.println("Informe o nome: "); //obtendo valores para p1

p1.DefinirNome(teclado.readLine());

System.out.println("Informe o endereço: ");

p1.DefinirEnd(teclado.readLine());


System.out.println("Informe o telefone: ");

p1.DefinirTel(teclado.readLine());

Pessoa p2 = new Pessoa("Ana", "Rua das Flores, 100", "4532-2322"); //uma classe pode dar origem a vários objetos, cria o objeto (new) e usa o segundo construtor com os devidos parâmetros

/*Polimorfismo = uma classe pode ter vários métodos com o mesmo nome, porém, com parâmetros diferentes*/

System.out.println("Pessoa 1"); //Imprimindo os valores de p1

System.out.println("Nome: " + p1.ObterNome()); //está buscando os valores armazenados dentro do p1

System.out.println("Endereço: " + p1.ObterEnd());

System.out.println("Telefone: " + p1.ObterTel() + "\n");

System.out.println("Pessoa 2"); //Imprimindo os valores de p2

System.out.println("Nome: " + p2.ObterNome());

System.out.println("Endereço: " + p2.ObterEnd());

System.out.println("Telefone: " + p2.ObterTel());

}

}

Todos os créditos dessas aulas para o professor Claudio Luís V. Oliveira, que com muita paciência e persistência tem nos ensinado de uma forma agradável e eficiente.

Linguagem de Programação – Java – Aula 1

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




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 ;-)