Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Ila26 en 3 Diciembre 2013, 17:22 pm



Título: Duda con metodos con parametros quien me puede explicar?
Publicado por: Ila26 en 3 Diciembre 2013, 17:22 pm
Saludos,soy un novato en este lenguaje de java pero ay vamo,estoy aprendiendo poco a poco

la duda que tengo son con los metodos con parametros,aqui les dejo un programa y en forma de comentario les dejo al lado de la linea donde esta mi duda,espero que me puedan ayudar,aunque debe ser una boberia pero quiero entenderlo muy bien desde ya muchas gracias

(son 3 lineas donde estan mis dudas)


class Err {
 String msg; // error message
 int severity; // code indicating severity of error

 Err(String m, int s) { // Tengo entendido que esto es un contructor con parametros
 msg = m;                //String M y Int s se pasa a msg y a severety?
 severity = s;
 }
 }

 class ErrorInfo {
 String msgs[] = {
 "Output Error",
 "Input Error",
 "Disk Full",
 "Index Out-Of-Bounds"
 };
 int howbad[] = { 3, 3, 2, 4 };

 Err getErrorInfo(int i) {      //Este metodo GetErrorinfo(int i) a que esta   asociado
 if(i >=0 & i < msgs.length)
 return new Err(msgs, howbad);
 else
 return new Err("Invalid Error Code", 0);
 }
 }

 class ErrInfo {
 public static void main(String args[]) {
 ErrorInfo err = new ErrorInfo();
 Err e;

 e = err.getErrorInfo(3);
 System.out.println(e.msg + " severity: " + e.severity);

 e = err.getErrorInfo(5);
 System.out.println(e.msg + " severity: " + e.severity);
 }
 }


Título: Re: Duda con metodos con parametros quien me puede explicar?
Publicado por: ThinkByYourself en 4 Diciembre 2013, 00:57 am
Hola, Ila26.
Efectivamente:
Código
  1. Err(String m, int s) { // Tengo entendido que esto es un contructor con parametros
  2.  
...es un contructor (un método que genera un objeto/instancia de una clase, y que se invoca con el operador "new") con parámetros (o inputs, a lo mejor se entiende más fácil). El constructor, en Java, se caracteriza porque se le llama igual que la clase y porque no se especifica el tipo de dato de retorno (porque devuelve un objeto de la clase), como sí se haría en el resto de métodos (aunque sea "void", pero se tiene que poner).
También es correcto que:
Código
  1. msg = m;                //String M y Int s se pasa a msg y a severety?
  2. severity = s;
  3.  
...los parámetros del constructor son asignados a las propiedades de la clase "String msg" y "int severity".
En cuanto a la tercera pregunta, pues está asociado a la clase ErrorInfo, es un método de la clase ErrorInfo.
Espero haber sido de ayuda.