Bom pessoal estou aprendendo java. Já programei em Pascal, Delphi e C; Porém nada muito profundo e avançado.
Agora estou bastante interessado no Java, basicamente porque até onde eu compreendi é uma linguagem divertida de programar, muito versátil e poderosa, e cada vez mais em uso no mercado de trabalho. Pois bem. Já entendi como funcionam basicamente a orientação a objeto, isso eu até ja sabia a algum tempo. Após entender alguns conceitos básicos do java, fiz o seguinte software. Estou utilizando J2SE 5.0, com netbeans 5.0 BlueJ edition.
// Codigo fonte:
import javax.swing.JOptionPane;
public class Calculadora {
private int resultado;
private int n1,n2,menu;
public void MostraTelaInicial(){
JOptionPane.showMessageDialog(null,
" Bem vindo a DCalc!\n Bons Cálculos!\n v2.0!", "DCalc",
JOptionPane.INFORMATION_MESSAGE);
}
public int Menu(){
String option;
int opcao;
option = JOptionPane.showInputDialog(null, "Opções: \n 1 - Soma \n " +
"2 - Subtração \n 3 - Divisão \n 4 - Multiplicação \n " +
"Digite a Opção desejada: ", "DCalc",
JOptionPane.QUESTION_MESSAGE);
opcao = Integer.parseInt(option);
return opcao;
}
public int EntradaDeNumeros(){
String xs;
int x;
xs = JOptionPane.showInputDialog(null, "Digite um Numero: ", "DCalc",
JOptionPane.INFORMATION_MESSAGE);
x = Integer.parseInt(xs);
return x;
}
public int SomaOsNumeros(int num1, int num2){
int resultado;
resultado = num1+num2;
return resultado;
}
public int DivideOsNumeros(int num1, int num2){
int resultado;
resultado = num1/num2;
return resultado;
}
public int MultiplicaOsNumeros(int num1, int num2){
int resultado;
resultado = num1*num2;
return resultado;
}
public int SubtraiOsNumeros(int num1, int num2){
int resultado;
resultado = num1-num2;
return resultado;
}
public void SetN1(int aux){
n1 = aux;
}
public void SetResultado(int aux){
resultado = aux;
}
public int GetResultado(){
return resultado;
}
public void SetN2(int aux){
n2 = aux;
}
public static void main(String args[]){
Calculadora DCalc = new Calculadora();
DCalc.MostraTelaInicial();
DCalc.menu = DCalc.Menu();
DCalc.SetN1( DCalc.EntradaDeNumeros() );
DCalc.SetN2( DCalc.EntradaDeNumeros() );
if (DCalc.menu == 1){
DCalc.SetResultado(DCalc.SomaOsNumeros(DCalc.n1,DCalc.n2));
}else
if (DCalc.menu == 2)
{
DCalc.SetResultado(DCalc.SubtraiOsNumeros(DCalc.n1,DCalc.n2));
}else
if (DCalc.menu == 3)
{
DCalc.SetResultado(DCalc.DivideOsNumeros(DCalc.n1,DCalc.n2));
}else
DCalc.SetResultado(DCalc.MultiplicaOsNumeros(DCalc.n1,DCalc.n2));
JOptionPane.showMessageDialog(null, "O resultado é: "+ DCalc.GetResultado() +"!","DCalc!",
JOptionPane.PLAIN_MESSAGE);
}
}
Até ai ok; Compila corretamente e funciona certinho. No entanto as dúvidas são:
1 - Se eu trabalhasse com 10 atributos teria de setar metodos set e get para todos eles? Não há maneira de setar um get ou set para ser padrão e mudar o atributo que ele irá mudar ou retornar?
2 - Um método pode retornar mais do que um valor? Ou sempre irei setar um método para cada atributo… como fiz com n1 ou n2? Digo isso porque eu fiz métodos idênticos para n1 e n2… e talvez pudesse fazer apenas um método que retornasse os dois… e economizaria código ^^
Por enquanto é só isso! Muito obrigado. Também agradeço críticas e melhorias ao código fonte principalmente no que diz respeito as atribuições public e private que não sei se setei corretamente para os atributos e métodos da classe, assim como a maneira que programei no geral.
[]´s
Douglas Vargas