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

Pregunta métodos

Estas en el tema de Pregunta métodos en el foro de Java en Foros del Web. Tengo en el main la declaración de un método que esta llamando a el método , pero me dice que lo cree, pero yo ya ...
  #1 (permalink)  
Antiguo 17/04/2006, 10:48
estebing
Invitado
 
Mensajes: n/a
Puntos:
Pregunta métodos

Tengo en el main la declaración de un método que esta llamando a el método , pero me dice que lo cree, pero yo ya lo hice, no entiendo.

import java.lang.*;

public class UsoClaseMath {
public UsoClaseMath()
{
System.out.println("El valor de PI es:"+Math.PI);

}
public static void main(String[] args) {
UsoClaseMath();//warning¿¿¿''

}
}
  #2 (permalink)  
Antiguo 17/04/2006, 14:10
Avatar de Miguel_e  
Fecha de Ingreso: junio-2004
Ubicación: Cuba
Mensajes: 108
Antigüedad: 19 años, 11 meses
Puntos: 0
El metodo que definiste dentro de tu clase es un constructor(en java los metodos que se llaman igual que la clase son contructores), los constructores son los metodos que inicializan al objeto como tal, o sea, este metodo que tienen todas las objetos se llama solamente cuando se va a crear un objeto, por eso te da el warning cuando lo intentas llamar desde el metodo main, como sugerencia te digo que le cambies el nombre al metodo para que veas que todo funciona bien, por ejemplo:
Código:
import java.lang.*;

public class UsoClaseMath {
public static void showPI()
{
System.out.println("El valor de PI es:"+Math.PI);

}
public static void main(String[] args) {
  showPI();//ok;

}
}
  #3 (permalink)  
Antiguo 17/04/2006, 15:35
 
Fecha de Ingreso: marzo-2006
Mensajes: 61
Antigüedad: 18 años, 1 mes
Puntos: 0
Ohhh tambien tienes que colocarlo asi:

public class Metodo()
{

public void Metodo()
{
Sytem.out.println("Hola");
}


public void static main(String [] args)
{
new Metodo();
}
}
  #4 (permalink)  
Antiguo 17/04/2006, 19:04
Avatar de Miguel_e  
Fecha de Ingreso: junio-2004
Ubicación: Cuba
Mensajes: 108
Antigüedad: 19 años, 11 meses
Puntos: 0
Ok, pero seria asi por que es un constructor, si le dejas el void te da un warning
Código:
public class Metodo()
{

public void Metodo()
{
Sytem.out.println("Hola");
}

public void static main(String [] args)
{
new Metodo();
}
}
una pregunta, esa sentencia( new Metodo() ) que hace exactamente???, crea una nuevo objeto?????, porque new es para crear una nueva instancia de una clase y si lo hace asi a quien se le asigna el valor ese?????
una pequeña duda que tengo

salu2
miguel_e
  #5 (permalink)  
Antiguo 18/04/2006, 07:12
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Cita:
Iniciado por Miguel_e
Ok, pero seria asi por que es un constructor, si le dejas el void te da un warning
Si le dejas el void entonces no es un constructor y por eso te da el aviso. Para decirte... "¿Realmente quieres un metodo con ese nombre y que parece un constructor?"

Cita:
Iniciado por Miguel_e
una pregunta, esa sentencia( new Metodo() ) que hace exactamente???, crea una nuevo objeto?????, porque new es para crear una nueva instancia de una clase y si lo hace asi a quien se le asigna el valor ese?????
una pequeña duda que tengo

salu2
miguel_e
No se le asigna a nadie, asi que el Garbage Collector lo eliminara en cuanto pueda. No es algo muy lógico, vamos ;).
  #6 (permalink)  
Antiguo 18/04/2006, 11:11
estebing
Invitado
 
Mensajes: n/a
Puntos:
pregunta

No entendí el public static void showPI(), vos decis que para poder invocar un método (que no sea el constructor) desde el main tiene que ser definido como estático y que devuelva un tipo, ¿todos los métodos que yo cree deben ser estáticos?, los métodos ¿se pueden definir arriba o abajo del main() en este caso?

import java.lang.*;

public class UsoClaseMath {
public static void showPI()//!!!!!!!
{
System.out.println("El valor de PI es:"+Math.PI);

}
public static void main(String[] args) {
showPI();//ok;

}
}
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 20:06.