|
|
|
|
8
|
La *programación orientada a objetos* (object oriented programming - OOP) es un paradigma de programación que promueve el diseño de programas en el que distintos objetos interactúan entre sí para resolver un problema. C++ es uno de los lenguajes de programación que promueve la programación orientada a objetos, permitiendo que los programadores creen sus propias clases desde cero o derivadas de otras clases existentes. Otros lenguajes que promueven OOP son Java, Python, JavaScript y PHP.
|
8
|
La *programación orientada a objetos* (object oriented programming - OOP) es un paradigma de programación que promueve el diseño de programas en el que distintos objetos interactúan entre sí para resolver un problema. C++ es uno de los lenguajes de programación que promueve la programación orientada a objetos, permitiendo que los programadores creen sus propias clases desde cero o derivadas de otras clases existentes. Otros lenguajes que promueven OOP son Java, Python, JavaScript y PHP.
|
9
|
|
9
|
|
10
|
|
10
|
|
11
|
-En este experiencia de laboratorio, practicarás la definición de clases y la implementación de sus métodos mientras completas un programa que implementa un analizador de redes (*network sniffer*) simple. Cada dato que tu computadora recibe y envía a través de la red se estructura como un paquete de red (“network packet”). El analizador de redes es una aplicación comúnmente utilizada por especialistas de redes y *hackers* para inspeccionar esos paquetes. El software escucha las comunicaciones que pasan por el interfaz de redes de tu computadora y las presenta como datos en formato estructurado. Cada paquete contiene múltiples informaciones necesarias para garantizar su comunicación, tales como la dirección de fuente y destino. Por esto, es común en programación representar los paquetes usando objetos u otros tipos de data estructurada. En los ejercicios de este laboratorio crearás clases para paquetes de red. Una vez las clases y sus métodos hayan sido correctamente implementados, podrás correr la aplicación del analizador de redes y ver con lujo de detalle las comunicaciones que pasan por tu interfaz de redes cada vez que accedes una página web.
|
|
|
|
|
11
|
+En este experiencia de laboratorio, practicarás la definición de clases y la implementación de sus métodos mientras completas un programa que implementa un **analizador de redes** (*network sniffer*) simple. Cada dato que tu computadora recibe y envía a través de la red se estructura como un paquete de red (“network packet”). El analizador de redes es una aplicación comúnmente utilizada por especialistas de redes y *hackers* para inspeccionar esos paquetes. El software escucha las comunicaciones que pasan por el interfaz de redes de tu computadora y las presenta como datos en formato estructurado. Cada paquete contiene múltiples informaciones necesarias para garantizar su comunicación, tales como la dirección de fuente y destino. Por esto, es común en programación representar los paquetes usando objetos u otros tipos de data estructurada. En los ejercicios de este laboratorio crearás clases para paquetes de red. Una vez las clases y sus métodos hayan sido correctamente implementados, podrás correr la aplicación del analizador de redes y ver con lujo de detalle las comunicaciones que pasan por tu interfaz de redes cada vez que accedes una página web.
|
12
|
|
12
|
|
13
|
|
13
|
|
14
|
|
14
|
|
|
|
|
|
48
|
|
48
|
|
49
|
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.
|
49
|
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.
|
50
|
|
50
|
|
51
|
-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).
|
|
|
|
|
51
|
+Los atributos y métodos de una clase pueden tener uno de los siguientes niveles de acceso: *private*, *protected* y *public*. Los miembros de datos que se declaran *public* pueden ser leidos y modificados desde cualquier función (inclusive de funciones externas). Los miembros de datos **private** solo pueden ser leidos o modificados por las funciones miembro de la clase. Si no se especifica lo contrario, los atributos y métodos definidos en una clase serán privados. Los miembros de datos *protected* solo pueden ser leidos/modificados por funciones miembro de la clase o de clases hijas.
|
52
|
|
52
|
|
53
|
Lo siguiente es el esqueleto de la declaración de una clase:
|
53
|
Lo siguiente es el esqueleto de la declaración de una clase:
|
54
|
|
54
|
|