Parametros Clases

Iniciado por alekula, 11 Octubre 2019, 03:38 AM

0 Miembros y 1 Visitante están viendo este tema.

alekula

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);
   }
}

K-YreX

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...
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

Serapis

#2
Las funciones solo devuelven por función un solo parámetro...

...por ejemplo:

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:

Array bytes x()= funcion Listaalumnos(aula)


Y también la estructura/record/type:

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).

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...