Foro de elhacker.net

Programación => Java => Mensaje iniciado por: ThePinkPanther en 14 Marzo 2014, 03:41 am



Título: Problema con objetos.
Publicado por: ThePinkPanther en 14 Marzo 2014, 03:41 am
Hola gente,surgio un problema mientras practicaba java..

suponiendo que tengo 2 clases , clase 1 y clase 2.

la clase 2 , es la que contiene el metodo main.

Si yo dentro de los atributos de la CLASE 2,defino un objeto de la clase1 ,supongamos clase1 objeto;

dentro del metodo main de la clase 2 no puedo realizar esto :

objeto=new clase1();

porque obtengo el siguiente error :

Citar
non-static variable escribir2 cannot be referenced from a static

pero si hago por ejemplo ..

this->iniciarobjeto();

y en mi metodo iniciarobjeto de la clase 2 :

public void iniciarobjeto(){
objeto=new clase1() ;
}

esto me deja...


----------

si defino el objeto ( clase1 objeto ) dentro del metodo main , y a continuación lo creo : objeto=new clase1() ; , me permite , pero no así , si lo defino dentro de los atributos de la clase, a que se debe ?..

esto quiere decir que desde un metodo estatico no puedo inicializar objetos de la clase o modificar cualquier atributo ? , no puedo utilizar this para hacerlo tampoco.

esto de java me tiene medio confundido , soy novato en el paradigma orientado a objetos,perdonen las molestias.




Título: Re: Problema con objetos.
Publicado por: gordo23 en 14 Marzo 2014, 06:10 am
Hola, según entiendo yo, tanto los métodos como las variables statics, pueden ser llamadas sin crear un objeto, por ejemplo, si tenemos una clase Vehiculo con una variable static:

Código:
public static int cantidadAutos = 0;

y un método static:

Código:
public static void getCantidadAutos() {
    return cantidadAutos;
}

podés llamar a esta variable y al método de esta forma:

llamada a la variable: Vehiculo.cantidadAutos
llamada al método: Vehiculo.getCantidadAutos()

Es decir, podés o no instanciar la clase vehiculo de la forma Vehiculo auto = new Vehiculo() para usar los miembros static de esta.

El error es debido a que si usas un miembro no-static, es decir, un miembro que existe a partir de instanciar la clase a la que pertenece, en un método static que puedes usarlo sin instanciar la clase, corres el riesgo de que al usar ese método, el miembro no-static no exista.

Uff, espero que puedas entenderlo, realmente no se explicar muy bien las cosas. En fin, si no entendiste intento explicarlo mejor, o por ahí alguien con mejor conocimiento del tema lo pueda hacer.

Saludos.-


Título: Re: Problema con objetos.
Publicado por: ThePinkPanther en 14 Marzo 2014, 14:34 pm
Muchas gracias ,ahora entiendo , un metodo estatico y una viriable estatica se pueden llamar sin instanciar la clase, y en caso de no instanciar la clase no existen mis atributos no-estaticos por lo que no puedo referir desde metodos estaticos atributos no-estaticos.

no es asi? :rolleyes:


Título: Re: Problema con objetos.
Publicado por: gordo23 en 14 Marzo 2014, 22:36 pm
:D Qué bueno que entendiste. Realmente creí que estaba explicandolo muy mal, jajaja. Bueno, suerte y seguí prácticando! ;)

Saludos.-


Título: Re: Problema con objetos.
Publicado por: ThePinkPanther en 15 Marzo 2014, 22:28 pm
Muchas gracias  ::) , problema solucionado , seguiré tu consejo , hasta la proxima.