UNIDAD 6: PROGRAMACIÓN ORIENTADA A OBJETOS

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
UNIDAD 6: PROGRAMACIÓN ORIENTADA A OBJETOS por Mind Map: UNIDAD 6: PROGRAMACIÓN ORIENTADA A OBJETOS

1. Cap4: Cadenas de texto: la clase string

1.1. 4.1: Definición y lectura desde teclado

1.1.1. String se usa para manipular cadenas de texto

1.1.2. Se puede manipular como cualquier otro dato nativo

1.1.2.1. SE debe usar getline(cin,texto)

1.1.2.2. No se debe usar cin>>texto

1.2. 4.2: Longitud de la cadena

1.2.1. Para averiguar la cantidad de letras que contiene una cadena de texto, añadiremos

1.2.1.1. .length() a su nombre

1.3. 4.3: Acceder letra a letra

1.3.1. Se puede acceder a una cierta posición de una cadena, de igual forma que si se tratara de un array, por medio de corchetes o a través de

1.3.1.1. .at()

1.4. 4.4: Subcadenas

1.4.1. Es posible extraer un fragmento de una cadena(lo que denominamos subcadena)

1.4.1.1. empleando .substr(inicio, longitud)

1.5. 4.5: Unir (concatenar) cadenas

1.5.1. Para unir cadenas podemos emplear

1.5.1.1. +

1.5.1.2. .append

1.5.1.3. .assign

2. Cap 5: EStructuras dinámicas: las clases queue, stack,list, vector y map

2.1. 5.1: EStructuras dinámicas frente a estructuras estáticas

2.1.1. Los arrays tienen la limitación del tamaño que debe establecerse desde el inicio, puesto que no puede modificarse fácilmente con posterioridad.

2.2. 5.2: Una cola

2.2.1. Es una de las estrucuturas dinámicas más sencillas

2.2.1.1. Sirve para colocar un elemento al final de la "cola" de elementos que ya hemos hecho

2.2.1.1.1. Se escribe Queue

2.3. 5.3: Una pila

2.4. 5.4: Una lista con acceso secuencial

2.4.1. Cada elemento tiene un único "anterior" y un único "posterior". Sin embargo, es más lentyo para leer datos de cualquier posición ya que conllevaría recorrer todas las posiciones intermedias

2.4.1.1. list

2.5. 5.5.: Listas con acceso directo

2.5.1. En ocasiones es interesante acceder a datos de cualquier posición, como si se tratara de un array, pero sin las limitaciones del tamaño de estos

2.5.1.1. Para ello se incluye la clase "vector"

2.5.1.1.1. Está diseñada para facilitaear el acceso a cualquier posición

2.6. 5.6: Tablas Hash

2.6.1. No siempre resulta cómodo acceder a los datos del programam a opartir de una posición numérica, en ocasiones será deseable usar como índice

2.6.1.1. Por ejemplo, si se desea almacenar datoas como el nomnbre y la cantidad de habitantes de una capital, se podría emplear un array

2.6.1.1.1. struct

2.6.1.1.2. tabla hash

3. Cap 6: Programas a partir de varias fuentes

3.1. Cap 1: Estructura básica de un programa a partir de varias fuentes

3.1.1. Como modelo de implementación de un programa a partir de varias fuentes distintos

3.1.1.1. En primer lugar, será necesario dividir cada clase en dos ficheros:

3.1.1.1.1. Un fichero de cabecera: contendrá los atributos y el "prototipo" de los métodos

3.1.1.1.2. Un fichero de implementación: contendrá los detalles reales del funcionamiento de los métodos.

3.2. Cap 2: Los problemas de las inclusiones múltiples

3.2.1. El fichero de cabecera tiene dos complicaciones:

3.2.1.1. No es recomendable añadir un using namespace std, ya que esto conllevaría que se estuviera incluyendo en todos los ficheros

