Autor Tema: invalid method declaration; return type required Java error (CU00652B)  (Leído 8775 veces)

macarena2405

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 36
    • Ver Perfil
Hola cargando el código copiado por mi jaja

 
Código: [Seleccionar]
public class Depósito{
    private float diametro;
    private float altura;
    private String idDeposito;
   
   
    // constructor sin parametros auxiliar
     public Deposito () { //Lo que hace es llamar al constructor con parámetros pasándole valores vacíos
        this(0,0,"");            } //Cierre del constructor
//lo que hace es llamar al constructor pasandole valores vacios
    //constructor de la clase que pide los parametros necesarios
   
   
    public Deposito(float valor_diametro, float valor_altura, String valor_idDeposito){
        if (valor_diametro>0 && valor_altura>0){
            diametro=valor_diametro;
            altura=valor_altura;
            idDeposito=valot_idDeposito;}
            else {
            diametro=10;
            altura=5;
            idDeposito="000";
            System.out.println("Creado deposito con valores por defecto diametro 10 metros altura 5 metros ")}}
            public void setValoresDeposito(String valor_idDeposito, float valor_diametro,float valor_altura){
                idDeposito=valor_idDeposito;
                diametro=valor_diametro;
                altura=valor_altura;
                if (idDeposito!="" && valor_diametro>0 && valor_altura>0)
                {}
                else {System.out.printl("Valores no admisibles. No se ha establecidos valores para el deposito")
                    idDeposito="";
                    diametro=0;
                    altura=0;
                }}
                public float getDiametro() {return diametro;}
                public float getAltura (){return altura; }
                public String getDeposito(){return idDeposito;}
                public float valorCapacidad(){
                    float capacidad;
                    float pi=3.1416f;
                    caoacidad=pi/(diametro/2)*(diametro/2)*altura;
                   
                    return capacidad;}

Me da el error invalid method declaration; return type required;  copié el codigo del tutorial y los dos me señalan el mismo error en el mismo lugar, por ende no me queda claro que significa el this lo que hace es llamar al contructor con parametros y pasandole parámetros vacíos??

 
Código: [Seleccionar]
public Deposito () { //Lo que hace es llamar al constructor con parámetros pasándole valores vacíos
        this(0,0,"");            } //Cierre del constructor
//lo que hace es llamar al constructor pasandole valores vacios
    //constructor de la clase que pide los parametros necesarios
« Última modificación: 21 de Mayo 2015, 08:44 por Alex Rodríguez »

RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
Re:Ejemplo de código Java básico. La palabra clave this (CU00652B)
« Respuesta #1 en: 20 de Mayo 2015, 19:46 »
Hola Macarena:

El error que señales se debe a que has declarado el nombre de la cláse como Depósito, y el nombre del Constructor como Deposito.
Quítale el acento ortográfico al nombre de clase. En java no utilices ni acentos ortográficos, ni la letra "ñ" (en su lugar se utiliza 'nn").

Además de eso tienes que corregir el código ya que hay varias líneas que les falta el ";" al final de las mismas. También has omitido un "}" que cierre el while. También tienes dos atributos con errores de tipeado de sus nombres cuando los vuelves a usar. Y por último escribiste printl cuando en realidad debe ser println.

Te recomiendo que revises el código nuevamente teniendo en cuenta estas observaciones. Saludos!

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Re:Ejemplo de código Java básico. La palabra clave this (CU00652B)
« Respuesta #2 en: 20 de Mayo 2015, 21:52 »
Solo para llenar tu pregunta:

Citar
por ende no me queda claro que significa el this lo que hace es llamar al contructor con parametros y pasandole parámetros vacíos??

En el ejemplo que se da en el curso, así es como dices! pero que tal si te digo que el this tiene mas usos?

Dando un ejemplo sencillo para que comprendas para que sirve el this y su importancia:
   
Citar
private float diametro;
    private float altura;
    private String idDeposito;
 
    public Deposito(float diametro, float altura, String idDeposito){
    this.diametro = diametro;
    this.altura = altura;
    this.idDeposito = idDeposito;}

¿Qué hizo el this aqui?
Lo que hizo el this fue decirle a java que la variable diametro, altura e idDeposito eran variables de clase y no parametros del constructor.

Como vez, declare los nombres de las variables del parametro del constructor exactamente igual que las variables de clase. Con this le señalo a java que estas son variables de clase. Analiza este trozo de código... sin this, que crees que pasaría?... a java le resultaría difícil diferenciar que es una variable de clase y que es un parámetro del constructor.

this tiene mas usos como por ejemplo... el siguiente que veras a continuación (ignora todo el código que escribí aquí, es harina de otro costal, solo quiero que te fijes en el this):

Citar
package ConceptosBasicos;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;

public class Bola extends GameObject{
    private Handler handler;
    public Bola(int x, int y, ID_Objeto id, Handler handler) {
        super(x, y, id);
        this.handler = handler;
        velY = 2;
        velX = 2;
    }

    @Override
    public void tick() {
        if(x + velX < 0)
            velX = 4;
        if(x + velX > 400 - 30)
            velX = -4;
        if(y + velY < 0)
            velY = 4;
        x += velX;
        y += velY;
        if(y >= 400){
            handler.removerObjeto(this);
        }
        colision();       
    }

El primer this (el que se encuentra en el constructor) realizo la misma función que explique mas arriba, le señalo a java que esta variable handler (que en este caso, es un objeto de tipo LinkedList, cosa que veras mas adelante en este curso) es de clase y no un parámetro del constructor.

En el caso este que vez a continuación:
handler.removerObjeto(this);

Explicando brevemente, la clase Bola dibuja una bola (o un objeto) en la pantalla rebotando en los bordes, el método tick se encarga de mover la bola por la pantalla. Si la posición de la coordenada Y de la bola es mayor a 400 (o si la bolita se sale de la pantalla por la parte inferior), se removerá la bola del juego para ahorrar memoria en la maquina. Aqui entra en juego esta linea "handler.removerObjeto(this);"

¿Y que se supone que hace el this aqui?
Con eso, le estoy diciendo a java por ejemplo... "Si la bolita se sale por debajo de la pantalla, quiero que elimines esta bolita".

Conclusiones del uso del this:

El this en java, se puede usa para indicar que vas a utilizar ya sea, una variable, un método o un objeto de clase.

Me parece que ya has pasado o estas a punto de ver el this en el curso (ya no recuerdo la verdad,  ??? ), si no lo entendiste o lo asimilasme mas o menos, no te preocupes! te aseguro que cuando termines este curso lo vas a comprender perfectamente :)
"Luchar por tus sueños y cumplirlos... eso es vivir.."

macarena2405

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 36
    • Ver Perfil
Gracias por las correcciones y las lecciones :) ya me salió y voy entendiendo el concepto del this!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".