Foro de elhacker.net

Programación => Java => Mensaje iniciado por: alekula en 11 Octubre 2019, 03:38 am



Título: Parametros Clases
Publicado por: alekula en 11 Octubre 2019, 03:38 am
ola. Hice gran parte de este curso pero no logro hacer algo que debe ser muy sencillo. Quiero mandar en una llamada a una clase dos parametros y que la clase me devuelva los valores.
Por ejemplo: una clase que me de los valores ancho y largo de la  configuracion de la pantalla, osea la que devuelve los valores sea la clase.  Si la llamada a la clase es nomclase(a,b) quiero que a y b tenga el valore que me devuelve la clase en el metodo principal. Temo que nadie me entienda. 
Osea que si lo llamo a la clase con a,b esta me lo devuelva con valores y no yo mandar a  y b como valores.
En este ejemplo lo hice con return pero si el getter me devolveria dos valores en el return lo hubiera resulto mas facil.


package desarrollointegral;
import java.awt.Toolkit;
public class principal {
   public static void main(String[] args) {
      dimensionespantalla dpant = new dimensionespantalla();
        double ancho=0,largo=0;
      
      ancho=dpant.valores(ancho,largo);
      largo=dpant.largo(ancho,largo);
      
      System.out.println(ancho);      
      System.out.println(largo);
   }
}


Título: Re: Parametros Clases
Publicado por: K-YreX en 11 Octubre 2019, 23:56 pm
No sé si a lo que te estás intentando referir es al paso de parámetros por referencia... Es decir, pasar dos parámetros a un método y que el propio método modifique los valores y esos valores se queden modificados una vez haya terminado el método.
En Java hasta donde yo sé no existe el paso por referencia (no como en C/C++ que sí existe) para tipos de datos primitivos, sin embargo, si creas una clase y lo que pasas es un objeto, el objeto está referenciado y eso te permitiría modificar sus atributos. (ACLARO: el objeto está referenciado, no se pasa por referencia, se sigue pasando por valor pero se pasa por valor su referencia).

Si por ejemplo en tu caso tienes una clase <dimensionespantalla> que contiene dos atributos (o más): <largo> y <ancho>; y quieres guardar estos atributos en otras variables lo que te recomendaría sería usar dos métodos <getter>: <getLargo()> y <getAncho()> y que cada uno te devuelva un atributo de la instancia.

PD: Los códigos ponlos entre etiquetas de Código GeSHi y selecciona como lenguaje: Java para facilitar la lectura a los demás y evitar problemas de formato...


Título: Re: Parametros Clases
Publicado por: Serapis en 12 Octubre 2019, 21:40 pm
Las funciones solo devuelven por función un solo parámetro...

...por ejemplo:
Código:
int x = funcion suma(a,b)  
buleano x = funcion EsSabado(fecha)

Eso no impide que no puedna recibirse más datos, tan solo que deben estar 'apuntados' en la misma dirección de vuelta.

El modo más sencillo es el array:
Código:
Array bytes x()= funcion Listaalumnos(aula)

Y también la estructura/record/type:
Código:
Estructura MiFecha
   byte Dia
   byte Mes
   int Año
fin estructura

mifecha dt = Funcion FechaNacimientoPersonaje("Napoleón")

impimir con dt .dia .mes .año

...y también puedes devolver una subclase con contenga los atributos que precisas... (precalclados, recién calculados o a calcular en el momento preciso).
Código:
Clase Pantalla
   ...

   clase Medidas
        int x = Propiedad Ancho
            devolver System.Screen.GetWidth  //hipotético acceso...
        fin propiedad

        int x = Propiedad Alto
            devolver System.Screen.GetHeight  //hipotético acceso...
        fin propiedad

   fin clase

   Medidas md = Propiedad MedidasPantalla
       devolver instancia de Medidas
   Fin propiedad
Fin clase
            
// Luego tu suponiendo que ya tienen una instancia de la clase pantalla...

Medidas Md = Pant.MedidasPantalla

imprimir con md .Ancho .Alto

Si es otra cosa lo que preguntas, sería adecuado que te expreses mejor, incluso añade un ejemplo, aunque no sea válido... solo para hacerte entender...