|
|
|
|
2
|
|
2
|
|
3
|
#Utilizando objetos en C++ - Pájaros
|
3
|
#Utilizando objetos en C++ - Pájaros
|
4
|
|
4
|
|
5
|
-![main1.png](images/main1.png)
|
|
|
6
|
-![main2.png](images/main2.png)
|
|
|
7
|
-![main3.png](images/main3.png)
|
|
|
8
|
-
|
|
|
9
|
-LAS IMAGENES DE ARRIBA NO SON LAS DE ESTE LAB SON LAS DEL LAB DE CONDICIONALES (USANDO OTRA VERSION DE BIRDS, BIRTH OF A BIRD). LAS IMAGENES ERAN LAS DE ABAJO
|
|
|
10
|
-
|
|
|
11
|
<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
|
<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>
|
12
|
|
6
|
|
|
|
7
|
+<p> </p>
|
|
|
8
|
+
|
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.
|
9
|
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.
|
14
|
|
10
|
|
15
|
##Objetivos:
|
11
|
##Objetivos:
|
|
|
|
|
34
|
|
30
|
|
35
|
c. utilización de métodos "setters" para modificar los atributos de un objeto.
|
31
|
c. utilización de métodos "setters" para modificar los atributos de un objeto.
|
36
|
|
32
|
|
37
|
-2. Haber estudiado la documentación de la clase `Bird` disponible en [este enlace] (http://ada.uprrp.edu/~ranazario/bird-html/class_bird.html).
|
|
|
|
|
33
|
+2. Haber estudiado la documentación de la clase `Bird` disponible dentro de la documentación del proyecto (`eip/objetcs-birds/doc/es/html/class_bird.html`).
|
38
|
|
34
|
|
39
|
3. Haber estudiado los conceptos e instrucciones para la sesión de laboratorio.
|
35
|
3. Haber estudiado los conceptos e instrucciones para la sesión de laboratorio.
|
40
|
|
36
|
|
|
|
|
|
53
|
|
49
|
|
54
|
Para definir y utilizar un objeto no hay que saber todos los detalles de los métodos del objeto pero hay que saber cómo crearlo, y cómo interactuar con él. La información necesaria está disponible en la documentación de la clase. Antes de crear objetos de cualquier clase debemos familiarizarnos con su documentación. La documentación nos indica, entre otras cosas, que ente se está tratando de representar con la clase, y cuáles son los interfaces o métodos disponibles para manipular los objetos de la clase.
|
50
|
Para definir y utilizar un objeto no hay que saber todos los detalles de los métodos del objeto pero hay que saber cómo crearlo, y cómo interactuar con él. La información necesaria está disponible en la documentación de la clase. Antes de crear objetos de cualquier clase debemos familiarizarnos con su documentación. La documentación nos indica, entre otras cosas, que ente se está tratando de representar con la clase, y cuáles son los interfaces o métodos disponibles para manipular los objetos de la clase.
|
55
|
|
51
|
|
56
|
-Dale un vistazo a la documentación de la clase `Bird` que se encuentra en http://ada.uprrp.edu/~ranazario/bird-html/class_bird.html.
|
|
|
|
|
52
|
+Dale un vistazo a la documentación de la clase `Bird` que se encuentra dentro de la documentación del proyecto (`eip/objetcs-birds/doc/es/html/class_bird.html`).
|
57
|
|
53
|
|
58
|
###Clases
|
54
|
###Clases
|
59
|
|
55
|
|
|
|
|
|
91
|
|
87
|
|
92
|
###Objetos
|
88
|
###Objetos
|
93
|
|
89
|
|
94
|
-Un objeto es un ente que contiene datos (al igual que una variable), llamados sus `atributos`, y también contiene procedimientos, llamados `métodos`, que se usan para manipularlos. Los objetos son "instancias" de una clase que se crean de manera similar a como se definen las variables:
|
|
|
|
|
90
|
+Un objeto es un ente que contiene datos (al igual que una variable), llamados sus `atributos`, y también contiene procedimientos, llamados `métodos`, que se usan para manipularlos. Los objetos son "instancias" de una clase que se crean de manera similar a como se definen las variables, con la excepción de que en ocasiones hay que añadir parámetros:
|
95
|
|
91
|
|
96
|
-`NombreClase nombreObjeto;`
|
|
|
|
|
92
|
+`NombreClase nombreObjeto(parametros);`
|
97
|
|
93
|
|
98
|
-Una vez creamos un objeto, podemos interaccionar con él usando los métodos de la clase a la que pertenece.
|
|
|
|
|
94
|
+La creación de los objetos la hacen unas funciones llamadas `constructores` que explicaremos más adelante. Una vez creamos un objeto, podemos interaccionar con él usando los métodos de la clase a la que pertenece.
|
99
|
|
95
|
|
100
|
###Métodos de una clase
|
96
|
###Métodos de una clase
|
101
|
|
97
|
|
|
|
|
|
167
|
|
163
|
|
168
|
`Bird (int, EyeBrowType, QString, QString, QWidget *parent=0)`
|
164
|
`Bird (int, EyeBrowType, QString, QString, QWidget *parent=0)`
|
169
|
|
165
|
|
170
|
-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 se encuentra en http://ada.uprrp.edu/~ranazario/bird-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.
|
|
|
|
|
166
|
+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.
|
171
|
|
167
|
|
172
|
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:
|
168
|
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:
|
173
|
|
169
|
|
|
|
|
|
380
|
|
376
|
|
381
|
#Using Objects in C++ - Birds
|
377
|
#Using Objects in C++ - Birds
|
382
|
|
378
|
|
383
|
-![main1.png](images/main1.png)
|
|
|
384
|
-![main2.png](images/main2.png)
|
|
|
385
|
-![main3.png](images/main3.png)
|
|
|
386
|
-
|
|
|
387
|
-LAS IMAGENES DE ARRIBA NO SON LAS DE ESTE LAB SON LAS DEL LAB DE CONDICIONALES (USANDO OTRA VERSION DE BIRDS, BIRTH OF A BIRD). LAS IMAGENES ERAN LAS DE ABAJO
|
|
|
388
|
|
379
|
|
389
|
<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>
|
380
|
<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>
|
390
|
|
381
|
|
|
|
382
|
+<p> </p>
|
|
|
383
|
+
|
391
|
Up to now we've seen how to use variables to store and manipulate data of certain types and how to structure programs by dividing their tasks into functions. An *object* is an entity that it is used in many programming languages to integrate the data and the code that operates on it, simplifying the modification of large programs. In today’s laboratory experience you will use a class called `Bird` to practice some basic skills in C++ to create and manipulate objects.
|
384
|
Up to now we've seen how to use variables to store and manipulate data of certain types and how to structure programs by dividing their tasks into functions. An *object* is an entity that it is used in many programming languages to integrate the data and the code that operates on it, simplifying the modification of large programs. In today’s laboratory experience you will use a class called `Bird` to practice some basic skills in C++ to create and manipulate objects.
|
392
|
|
385
|
|
393
|
|
386
|
|
|
|
|
|
410
|
|
403
|
|
411
|
c. using the "setter" method functions to modify the attributes of an object.
|
404
|
c. using the "setter" method functions to modify the attributes of an object.
|
412
|
|
405
|
|
413
|
-2. Studied the documentation for the class `Bird` available in [this link.](http://ada.uprrp.edu/~ranazario/bird-html/class_bird.html)
|
|
|
|
|
406
|
+2. Studied the documentation for the class `Bird` available in the documentation for this project (`eip/objetcs-birds/doc/es/html/class_bird.html`).
|
414
|
|
407
|
|
415
|
3. Studied the concepts and instructions for the laboratory session.
|
408
|
3. Studied the concepts and instructions for the laboratory session.
|
416
|
|
409
|
|
|
|
|
|
427
|
|
420
|
|
428
|
To define and use an object it is not necessary to know all of the details about the methods of the object, but you must know how to create it and how to interact with it. The necessary information is available in the class' documentation. Before creating objects of any class we should familiarize ourselves with its documentation. The documentation indicates, among other things, what entity is trying to be represented in the class, and its interface or methods available to manipulate the objects of the class.
|
421
|
To define and use an object it is not necessary to know all of the details about the methods of the object, but you must know how to create it and how to interact with it. The necessary information is available in the class' documentation. Before creating objects of any class we should familiarize ourselves with its documentation. The documentation indicates, among other things, what entity is trying to be represented in the class, and its interface or methods available to manipulate the objects of the class.
|
429
|
|
422
|
|
430
|
-Take a look at the documentation of the `Bird` class which can be found in [this link.](http://ada.uprrp.edu/~ranazario/bird-html/class_bird.html).
|
|
|
|
|
423
|
+Take a look at the documentation for the `Bird` class which can be found in the documentation for this project (`eip/objetcs-birds/doc/es/html/class_bird.html`).
|
431
|
|
424
|
|
432
|
###Classes
|
425
|
###Classes
|
433
|
|
426
|
|
|
|
|
|
467
|
|
460
|
|
468
|
###Objects
|
461
|
###Objects
|
469
|
|
462
|
|
470
|
-An object is an entity that contains data (as well as a variable), called its `attributes`, and also contain procedures, called `method`, that are used to manipulate them. The objects are "instances" of a class that are created in a similar manner as how variables are defined:
|
|
|
|
|
463
|
+An object is an entity that contains data (as well as a variable), called its `attributes`, and also contain procedures, called `method`, that are used to manipulate them. The objects are "instances" of a class that are created in a similar manner as how variables are defined, with the exception that in some occasions we have to add parameters:
|
471
|
|
464
|
|
472
|
-`ClassName objectName;`
|
|
|
|
|
465
|
+`ClassName objectName(parameters);`
|
473
|
|
466
|
|
474
|
-By creating an object we have available the methods of the class that the object belongs to.
|
|
|
|
|
467
|
+The creation of the objects is done by functions called `constructors` that will be explained later. By creating an object we have available the methods of the class that the object belongs to.
|
475
|
|
468
|
|
476
|
###Methods of a class
|
469
|
###Methods of a class
|
477
|
|
470
|
|
|
|
|
|
545
|
|
538
|
|
546
|
`Bird (int, EyeBrowType, QString, QString, QWidget *parent=0)`
|
539
|
`Bird (int, EyeBrowType, QString, QString, QWidget *parent=0)`
|
547
|
|
540
|
|
548
|
-You can see the declarations of the method prototypes in the declaration of the `Bird` class in the project's `bird.h` file. The documentation can be found in [this link.](http://ada.uprrp.edu/~ranazario/bird-html/class_bird.html) The first constructor, `Bird (QWidget *parent=0)`, is a method that can be invoked with one or no argument. If no argument is used, the function's parameter has a value of 0.
|
|
|
|
|
541
|
+You can see the declarations of the method prototypes in the declaration of the `Bird` class in the project's `bird.h` file. The documentation for the class can be found in the documentation for this project (`eip/objetcs-birds/doc/es/html/class_bird.html`). The first constructor, `Bird (QWidget *parent=0)`, is a method that can be invoked with one or no argument. If no argument is used, the function's parameter has a value of 0.
|
549
|
|
542
|
|
550
|
A class' constructor that can be invoked without using an argument is the class' *default constructor*; that is, the constructor that is invoked when we create an object using an instruction like:
|
543
|
A class' constructor that can be invoked without using an argument is the class' *default constructor*; that is, the constructor that is invoked when we create an object using an instruction like:
|
551
|
|
544
|
|