Академический Документы
Профессиональный Документы
Культура Документы
Definicion de Clases
Mg. Fausto M. Lagos S., : Processing
n esta actividad aprendera los conceptos necesarios para entender la definicion de clases de objetos
E y como incorporar un nuevo objeto dentro de un sketch de processing lo cual le permitira abordar
desde otra instancia los criterios de modularidad y reuso del codigo en un ambiente de desarrollo.
Empezara por desarrollar ejercicios simples que aumentaran en grado de complejidad a medida que
avanza en el dominio de los conceptos necesarios, lea cuidadosamente los planteamientos y desarrolle
todos los ejercicios propuestos antes de continuar a la siguiente seccion.
1. Introduccion
Piense en la siguiente pregunta Cuales son los atributos que definen a un contenedor de lquidos? Ahora
piense Que diferencia hay entre los atributos de un objeto (e.g. un contenedor de lquidos) y sus funciones?.
Como ya lo dedujo, los atributos de un objeto son las caractersticas que lo definen como parte de una
clase especfica de objeto, por ejemplo, algunos de los atributos de un contenedor de lquidos son el material
con el que esta construido, la forma (vaso, copa, botella, etc.), el color, la altura, el diametro, el volumen, etc.
mientras que las funciones de un objeto son las tareas que puede realizar el objeto, as, por ejemplo papora
el objeto de la clase contenedor algunas funciones son llenarse, desocuparse, romperse, etc. Entender esta
diferencia es lo que hara que se entienda la construccion de clases de objetos en processing.
Entonces, puede tenerse que existen muchos objetos con los mismos atributos y funciones que por
tanto pertenecen a la misma clase pero cuyos atributos estan definidos de forma unica para cada uno, i.e.
una copa y un baso son los dos objetos de la misma clase (contenedores de lquidos) pero un baso puede
ser plastico de color verde mientras que una copa puede ser de cristal y transparente, tienen los mismos
atributos (material y color) pero con valores diferentes, as mismo sucede con los objetos de programacion
que a continuacion vera como definir en processing.
1 c l a s s bubble {
2 float h, k, d;
3
4 bubble ( f l o a t a b s c e n t r o , f l o a t o r d c e n t r o , f l o a t r a d i o ) {
5 h = abs centro ;
6 k = ord centro ;
7 d = 2 radio ;
8 }
9
10 void d i s p l a y ( ) {
11 f i l l ( # 00BEBE ) ;
12 e l l i p s e (h , k , d , d) ;
13 }
14
15 }
Finalmente, cree un metodo de la clase bubble llamado ascend que permita que la burbuja ascienda
desde su posicion inicial hasta tocar el borde superior del lienzo.
1 c l a s s bubble {
2 float h, k, d;
3
4 bubble ( ) {
5 d = random ( 5 , 30 ) ;
6 h = random ( width d / 2 ) ;
7 k = height d / 2 ;
8 }
9
10 bubble ( f l o a t a b s c e n t r o , f l o a t o r d c e n t r o , f l o a t r a d i o ) {
11 h = abs centro ;
12 k = ord centro ;
13 d = 2 radio ;
14 }
15
16 void d i s p l a y ( ) {
17 f i l l ( # 00BEBE ) ;
18 e l l i p s e (h , k , d , d) ;
19 }
20
21 void ascend ( ) {
22 if (k > d / 2){
23 k;
24 h += random(2 , 2 ) ;
25 }else{
26 k = d / 2;
27 h += random(2 , 2 ) ;
28 }
29 }
30 }
0 1 2 3 4 5
A= 2 -3 12 125 -7 18
de esta forma se declara y crea el arreglo de numeros enteros A, sin embargo ese arreglo contiene
inicialmente en cada una de sus posiciones el valor cero porque no se ha inicializado, el valor de cada
posicion del arreglo puede modificarse posteriormente o en una sola instruccion puede, definirse,
crearse e inicializarse con una instruccion como
Hay una diferencia entre crear e iniciarlizar el arreglo, cuando se crea solamente se estan reservando
tantos espacios en memoria como length indique almacenando un cero (0) en cada uno, cuando se inicializa,
se reservan los espacios en necesarios en memoria y ademas se ocupan con un valor especfico.
En estos dos sketch la diferencia es poca, en el de la izquierda se estan definiendo, creando y manipu-
lando dos objetos de la clase bubble de forma independiente cada uno, en el de la derecha se ha definido
y creado un arreglo de dos objetos de la clase bubble los cuales se tratan por separado utilizando el ndice
correspondiente por separado en el setup y draw respectivamente. Como quedara el codigo para utilizar
10, 100 o 1000 objetos de la misma clase?.
Una forma mas eficiente de trabajar con muchos objetos de la misma clase, aprovechando la posibilidad
de generar arreglos de objetos es el uso de bucles en combinacion con arreglos, e.g.
y y
5 5
4 4
3 3
2 2
1 1
0 0
0 1 2 3 4 5 x 0 1 2 3 4 5 x
(a) Crculos que no se sobreponen (b) Crculos que se sobreponen