Dentro
de un programa de Gambas una instancia u objeto de la clase se
representa como una variable, por lo que para crear una instancia
declara una variable cuyo tipo de dato es el nombre del objeto, se
usa el siguiente formato:
Para definir el tipo de objeto:
- [Dim | Public | Private ] nombre as Nombre_Clase
y luego para crear el objeto:
- nombre=New Nombre_Clase
Public
Sub
Main()
Dim
cir As
ClassCirculo 'creamos
la variable, que sea del tipo ClassCirculo
cir
=
New
ClassCirculo 'Creamos
el objeto
Print
"Uso
de clase Circulo"
Print
"Introduce
el radio:"
Input
cir.radio
Print
"El
area es: ";
cir.area()
'vamos
a crear un nuevo objeto circulo, con un radio predefinido:
cir
=
New
ClassCirculo(8)
Print
"Radio:
";
cir.radio
Print
"El
area es: ";
cir.area()
End
Nota:
Fijate que usamos el operador punto (.) para acceder tanto a las propiedades como a los métodos del circulo.
Descarga del código de circulo: enlace
Ejemplo:
La compañía Ibarra va a remodelar su nave industrial de tal manera que va a pintar toda nave y necesita saber cuanto tiempo le llevaría pintar la nave. Define una clase Rectángulo que tenga las siguientes especificaciones:
Atributos:
·
largo
·
ancho
Métodos:
·
calcula
Area
Y utiliza esta clase para resolver el siguiente problema:
Hay una pared rectangular que tiene una ventana rectangular; se requiere un programa que dadas las dimensiones (largo y ancho) de la ventana y de la pared muestre en la pantalla el tiempo necesario para pintar la pared si se sabe que se puede pintar 1.5 m2 en 10 minutos.1º Definimos la clase, con sus propiedades (largo y ancho) y su método (area):
'
Gambas class file
Property
largo As
Float
Private
$largo As
Float
Private
Function
largo_read() As
Float
Return
$largo
End
Private
Sub
largo_write(Valor As
Float)
$largo
=
Valor
End
Property
ancho As
Float
Private
$ancho As
Float
Private
Function
ancho_read() As
Float
Return
$ancho
End
Private
Sub
ancho_write(Valor As
Float)
$ancho
=
Valor
End
Public
Sub
area() As
Float
Return
$largo *
$ancho
End
Ahora el programa principal, para resolver el problema...
'
Gambas module file
Public
Sub
Main()
Dim
p As
Rectangulo 'pared
Dim
v As
Rectangulo 'ventana
Dim
areapintada As
Float 'nos
servira para almacenar la superfice real de pintado
p
=
New
Rectangulo
v
=
New
Rectangulo
Print
"Ejemplo
de Clase: Pintado de nave"
'pedimos
los datos de la pared y de la ventana
Print
"Introduce
datos de la nave"
Print
"Datos
de la pared:"
Print
"Largo:"
Input
p.largo
Print
"Ancho:"
Input
p.ancho
Print
"Datos
de la ventana:"
Print
"Largo:"
Input
v.largo
Print
"Ancho:"
Input
v.ancho
'calcula
el area de la ventana y de la pared
'la
superficie realmente pintada es la diferencia del area de la pared y
la ventana
areapintada
=
p.area()
-
v.area()
Print
"Calculo
el tiempo a emplear, sabiendo que 1.5 m2 los hago en 10 minutos..."
'aplico
una regla de 3...
Print
"Area
real a pintar: "; areapintada
Print
"Se
tardará en pintar la pared: "; areapintada
*
10
/
1.5;
"
minutos"
End
Salida del programa en la terminal:
Ejemplo de Clase: Pintado de nave
Introduce datos de la nave
Datos de la pared:
Largo:
10
Ancho:
2
Datos de la ventana:
Largo:
1
Ancho:
5
Calculo el tiempo a emplear, sabiendo que 1.5 m2 los hago en 10 minutos...
Area real a pintar: 15
Se tardará en pintar la pared: 100 minutos
Introduce datos de la nave
Datos de la pared:
Largo:
10
Ancho:
2
Datos de la ventana:
Largo:
1
Ancho:
5
Calculo el tiempo a emplear, sabiendo que 1.5 m2 los hago en 10 minutos...
Area real a pintar: 15
Se tardará en pintar la pared: 100 minutos
Enlace de descarga del ejemplo: Enlace
interesante
ResponderEliminar