Browse Source

Rafa: added header as local image

Rafael Arce Nazario 8 years ago
parent
commit
3b7c8a6717
5 changed files with 34 additions and 32 deletions
  1. 34
    32
      README.md
  2. BIN
      images/fourBirds.png
  3. BIN
      images/headerBirds.png
  4. BIN
      images/qobject.png
  5. BIN
      images/unibrow.png

+ 34
- 32
README.md View File

2
 
2
 
3
 #Utilizando objetos en C++ - Pájaros
3
 #Utilizando objetos en C++ - Pájaros
4
 
4
 
5
-<div align='center'><img src="http://i.imgur.com/9D8D7wH.png" width="215" height="174">  <img src="http://i.imgur.com/2zwymir.png?1" width="215" height="174">  <img src="http://demo05.cloudimage.io/s/resize/300/i.imgur.com/A5UVBHd.png" width="215" height="174"></div>
5
+
6
+
7
+![](images/headerBirds.png)
6
 
8
 
7
 <p> </p>
9
 <p> </p>
8
 
10
 
9
 [version 2016.02.09]
11
 [version 2016.02.09]
10
 
12
 
11
-Hasta ahora hemos visto cómo utilizar variables para guardar y manipular datos de cierto tipo y cómo estructurar nuestros programas dividiendo las tareas en funciones.  Un *objeto* es una entidad que se utiliza en muchos lenguajes de programación para integrar los datos y el código que opera en ellos, haciendo más fácil el modificar programas grandes.  En la experiencia de laboratorio de hoy utilizarás una clase llamada `Bird` para practicar algunas de las destrezas básicas en C++ para la creación y manejo de objetos. 
13
+Hasta ahora hemos visto cómo utilizar variables para guardar y manipular datos de cierto tipo y cómo estructurar nuestros programas dividiendo las tareas en funciones.  Un *objeto* es una entidad que se utiliza en muchos lenguajes de programación para integrar los datos y el código que opera en ellos, haciendo más fácil el modificar programas grandes.  En la experiencia de laboratorio de hoy utilizarás una clase llamada `Bird` para practicar algunas de las destrezas básicas en C++ para la creación y manejo de objetos.
12
 
14
 
13
 ##Objetivos:
15
 ##Objetivos:
14
 
16
 
54
 
56
 
55
 ###Clases
57
 ###Clases
56
 
58
 
57
-Una clase es una plantilla para la creación de objetos que establece sus atributos y su comportamiento. Si no se especifica lo contrario, los atributos y métodos definidos en una clase serán "privados". Esto quiere decir que esas variables solo se pueden acceder y cambiar por los métodos de la clase (*constructores*, *"setters"* y *"getters"*, entre otros). 
59
+Una clase es una plantilla para la creación de objetos que establece sus atributos y su comportamiento. Si no se especifica lo contrario, los atributos y métodos definidos en una clase serán "privados". Esto quiere decir que esas variables solo se pueden acceder y cambiar por los métodos de la clase (*constructores*, *"setters"* y *"getters"*, entre otros).
58
 
60
 
59
 Lo siguiente es el esqueleto de la declaración de una clase:
61
 Lo siguiente es el esqueleto de la declaración de una clase:
60
 
62
 
66
     // Declaraciones
68
     // Declaraciones
67
 
69
 
68
     private:
70
     private:
69
-      // Declaraciones de variables o atributos y 
70
-      // prototipos de métodos 
71
+      // Declaraciones de variables o atributos y
72
+      // prototipos de métodos
71
       // que sean privados para esta clase
73
       // que sean privados para esta clase
72
 
74
 
73
       tipo varPrivada;
75
       tipo varPrivada;
74
       tipo nombreMetodoPrivado(tipo de los parámetros);
76
       tipo nombreMetodoPrivado(tipo de los parámetros);
75
 
77
 
76
     public:
78
     public:
77
-      // Declaraciones de atributos y 
78
-      // prototipos de métodos 
79
+      // Declaraciones de atributos y
80
+      // prototipos de métodos
79
       // que sean públicos para todo el programa
81
       // que sean públicos para todo el programa
80
 
82
 
81
       tipo varPública;
83
       tipo varPública;
96
 
98
 
97
 ###Métodos de una clase
99
 ###Métodos de una clase
98
 
100
 