3.2.1.2. El fichero titulo.h se incluye tanto desde main como desde TituloCentrado.h. ESto puede provocar errores de compilación.

3.3. Cap 3: Compilar un proyecto formado por varias fuentes

3.3.1. SE deben compilar los nombres de todos los ficheros cpp.

4. Cap 7: Diseño de clases

4.1. Cap 1: Descripción del problema

4.1.1. Uno de los métodos con los que se puede plantear dicha descomposición en clases consiste en , elaborar como primer paso, una descripción del problema en lenguaje natural.

4.2. Cap 2: Búsqueda de objetos y acciones

4.2.1. El segundo paso consiste en diferenciar con dos colores para destacar los nombres y los verbos que aparecen

4.3. Cap 3: Asignación de métodos y atributos a objetos

4.3.1. A partir de la descripción anterior, habrá que deducir qué clases de objetos aparecen en el programa, como se relacionan entre ellos y qué acciones debe cada uno.

4.4. Cap 4: Representación como diagrama de clases

4.4.1. Para representar esto existe un estándar denominado "diagrama de clases".

4.4.1.1. Así cada tipo de objeto se representará dentro de un rectángulo.

5. CAP 1: tipos de datos simples

5.1. 1.1: Rango de un número entero

5.1.1. En la mayoría de comiladores de C++el siguiente programam mostrará un resultado incorrecto puesto que desborda el rango de datos admisibles

5.1.1.1. para un hit

5.2. 1.2: Otros tamaños de números enteros

5.2.1. cuando se desea utilizar datos cuyos valores están por encima de los 2000 millones , habrá que optar por

5.2.1.1. enteros cortos(short)

5.2.1.2. enteros largos (long)

5.2.1.3. o extra largos(long long)

5.3. 1.3: Enteros positivos y negativos

5.3.1. Todos los tipos de datos enteros se guardan con signo si no se indica lo contrario.

5.3.2. Como alternativa se puede añadir el modificador de tipo

5.3.2.1. unsigned

5.3.2.2. signed

5.4. 1.4: Carácter

5.4.1. El tipo de datos Char permite alamacenar un carácter.

5.4.1.1. Si se desea almacenar o comparar un valor a los mismos, será necesario añadir comillas simples

5.4.1.1.1. ""

5.5. 1.5: Verdadero o falso: booleanos

5.5.1. Por ejmplo se utiliza para crear claves acceso

5.5.1.1. bool

5.6. 1.6: Contacto con las cadenas de texto

5.6.1. El tipo de datos string corresponde a un objeto, lo que se estudiará con mayor grado de detalle más adelante.

6. Cap 2:Registros (struct)

6.1. 2.1: Datos formados por varios campos

6.1.1. Un registro es una agrupación de datos los cuales no son necesariamente del mismo tipo.

6.1.1.1. se definen con la orden "struct"

6.1.2. Primero se declara como va a ser el registro y luego se definen las variables de ese tipo

6.2. 2.2: Arrays de registros

6.2.1. Es posible almacenar los datos de varios elementos si se combinan los struct con el de los arrays.

7. Cap 3: Clases

7.1. 3.1: Apariencia de una clase

7.1.1. Las clases se declaran con la orden class para detallar todas las características (tanto datos como acciones), que serán comunes a una serie de acciones

7.1.1.1. class

7.2. 3.2: Herencia

7.2.1. Unos objetos pueden heredar de otros, y solo será necesario detallar las novedades

7.2.1.1. El resto de detalles se tomarán de la clase que se está heredando

7.2.1.1.1. class Heredar: public Heredada

7.3. 3.3: Ocultación de detalles

7.3.1. En general no se considera buena idea que los atributos sean públicos

7.3.2. Es preferible crear métodos que permitan leer un valor y modificarlo.

7.3.2.1. Esto permite cambiar detalles internos sin que eso afecte a los programas a los que afecta la clase

7.3.2.1.1. Es decir, en resumen estamos ocultando los atributos