• Martes 23 de Abril de 2024, 13:32

Autor Tema:  Funcion Como Private  (Leído 1804 veces)

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Funcion Como Private
« en: Lunes 19 de Marzo de 2007, 18:22 »
0
:mellow: que tal... tengo una duda... como hago referencia a una funcion Private ? para yo utilizarla en mi aplicacion ?  :unsure:

Gracias  :P
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Funcion Como Private
« Respuesta #1 en: Lunes 19 de Marzo de 2007, 18:29 »
0
Buenas...

No trabajo con VB.NET pero supongo que la filosofía del paradigma OO se respeta y por lo tanto una función privada solamente es accesible por los métodos (funciones) de la misma clase.-

 :hola:
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Funcion Como Private
« Respuesta #2 en: Lunes 19 de Marzo de 2007, 18:37 »
0
Por decirte tengo una funcion declarada asi

Código: Text
  1. Private Function Nombre (byval var1 as integer , byval var2 as integer) as integer
  2.      dim var3 as integer
  3.      nombre= var1+var2
  4. end funtion
  5.  

y en donde la trato de usar segun lo que dices del paradigma de la OO
tendria que ser

Dim var as nombre ?
 <_<  no me deja ....
o como seria ?
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Funcion Como Private
« Respuesta #3 en: Lunes 19 de Marzo de 2007, 20:12 »
0
Bueno, seguro que voy a meter la pata pero en fin...

Antes que nada, las funciones no se instancian, se usan. Lo que se instancia es la clase, de esta forma se obtiene un objeto que poseerá los atributos (Variables, constantes, etc) y los métodos (funciones) que se definieron en la clase.-

Si tuvieses por ejemplo una clase circunferencia-.

(Está en C# pero para que veas lo que digo es lo mismo)
Código: Text
  1. class Circunferencia{
  2.         public Circunferencia(double radio){
  3.             this.radio = radio;
  4.         }
  5.  
  6.         private double radio;
  7.         const double PI = 3.1415926;
  8.  
  9.         private double calcularPerimetro(){
  10.                 return 2 * PI * this.radio;
  11.         }
  12.  
  13.         public double Radio{
  14.             get{
  15.                 return this.radio;
  16.             }
  17.             set{
  18.                 this.radio = value;
  19.             }
  20.         }
  21.  
  22.         public double Perimetro{
  23.             get{
  24.                 return calcularPerimetro();//Fijate como se llama a la función privada
  25.             }
  26.         }
  27.  
  28.         public double Area{
  29.             get{
  30.                 return PI * Math.Pow(this.radio, 2);
  31.             }
  32.         }
  33.     }
  34.  

La usarías así:
Código: Text
  1. class CircunsferenciaApp{
  2.         static void Main(){
  3.  
  4.             Circunferencia c = new Circunferencia(4);//Instanciamos un objeto de la clase Circunferencia
  5.             //Luego usamos lo que está accesible (Todo lo public en este caso) en objeto (Atributos, funciones, etc)
  6.            
  7.             //Esto está bien...
  8.             Console.WriteLine("El radio de la circunferencia es {0}", c.Radio);
  9.             Console.WriteLine("El perímetro de la circunferencia es {0}", c.Perimetro);
  10.             Console.WriteLine("El área de la circunferencia es {0}", c.Area);
  11.             Console.WriteLine("Pulsa INTRO para incrementar el Radio en 1");
  12.             string a = Console.ReadLine();
  13.  
  14.             c.Radio++; //Esto está bien...
  15.             Console.WriteLine("El radio de la circunferencia es {0}", c.Radio); //Esto está bien...
  16.             Console.WriteLine("El perímetro de la circunferencia es {0}", c.calcularPerimetro); //Esto está mal (El método calcularPerimetro es privado y solo puede utilizarce desde las funciones miembro de la misma clase ...
  17.             Console.WriteLine("El área de la circunferencia es {0}", c.Area); //Esto está bien...
  18.             a = Console.ReadLine();
  19.  
  20.         }
  21.     }
  22.  

Espero que se entienda lo que quiero decir

Saludos :comp:
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

Cajami

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: Funcion Como Private
« Respuesta #4 en: Lunes 19 de Marzo de 2007, 20:18 »
0
Cita de: "elnapster"
Por decirte tengo una funcion declarada asi

Código: Text
  1. Private Function Nombre (byval var1 as integer , byval var2 as integer) as integer
  2.      dim var3 as integer
  3.      nombre= var1+var2
  4. end funtion
  5.  

y en donde la trato de usar segun lo que dices del paradigma de la OO
tendria que ser

Dim var as nombre ?
 <_<  no me deja ....
o como seria ?
hola, que io sepa no se puede declarar una variable del tipo de una funcion, que tal si pruebas asi:


Código: Text
  1. Private Function Nombre (byval var1 as integer , byval var2 as integer) as integer
  2.     dim var3 as integer
  3.     nombre= var1+var2
  4. end funtion
  5.  
  6. Dim Variable As Integer
  7. Variable = Nombre (15,16)
  8.  
Lima - Perú

-------------------------------------------------------------------------------------------------------
"Persigue tus metas, tus objetivos, tus sueños, nunca t rindas si t caes 1000 veces levantat 1000 veces y sigue adelante..."

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Funcion Como Private
« Respuesta #5 en: Lunes 19 de Marzo de 2007, 21:22 »
0
Citar
hola, que io sepa no se puede declarar una variable del tipo de una funcion, que tal si pruebas asi:



CODE 
Private Function Nombre (byval var1 as integer , byval var2 as integer) as integer
   dim var3 as integer
   nombre= var1+var2
end funtion

Dim Variable As Integer
Variable = Nombre (15,16)



Nop solo me muestra las funciones que son de tipo Public ..... :(
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Funcion Como Private
« Respuesta #6 en: Miércoles 21 de Marzo de 2007, 12:39 »
0
aun si instancias un objeto de una clase, si la clase tiene atributos privados, nos los podras ver, ya que son PRIVADOS, y solo podras ver los que son PUBLICOS.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"