99
-Los métodos de una clase determinan qué acciones podemos tomar sobre los objetos de esa clase.  Los métodos son parecidos a las funciones en el sentido de que pueden recibir parámetros y regresar un resultado.  Una forma elemental de conocer los métodos de una clase es leyendo la declaración de la clase. Por ejemplo, lo siguiente es parte de la declaración de la clase `Bird` en el archivo `bird.h`. 
101
+Los métodos de una clase determinan qué acciones podemos tomar sobre los objetos de esa clase.  Los métodos son parecidos a las funciones en el sentido de que pueden recibir parámetros y regresar un resultado.  Una forma elemental de conocer los métodos de una clase es leyendo la declaración de la clase. Por ejemplo, lo siguiente es parte de la declaración de la clase `Bird` en el archivo `bird.h`.
100
 
102
 
101
 ---
103
 ---
102
 
104
 
109
 //...
111
 //...
110
 
112
 
111
     Bird(int , EyeBrowType , QString , QString, QWidget *parent = 0) ;
113
     Bird(int , EyeBrowType , QString , QString, QWidget *parent = 0) ;
112
-    
114
+
113
     int getSize() const;
115
     int getSize() const;
114
     EyeBrowType getEyebrow() const ;
116
     EyeBrowType getEyebrow() const ;
115
     QString  getFaceColor() const;
117
     QString  getFaceColor() const;
148
 
150
 
149
 ####Constructores
151
 ####Constructores
150
 
152
 
151
-Los primeros métodos de una clase que debemos entender son los *constructores*.Una clase puede tener múltiples constructores. Uno de los constructores será invocado automáticamente cada vez que se crea un objeto de esa clase. En la mayoría de los casos, los constructores se utilizan para inicializar los valores de los atributos del objeto. Para poder crear objetos de una clase, debemos conocer cuáles son sus constructores. 
153
+Los primeros métodos de una clase que debemos entender son los *constructores*.Una clase puede tener múltiples constructores. Uno de los constructores será invocado automáticamente cada vez que se crea un objeto de esa clase. En la mayoría de los casos, los constructores se utilizan para inicializar los valores de los atributos del objeto. Para poder crear objetos de una clase, debemos conocer cuáles son sus constructores.
152
 
154
 
153
 En C++, los  constructores tienen el mismo nombre que la clase. No se declara el tipo que devuelven porque estas funciones no devuelven ningún valor. Su declaración (incluida en la definición de la clase) es algo así:
155
 En C++, los  constructores tienen el mismo nombre que la clase. No se declara el tipo que devuelven porque estas funciones no devuelven ningún valor. Su declaración (incluida en la definición de la clase) es algo así:
154
 
156
 
164
 
166
 
165
 `Bird (int, EyeBrowType, QString, QString, QWidget *parent=0)`
167
 `Bird (int, EyeBrowType, QString, QString, QWidget *parent=0)`
166
 
168
 
167
-Puedes ver las declaraciones de los prototipos de estos métodos en la declaración de la clase `Bird` en el archivo `bird.h` del proyecto. La documentación de la clase se encuentra dentro de la documentación del proyecto (`eip/objetcs-birds/doc/es/html/class_bird.html`). El primer constructor, `Bird (QWidget *parent=0)`, es un método  que se puede invocar con uno o ningún argumento. Si al invocarlo no se usa argumento, el parámetro de la función toma el valor 0. 
169
+Puedes ver las declaraciones de los prototipos de estos métodos en la declaración de la clase `Bird` en el archivo `bird.h` del proyecto. La documentación de la clase se encuentra dentro de la documentación del proyecto (`eip/objetcs-birds/doc/es/html/class_bird.html`). El primer constructor, `Bird (QWidget *parent=0)`, es un método  que se puede invocar con uno o ningún argumento. Si al invocarlo no se usa argumento, el parámetro de la función toma el valor 0.
168
 
170
 
169
 El constructor de una clase que se puede invocar sin usar argumentos es el *constructor* "*default*" de la clase; esto es, el constructor que se invoca cuando creamos un objeto usando una instrucción como:
171
 El constructor de una clase que se puede invocar sin usar argumentos es el *constructor* "*default*" de la clase; esto es, el constructor que se invoca cuando creamos un objeto usando una instrucción como:
170
 
172
 
181
 
183
 
182
 Las clases proveen métodos para modificar los valores de los atributos de un objeto que se ha creado. Estos métodos se llaman "*setters*" o "*mutators*". Usualmente se declara un "setter" por cada atributo que tiene la clase. La clase `Bird` tiene los siguientes "setters":
184
 Las clases proveen métodos para modificar los valores de los atributos de un objeto que se ha creado. Estos métodos se llaman "*setters*" o "*mutators*". Usualmente se declara un "setter" por cada atributo que tiene la clase. La clase `Bird` tiene los siguientes "setters":
183
 
185
 
