Foros del Web » Programación para mayores de 30 ;) » Java »

(Principiante) Cómo declarar objetos de una clase?

Estas en el tema de (Principiante) Cómo declarar objetos de una clase? en el foro de Java en Foros del Web. Tengo este problema, básicamente soy nuevo en java... Necesito hacer esto: main: Mensaje a usuario para ingresar valor X. Imprimir valores desde los objetos. objeto1: ...
  #1 (permalink)  
Antiguo 06/05/2014, 17:52
 
Fecha de Ingreso: agosto-2011
Mensajes: 33
Antigüedad: 13 años, 3 meses
Puntos: 0
(Principiante) Cómo declarar objetos de una clase?

Tengo este problema, básicamente soy nuevo en java... Necesito hacer esto:

main:
Mensaje a usuario para ingresar valor X.
Imprimir valores desde los objetos.

objeto1:
Usar el valor de X para calcular perimetro

objeto2:
Usar el valor de X para calcular area

Tengo esto (no seguí con el objeto2 porque sabiendo como usar los métodos del 1ero ya me manejo):
PD: Estoy usando tecladoIn para leer los valores de X ingresados por el usuario
Código:
public class TrainguloEquilatero {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // Recibe lado de un triangulo y devuelve perimetro y área
        int lado = 0;
        System.out.println("Ingrese el valor del lado:");
        lado = TecladoIn.readLineInt();
        perimetro();

    }
    
    public static int perimetro(int lado) {
        // Calcula el perimetro
        int perimetro;
        perimetro = lado * 3;
        System.out.println("El perimetro es: " +perimetro);
        return perimetro;
    }
    
}
Estoy seguro de que el error es bastante tonto, pero simplemente no lo encuentro. Está en "perimetro();".

Si alguien me pudiera ayudar sería de bastante ayuda. Gracias!
  #2 (permalink)  
Antiguo 06/05/2014, 22:29
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: (Principiante) Cómo declarar objetos de una clase?

Has declarado perimetro(int lado), es decir, con un parámetro lado. Cuando lo llamas permimetro() no estás pasandole ningún parámetro, por lo que da error. Tendrías que llamarlo pasando el lado como parametero, así

lado = TecladoIn.readLineInt();
perimetro(lado);

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 08/05/2014, 20:06
 
Fecha de Ingreso: agosto-2011
Mensajes: 33
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: (Principiante) Cómo declarar objetos de una clase?

Gracias, ese era el problema principal.. Ahora tengo un error más, agregué dos objetos más, uno que calcule pitágoras y otro que calcule el area. Puedo ejecutralo sin problemas, pero no puedo leer la variable que retorna pitágoras desde el objeto del área:

Código:
    public static void main(String[] args) {
        // Recibe lado de un triangulo y devuelve perimetro y área
        int lado, altura;
        System.out.println("Ingrese el valor del lado:");
        lado = TecladoIn.readLineInt();
        System.out.println("El perimetro del triángulo es: " +perimEq(lado));
        altura = (int) pitagoras(lado); // !! Método para hacer que areaEq() reconozca "altura"
        System.out.println("La altura del triángulo es: " +altura);
        System.out.println("El área del triángulo es: " +areaEq(lado, altura));
    }
    
    public static int perimEq(int lado) {
        // Calcula el perimetro
        int perimetro;
        perimetro = lado * 3;
        return perimetro;
    }
    
    public static double pitagoras(int lado) {
        //Calcula la altura con pitágoras lado^2 - (lado/2)^2
        double cuadrado, raiz, altura;
        cuadrado = Math.pow(lado, 2) - Math.pow(lado / 2, 2); // lado^2 - (lado/2)^2
        raiz = Math.sqrt(cuadrado); // Calcula la raiz
        altura = raiz; // Conversión de variables
        return (int) altura; // Conversión a entero !! Variable que no reconoce areaEq
    }
    
    public static int areaEq(int lado, int altura) {
        // Calcula el área
        int area;
        area = lado * altura;
        return area;
    }
}
El error acá es que por alguna razón areaEq no me reconoce a altura desde pitágoras, tengo que declararla en el main para que ahí sí sea reconocida por areaEq(lado, altura), de otra forma simplemente tira error. ¿Será por el hecho de haberla pasado a entero?
  #4 (permalink)  
Antiguo 08/05/2014, 21:22
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: (Principiante) Cómo declarar objetos de una clase?

¿Qué quiere decir "no me reconoce a altura"? . Dices que puedes ejecutarlo sin problemas, así que entiendo que compila correctamente. ¿No te da el resultado que esperas?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 09/05/2014, 15:20
 
Fecha de Ingreso: agosto-2011
Mensajes: 33
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: (Principiante) Cómo declarar objetos de una clase?

Me refiero a que si saco: "altura = (int) pitagoras(lado);" del main me tira un error en el último objeto areaEq. Ahí es cuando no reconoce "altura" desde pitágoras y tira error.
  #6 (permalink)  
Antiguo 09/05/2014, 16:00
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: (Principiante) Cómo declarar objetos de una clase?

areaEq no es un objeto, es un método.

Si borras la línea "altura = (int) pitagoras(lado)", la variable altura sigue declarada más arriba, en "int lado, altura;", pero sin valor (con valor 0 por defecto), por lo que la llamada a areaEq no dará error, sino simplemente devolverá 0.

Si te da un error, seguramente estás haciendo algo más que borrar la línea "altura = (int) pitagoras(lado)". Si borras la declaración de la variable, evidentemente, no puedes usarla y dará error la llamada areaEq. ¿Por qué quieres borrarla?

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: declarar, objeto, objetos, string, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:29.