Problema al pasar datos privados entre clases
Publicado por Nicolás Esteban (7 intervenciones) el 09/01/2020 00:11:01
Hola. Estoy tratando de aplicar lo aprendido en POO en un ejercicio bastante simple, pero tengo problemas al recibir los datos privados de una clase mediante un getter. Estas son las dos formas en que intenté resolverlo.
FORMA 1
CLASE MAIN
CLASE ENTRADA
CLASE OPERACIONES
FORMA 2
CLASE MAIN
CLASE ENTRADA
CLASE OPERACIONES
FORMA 1
CLASE MAIN
1
2
3
4
5
6
7
8
9
public class Main {
public static void main (String[] args){
Entrada entradaN = new Entrada();
entradaN.PedirDatos();
Operaciones operacionesN = new Operaciones();
operacionesN.MostrarResultado();
}
}
CLASE ENTRADA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.util.Scanner;
public class Entrada {
Scanner entrada = new Scanner(System.in);
private int tipoOperacion;
private int valor1;
private int valor2;
boolean error;
public void PedirDatos() {
do {
try {
System.out.println("Ingrese la operación que desea realizar");
System.out.println(" 1. Suma");
System.out.println(" 2. Resta");
System.out.println(" 3. Dividir");
System.out.println(" 4. Multiplicar");
tipoOperacion = Integer.parseInt(entrada.nextLine());
if (tipoOperacion < 1 && tipoOperacion > 4) {
System.out.println("Ingrese un número válido");
error = true;
}
else {
System.out.println("Ingrese el primer valor");
valor1 = Integer.parseInt(entrada.nextLine());
System.out.println("Ingrese el segundo valor");
valor2 = Integer.parseInt(entrada.nextLine());
error = false;
}
} catch (NumberFormatException e) {
System.out.println("Debe ingresar un número");
error = true;
}
} while (error == true);
}
public int getTipoOperacion() {
return tipoOperacion;
}
public int getValor1() {
return valor1;
}
public int getValor2() {
return valor2;
}
}
CLASE OPERACIONES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public class Operaciones {
Entrada entradaN = new Entrada();
private int valor1, valor2, resultado, tipoOperacion;
public Operaciones(){
this.valor1 = entradaN.getValor1();
this.valor2 = entradaN.getValor2();
this.tipoOperacion = entradaN.getTipoOperacion();
}
private void Sumar(){
resultado = valor1 + valor2;
}
private void Restar(){
resultado = valor1 - valor2;
}
private void Dividir(){
resultado = valor1 / valor2;
}
private void Multiplicar(){
resultado = valor1 * valor2;
}
public void MostrarResultado(){
switch (tipoOperacion){
case 1: Sumar();
System.out.println(resultado);
break;
case 2: Restar();
System.out.println(resultado);
break;
case 3: Dividir();
System.out.println(resultado);
break;
case 4: Multiplicar();
System.out.println(resultado);
break;
}
}
}
FORMA 2
CLASE MAIN
1
2
3
4
5
6
7
8
9
public class Main {
public static void main (String[] args){
Entrada entradaN = new Entrada();
entradaN.PedirDatos();
Operaciones operacionesN = new Operaciones(entradaN.getValor1(), entradaN.getValor2(), entradaN.getTipoOperacion());
operacionesN.MostrarResultado();
}
}
CLASE ENTRADA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.util.Scanner;
public class Entrada {
Scanner entrada = new Scanner(System.in);
private int tipoOperacion;
private int valor1;
private int valor2;
boolean error;
public void PedirDatos() {
do {
try {
System.out.println("Ingrese la operación que desea realizar");
System.out.println(" 1. Suma");
System.out.println(" 2. Resta");
System.out.println(" 3. Dividir");
System.out.println(" 4. Multiplicar");
tipoOperacion = Integer.parseInt(entrada.nextLine());
if (tipoOperacion < 1 && tipoOperacion > 4) {
System.out.println("Ingrese un número válido");
error = true;
}
else {
System.out.println("Ingrese el primer valor");
valor1 = Integer.parseInt(entrada.nextLine());
System.out.println("Ingrese el segundo valor");
valor2 = Integer.parseInt(entrada.nextLine());
error = false;
}
} catch (NumberFormatException e) {
System.out.println("Debe ingresar un número");
error = true;
}
} while (error == true);
}
public int getTipoOperacion() {
return tipoOperacion;
}
public int getValor1() {
return valor1;
}
public int getValor2() {
return valor2;
}
}
CLASE OPERACIONES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class Operaciones {
private int valor1, valor2, resultado, tipoOperacion;
public Operaciones(int valor1, int valor2, int tipoOperacion){
this.valor1 = valor1;
this.valor2 = valor2;
this.tipoOperacion = tipoOperacion;
}
private void Sumar(){
resultado = valor1 + valor2;
}
private void Restar(){
resultado = valor1 - valor2;
}
private void Dividir(){
resultado = valor1 / valor2;
}
private void Multiplicar(){
resultado = valor1 * valor2;
}
public void MostrarResultado(){
switch (tipoOperacion){
case 1: Sumar();
System.out.println(resultado);
break;
case 2: Restar();
System.out.println(resultado);
break;
case 3: Dividir();
System.out.println(resultado);
break;
case 4: Multiplicar();
System.out.println(resultado);
break;
}
}
}
Valora esta pregunta


0