184
-* `void setSize (int)` 
185
-* `void setEyebrow (EyeBrowType)` 
186
-* `void setFaceColor (QString)` 
187
-* `void setEyeColor (QString)` 
186
+* `void setSize (int)`
187
+* `void setEyebrow (EyeBrowType)`
188
+* `void setFaceColor (QString)`
189
+* `void setEyeColor (QString)`
188
 
190
 
189
 
191
 
190
 Puedes ver las declaraciones de los métodos en la Figura 1 y en la declaración de la clase `Bird` en  `bird.h`, y la implementación de algunos de los métodos en `bird.cpp`. El código en el siguiente ejemplo crea el objeto `bobo` de la clase `Bird` y luego cambia su tamaño a 333.
192
 Puedes ver las declaraciones de los métodos en la Figura 1 y en la declaración de la clase `Bird` en  `bird.h`, y la implementación de algunos de los métodos en `bird.cpp`. El código en el siguiente ejemplo crea el objeto `bobo` de la clase `Bird` y luego cambia su tamaño a 333.
199
 
201
 
200
 Las clases también proveen métodos para acceder  ("get") el valor del atributo de un objeto. Estos métodos se llaman "*getters*" o "*accessors*". Usualmente se declara un "getter" por cada atributo que tiene la clase. La clase `Bird` tiene los siguientes "getters":
202
 Las clases también proveen métodos para acceder  ("get") el valor del atributo de un objeto. Estos métodos se llaman "*getters*" o "*accessors*". Usualmente se declara un "getter" por cada atributo que tiene la clase. La clase `Bird` tiene los siguientes "getters":
201
 
203
 
202
-* `int getSize ()` 
203
-* `EyeBrowType getEyebrow ()` 
204
+* `int getSize ()`
205
+* `EyeBrowType getEyebrow ()`
204
 * `QString  getFaceColor ()`
206
 * `QString  getFaceColor ()`
205
-* `QString   getEyeColor ()` 
207
+* `QString   getEyeColor ()`
206
 
208
 
207
 
209
 
208
 Puedes ver las declaraciones de los métodos en la Figura 1 y en la declaración de la clase `Bird` en  `bird.h`, y las implementaciones de algunos de métodos en `bird.cpp`. El código en el siguiente ejemplo crea el objeto `piolin` de la clase `Bird` e imprime su tamaño.
210
 Puedes ver las declaraciones de los métodos en la Figura 1 y en la declaración de la clase `Bird` en  `bird.h`, y las implementaciones de algunos de métodos en `bird.cpp`. El código en el siguiente ejemplo crea el objeto `piolin` de la clase `Bird` e imprime su tamaño.
218
 
220
 
219
 `void MainWindow::addBird(int x, int y, Bird &b)`  
221
 `void MainWindow::addBird(int x, int y, Bird &b)`  
220
 
222
 
221
-`void MainWindow::addBird(Bird &b)` 
223
+`void MainWindow::addBird(Bird &b)`
222
 
224
 
223
 que añadirán a la pantalla un dibujo del objeto de la clase `Bird` que es recibido como argumento. El código en el siguiente ejemplo crea un objeto `w` de la clase `MainWindow`, crea un objeto `zumbador` de la clase `Bird` y lo añade a la posición (200,200) de la pantalla `w` usando el primer método.
225
 que añadirán a la pantalla un dibujo del objeto de la clase `Bird` que es recibido como argumento. El código en el siguiente ejemplo crea un objeto `w` de la clase `MainWindow`, crea un objeto `zumbador` de la clase `Bird` y lo añade a la posición (200,200) de la pantalla `w` usando el primer método.
224
 
226
 
309
 
311
 
310
 **Instrucciones**
312
 **Instrucciones**
311
 
313
 
312
-1. Ahora crea un objeto de clase `Bird` llamado `abelardo` usando el constructor default y añádelo a la ventana `w` usando el método `addBird(int x, int y, Bird b)`. Recuerda que la invocación del método debe comenzar con el nombre del objeto `w` y un punto. 
314
+1. Ahora crea un objeto de clase `Bird` llamado `abelardo` usando el constructor default y añádelo a la ventana `w` usando el método `addBird(int x, int y, Bird b)`. Recuerda que la invocación del método debe comenzar con el nombre del objeto `w` y un punto.
313
 
315
 
314
 2. Corre varias veces el programa y maravíllate al ver a `abelardo` tener tamaños, colores y cejas distintas.
316
 2. Corre varias veces el programa y maravíllate al ver a `abelardo` tener tamaños, colores y cejas distintas.
315
 
317
 
344
 
346
 
345
   ---
347
   ---
346
 
348
 
347
-6. Corre varias veces el programa para asegurarte que `alondra` y `juana` siguen pareciéndose en tamaño, cejas y ojos. 
349
+6. Corre varias veces el programa para asegurarte que `alondra` y `juana` siguen pareciéndose en tamaño, cejas y ojos.
348
 
