2. Conceptos de clases y objetos
Programación Orientada a Objetos
OBJETOS
Un objeto en POO representa alguna entidad de la vida real, es decir, alguno de los objetos
únicos que pertenecen al problema con el que nos estamos enfrentando, y con el que podemos
interactuar.
Cada objeto, de igual modo que la entidad de la vida real a la que representa, tiene un estado
(es decir, unos atributos con unos valores concretos) y un comportamiento (es decir, tiene
funcionalidades o sabe hacer unas acciones concretas).
3. Atributos
Valores o características de
los objetos
Permiten definir el estado del
objeto u otras cualidades
• Velocidad
• Aceleración
• Capacidad de combustible
Variables
• Marca
• Color
• Potencia
• Velocidad máxima
• Carburante
Constantes
4. Mensajes
• Los objetos se comunican e interaccionen entre sí por medio de mensajes
• Si un objeto desea que otro objeto haga algo le envía un mensaje que puede tener información
adicional en forma de parámetros
• Cuando un objeto recibe un mensaje ejecutará un método u operación
• Componentes de un mensaje
Objeto destinatario del mensaje (miCoche)
Método que se debe ejecutar como respuesta (cambiar marcha)
Parámetros necesarios del método (segunda)
5. Métodos (u operaciones)
Son aquellas funciones que
permite efectuar el objeto y
que nos rinden algún tipo de
servicio durante el transcurso
del programa.
Determinan a su vez como va
a responder el objeto cuando
recibe un mensaje.
• Arrancar motor
• Parar motor
• Acelerar
• Frenar
• Girar a la derecha (grados)
• Girar a la izquierda (grados)
• Cambiar marcha (nueva marcha)
Método argumentos
o parámetros
6. Clases
Una clase es una plantilla implementada en software que describe un conjunto de objetos con
atributos y comportamiento similares.
Conceptos de clases y objetos
Programación Orientada a Objetos
7. Clases
o Cada clase tiene asociado un código
(definición de la clase), que determina:
Los atributos que tienen los objetos de la
clase
Los métodos que pueden ejecutar los
objetos de la clase y cómo lo hacen
o Programar orientado a objetos consiste
en escribir código de clases de objetos
De cada clase pueden crearse múltiples
objetos
Cada objeto tiene valores propios asignados
a los atributos: estado del objeto
8. Definición de clases en C++
void frenar() {
// instrucciones para frenar el coche
};
void acelerar() {
// instrucciones para acelerar el coche
};
void girar_derecha(short grados) {
// instrucciones para girar a la derecha
};
// etc.
}; // fin de definición de la clase Coche
enum Carburante {
diesel, super, sinplomo
};
class Coche {
char* marca;
double vel_max;
int potencia;
Carburante tipo_carburante;
double velocidad;
double aceleracion;
public:
void arrancar() {
// instrucciones para arrancar el coche
};
9. Definición de clases en Java
void frenar() {
// instrucciones para frenar el coche
};
void acelerar() {
// instrucciones para acelerar el coche
};
void girar_derecha(short grados) {
// instrucciones para girar a la derecha
};
// etc.
}; // fin de definición de la clase Coche
class Coche {
// atributos:
String marca;
double vel_max;
int potencia;
String tipo_carburante;
double velocidad;
double aceleracion;
// métodos:
void arrancar() {
// instrucciones para arrancar el
coche
};
10. Tipos de datos
Indican la naturaleza de los datos
Que se pasan como parámetro o que devuelven los métodos
De los atributos de los objetos
Hay algunos básicos (dependen del lenguaje de programación)
int
boolean
double
String
…
Y otros los definen las clases
Objetos de una clase determinada
- Definida por el usuario
- De una librería
11. Un programa en POO
Un programa consta de un conjunto de instancias o ejemplares de objetos (object instances) y
flujo de control principal (main)
Durante la ejecución del programa:
Los objetos se crean y se destruyen
Gestión dinámica de la memoria
Se les solicita a los objetos que ejecuten métodos (operaciones)
12. Un programa en C++
Un programa en Java
main() {
Coche *c=new Coche(); // crea un objeto Coche
c-> arrancar // utiliza el objeto
// ...
dispose(c); // elimina el objeto
}
class Programa {
public static void main(String args[]) {
Coche c=new Coche(); // crea un objeto Coche
c.arrancar(); // utiliza el objeto
// ...
} // se elimina el objeto cuando nadie lo puede
utilizar
// ¡ automáticamente !
}
13. Entornos de programación
Un entorno de programación es un programa o
conjunto de programas que engloban todas las
tareas necesarias para el desarrollo de un
programa o aplicación. Estas tareas son
básicamente las siguientes:
Depuración
Este tipo de entornos incorporan numerosas herramientas, utilidades, aplicaciones ya
desarrolladas, ejemplos, tutoriales, etc. Todas ellas encaminadas a faciltiar y mejorar el
desarrollo.
14. Editores
Un editor es un programa
que nos permite escribir
(editar) las instrucciones del
programa y posteriormente
guardar el programa en un
fichero en un soporte de
almacenamiento.
Cualquier editor de texto se puede utilizar para
programas con la única precaución de que a la hora
de guardar, salvar o almacenar el programa sólo se
almacene el texto sin opciones de formato: negrita,
estilos, itálica, etc.
Lo normal es utilizar un editor especialmente
preparado para la programación. Estos tienen
facilidades para la corrección de errores, destacan
las palabras del lenguaje en colores, y en general
facilitan la labor del programador.
15. Procesadores del lenguaje
Compiladores
Intérpretes
Traductores
Una vez editado nuestro
programa es necesario que este
sea procesado y tranformado en
ódenes que puedan ser
ejecutadas por el ordenador.
Estas órdenes por tanto deben
estar en el único lenguaje que la
máquina entiende: el código
máquina. Para ello son
necesarios los proceadores de
lenguaje cuyo concepto es muy
amplio
16. Compilador
Un compilador es un programa cuyo cometido es realizar la
conversión de un programa escrito en un lenguaje de
programación a su correspondiente equivalente en lenguaje
máquina. El resultado que devuelve un compilador es un
programa que ya puede ser ejecutado por el ordenador destino
sin la necesidad de que el compilador esté presente. Por ejemplo,
el lenguaje Pascal o el lenguaje C son lenguajes de programación
que necesitan ser compilados. Cuando la conversión se realiza
entre el lenguaje ensamblador (Assembly) y el código máquina, el
compilador recibe el nombre específico de Ensamblador
(Assembler).
17. Intérprete
Un intéprete es un programa que convierte línea por línea el
programa escrito en un lenguaje de programación y que a medida
que realiza la conversión ejecuta las instrucciones . Evidentemente
el intérprete no devuelve nada ya que la ejecución se realiza de
forma simultánea. Por este motivo, el intérprete debe estar
presente durante la ejecución. Lenguajes de programación que
tradicionalmente son interpretados son el LISP y el BASIC.
18. Traductor
Un traductor es el nombre que reciben aquellos procesadores de
lenguaje que convierten programas de unos lenguajes a otros pero
no generan código máquina. Por ejemplo hay traductores de
Pascal a C y viceversa.
19. Enlazador
Ficheros fuente
Instrucciones que escribe directamente el programador y que
forman el programa en el lenguaje de programación escogido
Fichero objeto
Resultado de la compilación de estos programas
Fichero ejecutable
Resultado del enlazado
El papel del enlazador es unir en un
único fichero ejecutable el resultado
de todas las compilaciones así como
las bibliotecas estáticas de
funciones. Es frecuente que el
enlazado sea un paso más de la
compilación y que se ejecute
inmediatamente tras la compilación
de todos los ficheros.
Es habitual denominar a cada uno de los ficheros que participan
en el desarrollo de un programa con nombres genéricos que
identifican en qué fase se encuentran:
20. Depuradores
Una vez editado y compilado el programa es
necesario ejecutarlo, pero es habitual que
durante el desarrollo de una aplicación que
generen ficheros ejecutables que aunque
correctos desde un punto de vista sintáctico
no realicen lo que realmente se espera de
por lo que se consideran que no funcionan
correctamente.
Los depuradores (debuggers) son capaces de
ejecutar el programa paso a paso incluyendo
además un conjunto de facilidades que permiten
observar el valor de las variables y estructuras de
datos permitiendo así una mejor localización de
errores no evidentes.
22. Eclipse se trata de un entorno de
programación de código abierto y
multiplataforma. Está soportado por una
comunidad de usuarios lo que hace que
nos sirva para casi cualquier lenguaje, en
este aspecto es de lo mejores. Sirve para
Java, C++, PHP, Perl y un largo etcétera.
También nos permite realizar aplicaciones
de escritorio y aplicaciones web por lo que
nos brinda una gran versatilidad.
Netbeans Se trata de otro
entorno multilenguaje y
multiplataforma en el cual
podemos desarrollar software de
calidad. Con él podemos crear
aplicaciones web y de escritorio,
además de contar con plugins
para trabajar en Android.
Visual Studio fue diseñado por
Microsoft y es uno de los mejores
entornos de programación que
existe siempre y cuando utilices
sus lenguajes. han creado
también un Visual Studio
Comunity que nos permite hacer
aplicaciones web y de escritorio y
ayuda mucho al programador.
23. JetBrain no es un entorno
concreto, es una compañía que
crea entornos de programación,
libre y crean entornos para
multitud de lenguajes como son
Java, Ruby, Python, PHP, SQL,
Objective-C, C++ y JavaScript.
También están desarrollando IDE’s
para C# y GO
QtCreator es un entorno de
programación para C++ usan el
framework de QT, es un entorno amigable.
También es un entorno multiplataforma
programado en C++, JavaScript y QML.
Este IDE está diseñado específicamente
para utilizar el framework de QT, que por
otra parte es un muy interesante ya que
nos permite hacer aplicaciones
multiplataforma de una manera sencilla y
rápida
CodeLite es un IDE de código
abierto y libre bajo la licencia GNU
y para diversos sistemas
operativos, el entorno de
desarrollo integrado usa
wxWidgets para su interfaz gráfica,
ya que al cumplir con la filosofía de
código abierto usa herramientas
completamente libres.