Aguacate 1
Aguacate 1
Aguacate 1
LENGUAJES DE PROGRAMACIÓN
ORIENTADA A OBJETOS
PARTICIPANTE:
Ada, C++, C#, VB.NET, Clarion, Delphi, Eiffel, Java, Lexico (en
castellano), Objective-C, Ocaml, Oz, PHP, PowerBuilder, Python, Ruby y
Smalltalk.
¿Qué es la POO?
objetos
clases
Herencia
Envío de mensajes
1. Objetos
Los objetos de Software, al igual que los objetos del mundo real,
también tienen características y comportamientos. Un objeto de software
mantiene sus características en una o más "variables", e implementa su
comportamiento con "métodos". Un método es una función o subrutina
asociada a un objeto.
Para redondear estas ideas, imaginemos que tenemos estacionado en
nuestra cochera un Ford Focus color azul que corre hasta 260 km/h. Si
pasamos ese objeto del mundo real al mundo del software, tendremos
un objeto Automóvil con sus características predeterminadas:
Marca = Ford
Modelo = Focus
Color = Azul
Velocidad Máxima = 260 km/h
2. Las clases
Por otro lado, una instancia de una clase es otra forma de llamar a
un objeto. En realidad no existe diferencia entre un objeto y una instancia.
Sólo que el objeto es un término más general, pero los objetos y
las instancias son ambas representación de una clase.
3. Herencia
4. Envío de Mensajes
Características de la POO
Encapsulamiento
Principio de ocultación
Cada objeto está aislado del exterior, es un módulo natural, y cada tipo
de objeto expone una interfaz a otros objetos que especifica cómo pueden
interactuar con los objetos de la clase. El aislamiento protege a las
propiedades de un objeto contra su modificación por quien no tenga derecho
a acceder a ellas, solamente los propios métodos internos del objeto pueden
acceder a su estado. Esto asegura que otros objetos no pueden cambiar el
estado interno de un objeto de maneras inesperadas, eliminando efectos
secundarios e interacciones inesperadas. Algunos lenguajes relajan esto,
permitiendo un acceso directo a los datos internos del objeto de una manera
controlada y limitando el grado de abstracción. La aplicación entera se
reduce a un agregado o rompecabezas de objetos.
Polimorfismo
Herencia
Las clases no están aisladas, sino que se relacionan entre sí, formando
una jerarquía de clasificación. Los objetos heredan las propiedades y el
comportamiento de todas las clases a las que pertenecen. La herencia
organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los
objetos ser definidos y creados como tipos especializados de objetos
preexistentes. Estos pueden compartir (y extender) su comportamiento sin
tener que volver a implementarlo. Esto suele hacerse habitualmente
agrupando los objetos en clases y estas en árboles o enrejados que reflejan
un comportamiento común. Cuando un objeto hereda de más de una clase
se dice que hay herencia múltiple.
Recolección de basura
ActionScript
ActionScript 3
Ada
C++
C#
Clarion
D
Gambas
Harbour
Eiffel
Java
Objective-C
Ocaml
Oz
R
PowerBuilder
Python
Ruby
Magik (SmallWorld)
Vala
Visual BASIC.NET
Visual Objects
XBase++
Lenguaje DRP
Bueno, vamos a dejar tranquilos a los perritos hasta aquí, y ahora explicar el
por qué enumerar estas características de nuestros amigos caninos.
En primer lugar podemos darnos cuenta que "el objeto perro" tiene
características (1, 2), puede realizar acciones (3, 4, 5, 6, 7) y tiene cierto tipo
de relación con otros objetos (8, 9, 10).
No olviden que todo perro es distinto, es decir, aunque compartan
características, no todos pertenecerían a la misma raza, o al mismo dueño, o
no vivirían en el mismo lugar, etc.
Es aquí cuando surge algo llamado "Clase". Todos los perros del mundo,
pertenecerían a la "Clase Perro". Y cada uno de los perros seria en si un
"Objeto Perro", que pertenece a la "Clase Perro".
Ahora profundizando un poco mas en estos términos. Cuando uno
programa con Java, lo que principalmente hace es crear clases, de las
cuales se crean objetos. Un código de ejemplo para entender esto seria:
class Perro{
String nombre;
String raza;
boolean pulgas;
}
Perro perrito1=new Perro();
Perro perrito2=new Perro();
Conceptos básicos de la programación orientada a objetos
Java
Java – clases
Java – datos
Java – expresiones
Disyunción
!
Negación
&&
true
false
||
true
false
!
false
true
Operador
Descripción
Asoc
() [] .
Paréntesis y punto
I
Incremento y decremento (post)
++ --
Incremento y decremento (pre)
D!
Negación
-+
Menos y más unarios
new
Operador para crear objetos
(tipo)
Conversión explícita de tipo
*/%
Multiplicación, división, residuo
+-
Suma, resta
instanceof <, <=, >, >=
Operadores de relación
== !=
Operadores de igualdad
&&
Conjunción
||
Disyunción
?:
Operador condicional
= op =
Asignación
Precedencia de operadores de mayor a menor
ANEXOS