|
@@ -40,7 +40,52 @@ Antes de llegar al laboratorio debes haber:
|
40
|
40
|
|
41
|
41
|
---
|
42
|
42
|
|
|
43
|
+## Clases y objetos en C++
|
43
|
44
|
|
|
45
|
+Un *objeto* es un ente que contiene datos y procedimientos para manipularlos. Al igual que cada variable tiene un *tipo* de dato asociada a ella, cada objeto tiene una *clase* asociada que describe las propiedades de los objetos:
|
|
46
|
+sus datos (*atributos*), y los procedimientos con los que se pueden manipular los datos (*métodos*).
|
|
47
|
+
|
|
48
|
+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.
|
|
49
|
+
|
|
50
|
+Dale un vistazo a la documentación de la clase `Bird` que se encuentra en [este enlace] (http://ada.uprrp.edu/~ranazario/bird-html/class_bird.html).
|
|
51
|
+
|
|
52
|
+### Clases
|
|
53
|
+
|
|
54
|
+Una clase es una descripción de los datos y procesos de un objeto. La declaración de una clase establece los atributos que tendrá cada objeto de esa clase y los métodos que pueden invocar.
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+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
|
+
|
|
59
|
+Lo siguiente es el esqueleto de la declaración de una clase:
|
|
60
|
+
|
|
61
|
+---
|
|
62
|
+
|
|
63
|
+```
|
|
64
|
+ class NombreClase
|
|
65
|
+ {
|
|
66
|
+ // Declaraciones
|
|
67
|
+
|
|
68
|
+ private:
|
|
69
|
+ // Declaraciones de variables o atributos y
|
|
70
|
+ // prototipos de métodos
|
|
71
|
+ // que sean privados para esta clase
|
|
72
|
+
|
|
73
|
+ tipo varPrivada;
|
|
74
|
+ tipo nombreMetodoPrivado(tipo de los parámetros);
|
|
75
|
+
|
|
76
|
+ public:
|
|
77
|
+ // Declaraciones de atributos y
|
|
78
|
+ // prototipos de métodos
|
|
79
|
+ // que sean públicos para todo el programa
|
|
80
|
+
|
|
81
|
+ tipo varPública;
|
|
82
|
+ tipo nombreMetodoPúblico(tipo de los parámetros);
|
|
83
|
+ };
|
|
84
|
+```
|
|
85
|
+
|
|
86
|
+---
|
|
87
|
+
|
|
88
|
+---
|
44
|
89
|
|
45
|
90
|
## El juego
|
46
|
91
|
|