hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
14 de Octubre de 2008, 06:33:26
Noticias: La 1era E-Zine de CPH ya fue liberada, encuentrala
Para ver este enlace Registrate o Inicia Sesion
> aquí

+  Foros pOrtal Hacker
|-+  Programacion
| |-+  JAVA (Moderador: kamui23)
| | |-+  [DUDA]Clases
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: [DUDA]Clases  (Leído 495 veces)
CHR0N05
Colaborador
****
Desconectado Desconectado

Mensajes: 1,582


Chronos es Dios de Dioses!!...


Ver Perfil WWW
« : 26 de Mayo de 2008, 09:53:09 »

Hola que tal Huh

Bueno, os dije, estaré molestando acá mucho tiempo!!... xD...

Al grano, Estoy construyendo mis primeras Clases... al parecer la más común es la de crear un punto (ya creado), modificar ese punto(creado), realizar una recta (creado), calcular muchas cosas en esa recta (creado), hacer un cilindro (aquí estoy Tongue)

Haciendo el esquema:

Clase Punto
Clase Recta
Clase Cilindro

La clase punto:

Código:
import java.lang.Math;

public class punto
{
    // instance variables - replace the example below with your own
    public double x;
    public double y;
    public double xx;
    private int cat;

    public punto()
    {
        // initialise instance variables
        x = 0;
        y = 5;
    }

    public punto (int a, int b)
    {
        x = a;
        y = b;
    }

    public double obtenerx()
    {
        return x;
    }

    public double obtenery()
    {
        return y;
    }

    public boolean otropunto(punto p)
    {
        if (this.x == p.obtenerx() && this.y == p.obtenery())
            return true;
        else
            return false;
    }

    public boolean correspondex(int x, int y)
    {
        if (this.x == x && this.y == y)
            return true;
        else
            return false;
    }

    public double distancia (double x2, double y2)
    {
        /**Hipotenusa
         * Hipotenusa = (raiz Cuadrada
         *                  (cateto(al cuadrado) + cateto (al cuadrado))
         */
        xx = (double)(Math.round
                    (Math.sqrt((Math.pow(x2-x,2))+(Math.pow(y2-y,2)))));
        return xx;
    }

    public double Perimetro (int x2, int y2)
    {
       return ((Math.sqrt((Math.pow(x2-x,2))+(Math.pow(y2-y,2))))
                    +(Math.abs(x2-x))+(Math.abs(y2-y)));
    }

    public double Area (int x2, int y2)
    {
       return (((Math.abs(x2-x))*(Math.abs(y2-y)))/2);
    }
}

La clase Recta

Código:
import java.lang.Math;
import java.io.*;

public class recta
{
    private punto p1;
    private punto p2;
    private int x1;
    private int x2;
    private int y1;
    private int y2;
    private double m;
    private double n;
    private double z;

    public recta(punto p1, punto p2)
    {
        this.p1 = p1;
        this.p2 = p2;
    }

    public double getPendiente()
    {
        double x1= p1.obtenerx();
        double y1= p1.obtenery();
        double x2= p2.obtenerx();
        double y2= p2.obtenery();
        m = ((double)(y2-y1)/(double)(x2-x1));
        return m;
    }

    public double angulo ()
    {
        return Math.toDegrees((Math.atan((Math.abs(p2.y-p1.y)/(Math.abs(p2.x-p1.x))))));
    }

    public double intersecy()
    {
        double x1= p1.obtenerx();
        double y1= p1.obtenery();
        n = (getPendiente() * x1) - y1;
        this.n = n * -1;
        return n;
    }

    public double intersecx()
    {
        z = intersecy() / getPendiente();
        this.z = z * -1;
        return z;
    }

    public void dibujar()
    {
        BufferedReader br = new BufferedReader (new InputStreamReader (System.in));
        System.out.print ("y " + " = " + getPendiente() + " x " + " + " + intersecy());
    }
}

La Clase Cilindro:

Código:
import java.lang.Math;

public class cilindro
{
    // instance variables - replace the example below with your own
    private recta r1;
    double perimetro;
    double radio;

    /**
     * Constructor for objects of class cilindro
     */
    public cilindro(recta r1)
    {
        this.r1 = r1;
       // this.x = x;
       // this.y = y;
    }
        /**Aqui calculamos
         * todo lo que nos pidan
         * Formulas circunsferencia
         *
         * Diametro = PI * Radio
         * Perimetro = PI * Diametro ==> PI * radio * 2
         * Area = (PI * radio) * radio ==> PI *radio^2
         */
    public double calc()
    {
        radio = punto.distancia()/2;
        perimetro = radio * Math.PI * 2;
        return perimetro();
    }
}