350
 
349
 
351
 
350
 ---
352
 ---
377
 
379
 
378
 [English](#markdown-header-using-objects-in-c-birds) | [Español](#markdown-header-utilizando-objetos-en-c-pajaros)
380
 [English](#markdown-header-using-objects-in-c-birds) | [Español](#markdown-header-utilizando-objetos-en-c-pajaros)
379
 
381
 
380
-#Using Objects in C++ - Birds
382
+# Using Objects in C++ - Birds
381
 
383
 
382
 
384
 
383
-<div align='center'><img src="http://i.imgur.com/9D8D7wH.png" width="215" height="174">  <img src="http://i.imgur.com/2zwymir.png?1" width="215" height="174">  <img src="http://demo05.cloudimage.io/s/resize/300/i.imgur.com/A5UVBHd.png" width="215" height="174"></div>
385
+![](images/headerBirds.png)
384
 
386
 
385
 <p> </p>
387
 <p> </p>
386
 
388
 
484
 //...
486
 //...
485
 
487
 
486
     Bird(int , EyeBrowType , QString , QString, QWidget *parent = 0) ;
488
     Bird(int , EyeBrowType , QString , QString, QWidget *parent = 0) ;
487
-    
489
+
488
     int getSize() const;
490
     int getSize() const;
489
     EyeBrowType getEyebrow() const ;
491
     EyeBrowType getEyebrow() const ;
490
     QString  getFaceColor() const;
492
     QString  getFaceColor() const;
558
 
560
 
559
 Classes provide methods to modify the values of the attributes of an objected that has been created. These methods are called *setters* or *mutators*. Usually, we declare one setter for each attribute that the class has. The `Bird` class has the following setters:
561
 Classes provide methods to modify the values of the attributes of an objected that has been created. These methods are called *setters* or *mutators*. Usually, we declare one setter for each attribute that the class has. The `Bird` class has the following setters:
560
 
562
 
561
-* `void setSize (int)` 
562
-* `void setEyebrow (EyeBrowType)` 
563
-* `void setFaceColor (QString)` 
564
-* `void setEyeColor (QString)` 
563
+* `void setSize (int)`
564
+* `void setEyebrow (EyeBrowType)`
565
+* `void setFaceColor (QString)`
566
+* `void setEyeColor (QString)`
565
 
567
 
566
 
568
 
567
 You can see the method's declarations in Figure 1 and in the `Bird` class declaration in `bird.h`, and the implementation of the some of the methods in `bird.cpp`. The code in the following example creates the object `bobo` of the `Bird` class and then changes its size to 333.
569
 You can see the method's declarations in Figure 1 and in the `Bird` class declaration in `bird.h`, and the implementation of the some of the methods in `bird.cpp`. The code in the following example creates the object `bobo` of the `Bird` class and then changes its size to 333.
575
 
577
 
576
 Classes also provide methods to access (get) the value of the attribute of an object. These methods are called *getters* or *accessors*. We usually declare one getter for each attribute a class has. The `Bird` class has the following getters:
578
 Classes also provide methods to access (get) the value of the attribute of an object. These methods are called *getters* or *accessors*. We usually declare one getter for each attribute a class has. The `Bird` class has the following getters:
577
 
579
 
578
-* `int getSize ()` 
579
-* `EyeBrowType getEyebrow ()` 
580
+* `int getSize ()`
581
+* `EyeBrowType getEyebrow ()`
580
 * `QString  getFaceColor ()`
582
 * `QString  getFaceColor ()`
581
-* `QString   getEyeColor ()` 
583
+* `QString   getEyeColor ()`
582
 
584
 
583
 You can see the declarations of the methods in Figure 1 and  in the `Bird` class declaration in `bird.h`, and the implementations of some of the methods in `bird.cpp`. The code in the following example creates the object `piolin` of the `Bird` class and prints its size:
585
 You can see the declarations of the methods in Figure 1 and  in the `Bird` class declaration in `bird.h`, and the implementations of some of the methods in `bird.cpp`. The code in the following example creates the object `piolin` of the `Bird` class and prints its size:
584
 
586
 
729
 ##References
731
 ##References
730
 
732
 
731
 
733
 
732
-https://sites.google.com/a/wellesley.edu/wellesley-cs118-spring13/lectures-labs/lab-2
734
+https://sites.google.com/a/wellesley.edu/wellesley-cs118-spring13/lectures-labs/lab-2

BIN
images/fourBirds.png View File


BIN
images/headerBirds.png View File


BIN
images/qobject.png View File


BIN
images/unibrow.png View File