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

[SOLUCIONADO] duda metodos de instancia

Estas en el tema de duda metodos de instancia en el foro de Java en Foros del Web. en el libro que me acabo de comprar, dice asi "static es una palabra clave que le dice al compilador que main se refiere a ...
  #1 (permalink)  
Antiguo 22/03/2013, 22:42
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 9 meses
Puntos: 3
duda metodos de instancia

en el libro que me acabo de comprar, dice asi "static es una palabra clave que le dice al compilador que main se refiere a la clase Holamundoapp y no a ninguna instancia de la clase. de esta forma, si alguien intenta hacer otra instancia de la clase, el metodo main no se ejecutaria" obviamente hablando de main y del prefijo static, y yo esto lo sabia pero la ultima frase me choco un poco XD, quiere decir que cuando hago una instancia de una clase se ejecutan todos los metodos de instancia? yo no creo... que quiso decir el libro? :P
fuzzy chuidi? ayuda plis? XD
  #2 (permalink)  
Antiguo 23/03/2013, 05:16
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años, 7 meses
Puntos: 155
Respuesta: duda metodos de instancia

...cuando usas static en main() le estas diciendo al compilador que dicho método es solamente un método de clase, no un método de instancia...es decir, este método existirá en el ámbito de la clase, no del objeto y que solamente puedes acceder a el a traves de la clase, no del objeto...por eso dice " si alguien intenta hacer otra instancia de la clase, el metodo main no se ejecutaria", es decir, si tu creas una instancia de una clase, dicho método, no esta instanciado, no puedes acceder a el desde la nueva instancia, solamente desde la clase...

...si tratas de acceder a main desde una instancia de ta error..

Código JAVA:
Ver original
  1. EjemploClase x = new EjemploClase ();
  2. x.main(new String[]{"a", "b", "c"}); // TE DA ERROR


...en cambio si trtas de acceder desde la clase, funciona perfectamente...

Código JAVA:
Ver original
  1. EjemploClase.main(new String[]{"a", "b", "c"});
  #3 (permalink)  
Antiguo 23/03/2013, 05:17
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: duda metodos de instancia

Hola:

La frase que has puesto no dice que se ejecuten todos los métodos, dice que al hacer new NO se ejecuta el main por ser static.

Aunque es cierta, no me parece que sea una frase afortunada. Cuando haces una instancia de una clase, nunca se ejecuta ningún método de ella, sea static o no, salvo el constructor que uses para el new y los métodos a los que llame el constructor.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 23/03/2013, 05:24
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 2 meses
Puntos: 188
Respuesta: duda metodos de instancia

El método main es el que se ejecuta por defecto en una aplicación java. En runtime se busca automáticamente ese metodo para arrancar la aplicación. EL uso de static indica que main no depende de una instancia de la clase que lo contenga, sino de la propia clase en sí.

Joer me demoro 2 minutos y ya han respondido 2 xD.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #5 (permalink)  
Antiguo 23/03/2013, 09:06
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: duda metodos de instancia

Cita:
Iniciado por chuidiang Ver Mensaje
Aunque es cierta, no me parece que sea una frase afortunada
yo pense lo mismo que no era una frase afortunada, xq ami me confundio XD, la voy a tachar con lapiz...

gracias a los 3. :D

Etiquetas: clase, instancia, metodo, metodos
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 04:59.