Bueno, ya ven las tres clases... Ahora el problema es en la case Cilindro.. especificament e en la línea:

Código:
radio = punto.distancia()/2;

Si se dan cuenta en el Code nunca llamé a un método desde otra clase, por lo consiguiente pensé que era El nombre de la clase + método... pero parece que estoy errado... ya que me sale un error:

Código:
distancia(double,double) in punto cannot be applied to ()

concluyo que el error es en la invocación del método distancia de la clase punto, pero lo que no entiendo es el por qué del error...

Esa es mi duda... alguien puede ayudarme Huh

Saludos
En línea

SOLO LOS QUE DEJAN DE INTENTAR, FRACASARÁN...

Para ver este enlace Registrate o Inicia Sesion


Para ver este enlace Registrate o Inicia Sesion
Torneo Matemático Fases 2 + UPDATE


Para ver este enlace Registrate o Inicia Sesion
Convocatoria E-Zine HxS #1
kamui23
Moderador
*****
Desconectado Desconectado

Mensajes: 771



Ver Perfil
« Respuesta #1 : 26 de Mayo de 2008, 04:05:45 »

Distancia es un método con dos parámetros en la clase punto.

Saludos.
En línea

Busco una meta: conseguir lo que nadie ha conseguido. Y hacerlo en la mitad de tiempo.


No respondo preguntas por mensaje privado. para dudas, escribid en el foro, por favor.
CHR0N05
Colaborador
****
Desconectado Desconectado

Mensajes: 1,582


Chronos es Dios de Dioses!!...


Ver Perfil WWW
« Respuesta #2 : 26 de Mayo de 2008, 07:11:08 »

Distancia es un método con dos parámetros en la clase punto.

Saludos.

Con ese tipo de respuestas, alientas a todos que sigan con JAVA ¬¬... la respuesta tiene que ser explicativa y demostrativa.. .

En la clase Cilindro, debi haber realizado un método constructor:

Código:
punto p = new punto;

Con respecto al error, si es porque en el método distancia hay dos parámetros, y en este método llamado calc, no existen los parámetros, por ello el error...

se podrían hacer dos cosas.

En el clase punto hacer un método constructor que digiese algo similar a esto:

Código:
    public punto()
    {
        x = 0;
        y = 5;
        xx = xy;
    }

Hacer un nuevo método que imprima xy, que lo podríamos llamar distanciac()

Código:
public double distanciac()
{
return xy;
}

de esa forma modificar la clase cilindro, del método calc, dejando similar a esto:

Código:
    public double calc()
    {
        radio = p.distanciac()/2;
        perimetro = radio * Math.PI * 2;
        return perimetro();
    }

La segunda opción, me imagino que sería la de dar valores hacia punto.distanci a()

Código:
    public double calc()
    {
        radio = punto.distancia(7,45)/2;
        perimetro = radio * Math.PI * 2;
        return perimetro();
    }

Y de ese modo, el programa podría realizar los cálculos pedidos.

Nota: cada vez que llamemos a una clase para ser usada, recomendación realizar un método constructor, que llame a dicha clase.

Saludos
En línea

SOLO LOS QUE DEJAN DE INTENTAR, FRACASARÁN...

Para ver este enlace Registrate o Inicia Sesion


Para ver este enlace Registrate o Inicia Sesion
Torneo Matemático Fases 2 + UPDATE


Para ver este enlace Registrate o Inicia Sesion
Convocatoria E-Zine HxS #1
kamui23
Moderador
*****
Desconectado Desconectado

Mensajes: 771



Ver Perfil
« Respuesta #3 : 27 de Mayo de 2008, 01:07:00 »

Hombre, no creo que hiciese falta tanto. Simplemente en vez de ponerle 2 parámetros en la línea que falla, lo ha puesto sin parámetros, de ahí el error.

De todas formas, perdón, intentaré ser mas específico la próxima vez.
En línea

Busco una meta: conseguir lo que nadie ha conseguido. Y hacerlo en la mitad de tiempo.


No respondo preguntas por mensaje privado. para dudas, escribid en el foro, por favor.
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online