Contenido 
• Determinar los objetos 
relevantes para un problema en 
particular 
• Atributos y métodos 
• Definición y diseño de clase 
• Definición de herencia 
• Variables y Constantes 
• Variables Primitivas 
• Tipos primitivos
Orientación a Objetos 
Paradigmas de 
Programación 
Programación Declarativa Programación Imperativa 
Funcional Orientada a Objetos 
Lógica Visual, Orientada a Eventos, 
Orientada a Aspectos, etc.
Orientación a Objetos 
• Es un paradigma de programación que usa objetos y sus 
interacciones, para diseñar aplicaciones y programas 
informáticos. 
• Está basado en varias técnicas, incluyendo herencia, 
abstracción, polimorfismo y encapsulamiento. 
• Simula es el primer lenguaje de POO. 
• Su uso se popularizó a principios de la década de los años 
1990. En la actualidad, existe variedad de lenguajes de 
programación que soportan la orientación a objetos: 
Java, C++, Smalltalk
Diseño Orientada a Objetos 
Cómo determinar los Objetos 
relevantes?
Diseño Orientada a Objetos 
Dado el enunciado o texto descriptivo de un problema 
(que surge como parte del análisis): 
1. Obtener una lista de objetos candidatos subrayando 
todos los sustantivos o nombres. 
2. Filtrar o depurar la lista para obtener los objetos 
relevantes para el dominio del problema.
Diseño Orientada a Objetos 
Tips para filtrar la lista de objetos candidatos: 
• Es el objeto necesario para darle solución a algún 
requerimiento mencionado en el enunciado? 
• Es el objeto necesario para la interacción del usuario y el 
sistema? 
• Puede ser un objeto independiente? 
• Es atributo de otro objeto? 
• Esta dentro de los limites del problema? 
• No es sinónimo de otro objeto previamente 
seleccionado?
Diseño Orientada a Objetos 
¿Como determinar los atributos de los objetos? 
En el proceso de depuración de objetos: 
• Determinaremos muchos objetos que serán a su vez 
atributo de otro objeto. 
• Determinaremos atributos de tipo primitivo: enteros, 
reales, booleanos o carácter.
Diseño Orientada a Objetos 
¿Como determinar los métodos de los objetos? 
Dado el enunciado o texto descriptivo de un problema 
que surge como parte del análisis): 
o Obtener una lista de verbos o acciones. 
o Determinar a que objeto de los ya relevantes le 
pertenece. 
Nota: si ese verbo x permite responder con lógica lo 
siguiente: 
¿Que es lo que el objeto y puede hacer? 
El objeto y puede hacer x !
El problema: 
Una cadena de tiendas desea ampliar sus ventas a través de internet. 
Mensualmente generan un catálogo de artículos de vestir, en donde 
muestran la descripción (talla, color, etc.), precio y las promociones. 
El sistema de venta por catálogo deberá registrar todos los datos del 
cliente cuando sea la primera compre vía web. 
Se requiere que se mantenga actualizado el inventario al concretarse 
una compra. La entrega de los productos será vía mensajería en un 
lapso de 3 días hábiles si el cliente se encuentra en el mismo estado y 
de 5 días si esta en uno diferente. Se aceptan solo pagos con tarjetas 
(débito, crédito o monedero electrónico de la tienda.
Diseño Orientada a Objetos 
• Obtener la lista de objetos candidatos 
• Filtrar la lista 
• Determinar atributos 
• Determinar métodos
Diseño Orientada a Objetos: Clase 
• Una construcción que se utiliza como un modelo (o 
plantilla) para crear objetos. 
• En esta estructura se definen las propiedades 
(atributos) y el comportamiento (métodos) de los 
objetos. 
• En diseño para representar una clase se usará un 
rectángulo dividido en 3 partes.
Diseño Orientada a Objetos: Clase 
Nombre de la clase 
Atributos 
Métodos
Diseño Orientada a Objetos: Clase 
• Para el problema visto en clase, “Venta de productos por 
catálogo” identificamos los siguientes objetos relevantes: 
o Cliente 
o Camisa (especialización de Articulo de Vestir) 
o Catalogo 
o Orden de Compra 
o Tarjeta 
o Tienda
Diseño Orientada a Objetos: Clase 
Cliente: 
nombre 
direccion 
telefono 
fechaNacimiento 
ordenesDeCompra 
OrdenCompra: 
fecha 
camisas 
montoTotal 
estado 
tarjeta 
Camisa 
codigo 
precio 
talla 
codigoColor 
modelo{niño, niña, 
dama. caballero}
Diseño Orientado a Objetos 
Herencia: 
• Mecanismo de la POO que permite crear una clase a 
partir de otra existente. 
• A través de la herencia se elimina la redundancia y se 
promueve la reusabilidad. 
• Surgen conceptos como: superclase, subclase, 
generalización, especialización. 
• La Herencia se “detecta” en diseño, a través de la 
generalización o la especialización
Diseño Orientado a Objetos: Herencia 
Persona 
nombre 
fechaNacimiento 
direccion 
Cliente 
codigoCliente 
compras 
Articulo 
código 
precio 
porcentajeDescuento 
fabricante 
Camisa 
Modelo 
Talla 
color
Programación Orientada a Objetos: Clase 
Usando el lenguaje Java: 
• Se debe definir un archivo fuente con la extensión .java 
• El nombre del fuente debe ser exactamente el nombre de la 
clase 
• Esta clase se debe definir con la palabra reservada public. 
• Solo debe existir una clase pública por archivo fuente. 
• En la clase publica vamos a definir el método principal 
llamado main que es por donde comienza la ejecución del 
programa 
• A esta clase con el método main le vamos a llamar Clase 
Principal.
Programación Orientada a Objetos: Clase 
Usando el lenguaje Java: 
• Se debe definir un archivo fuente por cada clase 
resultante de la lista de objetos relevante 
• Generalmente estas clase son públicas 
• No tienen al método main 
• En estas se definen los atributos y métodos que 
tendrán una colección de objetos del mismo tipo.
Programación Orientada a Objetos: Clase 
Clase en Java: El archivo se llama Principal.java 
//Esta es una clase. Solo una publica por archivo 
fuente 
public class Principal { 
/*Este es el método por donde inicia la ejecución de 
un programa java 
*/ 
public static void main(String[] a){ 
//aquí va el código (procesos) 
} 
}
POO: Constantes 
• Valor que no puede ser alterado durante la ejecución de un 
programa. 
• Puede ser declarado e inicializado en dos instrucciones diferentes, 
pero una vez que se ha asignado su valor este no puede variar. 
• Una constante corresponde a una longitud fija de un área reservada 
en la memoria principal del computador, donde el programa 
almacena valores fijos. 
• Por ejemplo: 
o El valor de PI = 3.1416 
o Por conveniencia, el nombre de las constantes suele escribirse 
en mayúsculas en la mayoría de lenguajes.
POO: Constantes 
En java una constante se declara usando la palabra 
reservada final: 
public class Circunferencia { 
public double radio; 
public final double PI= 3.1416; 
}
POO: Variables 
• Estructuras de datos que, como su nombre indica, pueden 
cambiar de contenido a lo largo de la ejecución de un 
programa. 
• Una variable corresponde a un área reservada en la memoria 
principal del computador pudiendo ser de longitud: 
o Fija: Cuando el tamaño de la misma no variará a lo largo de 
la ejecución del programa. Típicamente enteros, reales, 
caracter. 
o Variable.‐ Cuando el tamaño de la misma puede variar a lo 
largo de la ejecución. Típicamente colecciones de datos
POO: Variables 
• A través de las variables y constantes se programan los 
atributos de una clase de objetos. En java existen dos tipos de 
variables: 
o Variable primitivas 
o Variable objetos (variable de instancia, variable miembro, 
variable referencia)
POO: Variables primitivas 
• Son las declaradas como tipos primitivos. 
• El Lenguaje de Programación Java define ocho: 
o Lógicos – boolean 
o Textual – char 
o Enteros – byte, short, int, y long 
o Punto Flotante – double y float
POO: Variables primitivas 
Lógicas – boolean 
• Los tipos de datos booleanos tienen dos posibles 
valores: true y false. 
• Por ejemplo la siguiente sentencia: 
boolean cierto = true; 
• Por defecto una variable booleana es inicializada 
false.
POO: Variables primitivas 
Textual – char y String 
Char 
• Representa a un carácter en Unicode de 16 bits. 
• Debe tener su literal encerrado en comillas simples (’ ’) 
• Ejemplos: 
o 'a'  letra a 
o 't'  Un tabulador 
o 'u????'  Un caracter especificado en el Unicode 
????. Por ejemplo : ’u03A6’ es la letra griega phi [Φ])
POO: Variables referencia 
Textual – char y String 
String 
• NO es un tipo de dato primitivo. Es una Clase. 
• Un literal String va encerrado en comillas dobles (" "). 
• La forma mas sencilla de crear un objeto String es: 
String saludos = “Buenos dias !! n"; 
String mensajeError = “Registro no encontrado!“;
POO: Variables primitivas 
Enteros – byte, short, int, and long 
• Se usan en tres formas – Decimal, octal, o 
hexadecimal: 
o 2  Entero 2 en decimal 
o 077  El prefijo 0 indica un entero en Octal 
o 0xBAAC  El prefijo 0x indica un entero en 
Hexadecimal 
Los enteros por defecto son de tipo int 
Literales con sufijo L o l son de tipo long
POO: Variables primitivas 
• Los tipos de datos enteros tienen un rango de 
representación de: [‐2n‐1] a [2n‐1 – 1] 
o 8 bits para un tipo byte 
o 16 bits para un tipo short 
o 32 bits para un tipo int 
o 64 bits para un tipo long
POO: Variables primitivas 
• Punto Flotante – float y double 
• Un literal en punto flotante generalmente posee un 
punto decimal con algunos de los siguientes literales: 
o E o e (agrega un valor exponencial) 
o F o f (float) 
o D o d (double)
POO: Variables primitivas 
Punto Flotante – float y double 
3.14  Un valor double 
6.02E23 Un valor double expresado en exponencial 
2.718F  Un valor float 
123.4E+306D  Un gran valor double con un literal D 
redundante. 
Los punto flotante por defecto son de tipo double y son 
inicializados en 0.0.
POO: Variables primitivas 
Punto Flotante – float y double 
• 32 bits float 
• 64 bits double
POO: Variables primitivas 
1 public class Assign { 
2 public static void main (String args []) { 
3 // declare integer variables 
4 intx, y; 
5 float z = 3.414f; 
6 double w = 3.1415; 
7 boolean truth = true; 
8 char c; 
9 String str; 
10 String str1 = "bye"; 
11 c = 'A'; 
12 str = "Hi out there!"; 
13 x = 6; 
14 y = 1000; 
15 } 
16}
POO: Casting 
• Un casting en una conversión explícita de tipos de 
datos. 
• El compilador “exige” que se realice, cuando detecta 
una asignación de un tipo de mayor rango de 
representación a uno de un rango menor. 
• Si la asignación es de una variable de menor rango a 
otra de mayor rango la conversión es implícita y se 
llama promoción de tipos. 
• El castin consiste en colocar entre paréntesis y en forma 
de prefijo a la variable de rango mayor, el tipo a la cual 
se quiere convertir.
POO: Casting 
: 
long var1; 
short var2; 
var1 = var2; //aquí ocurre promoción de tipos (implícita) 
Promoción 
byte short int long 
Casting requerido 
long var1; 
short var2; 
var2 = (short) var1; //aquí se hace un casting (explicita)
POO: Casting 
: 
double var1; 
float var2; 
var1 = var2; //aquí ocurre promoción de tipos (implícita) 
Promoción 
float double 
Casting requerido 
double var1; 
float var2; 
var2 = (float) var1; //aquí se hace un casting (explicita)

Presentacion3

  • 1.
    Contenido • Determinarlos objetos relevantes para un problema en particular • Atributos y métodos • Definición y diseño de clase • Definición de herencia • Variables y Constantes • Variables Primitivas • Tipos primitivos
  • 2.
    Orientación a Objetos Paradigmas de Programación Programación Declarativa Programación Imperativa Funcional Orientada a Objetos Lógica Visual, Orientada a Eventos, Orientada a Aspectos, etc.
  • 3.
    Orientación a Objetos • Es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. • Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento. • Simula es el primer lenguaje de POO. • Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos: Java, C++, Smalltalk
  • 4.
    Diseño Orientada aObjetos Cómo determinar los Objetos relevantes?
  • 5.
    Diseño Orientada aObjetos Dado el enunciado o texto descriptivo de un problema (que surge como parte del análisis): 1. Obtener una lista de objetos candidatos subrayando todos los sustantivos o nombres. 2. Filtrar o depurar la lista para obtener los objetos relevantes para el dominio del problema.
  • 6.
    Diseño Orientada aObjetos Tips para filtrar la lista de objetos candidatos: • Es el objeto necesario para darle solución a algún requerimiento mencionado en el enunciado? • Es el objeto necesario para la interacción del usuario y el sistema? • Puede ser un objeto independiente? • Es atributo de otro objeto? • Esta dentro de los limites del problema? • No es sinónimo de otro objeto previamente seleccionado?
  • 7.
    Diseño Orientada aObjetos ¿Como determinar los atributos de los objetos? En el proceso de depuración de objetos: • Determinaremos muchos objetos que serán a su vez atributo de otro objeto. • Determinaremos atributos de tipo primitivo: enteros, reales, booleanos o carácter.
  • 8.
    Diseño Orientada aObjetos ¿Como determinar los métodos de los objetos? Dado el enunciado o texto descriptivo de un problema que surge como parte del análisis): o Obtener una lista de verbos o acciones. o Determinar a que objeto de los ya relevantes le pertenece. Nota: si ese verbo x permite responder con lógica lo siguiente: ¿Que es lo que el objeto y puede hacer? El objeto y puede hacer x !
  • 9.
    El problema: Unacadena de tiendas desea ampliar sus ventas a través de internet. Mensualmente generan un catálogo de artículos de vestir, en donde muestran la descripción (talla, color, etc.), precio y las promociones. El sistema de venta por catálogo deberá registrar todos los datos del cliente cuando sea la primera compre vía web. Se requiere que se mantenga actualizado el inventario al concretarse una compra. La entrega de los productos será vía mensajería en un lapso de 3 días hábiles si el cliente se encuentra en el mismo estado y de 5 días si esta en uno diferente. Se aceptan solo pagos con tarjetas (débito, crédito o monedero electrónico de la tienda.
  • 10.
    Diseño Orientada aObjetos • Obtener la lista de objetos candidatos • Filtrar la lista • Determinar atributos • Determinar métodos
  • 11.
    Diseño Orientada aObjetos: Clase • Una construcción que se utiliza como un modelo (o plantilla) para crear objetos. • En esta estructura se definen las propiedades (atributos) y el comportamiento (métodos) de los objetos. • En diseño para representar una clase se usará un rectángulo dividido en 3 partes.
  • 12.
    Diseño Orientada aObjetos: Clase Nombre de la clase Atributos Métodos
  • 13.
    Diseño Orientada aObjetos: Clase • Para el problema visto en clase, “Venta de productos por catálogo” identificamos los siguientes objetos relevantes: o Cliente o Camisa (especialización de Articulo de Vestir) o Catalogo o Orden de Compra o Tarjeta o Tienda
  • 14.
    Diseño Orientada aObjetos: Clase Cliente: nombre direccion telefono fechaNacimiento ordenesDeCompra OrdenCompra: fecha camisas montoTotal estado tarjeta Camisa codigo precio talla codigoColor modelo{niño, niña, dama. caballero}
  • 15.
    Diseño Orientado aObjetos Herencia: • Mecanismo de la POO que permite crear una clase a partir de otra existente. • A través de la herencia se elimina la redundancia y se promueve la reusabilidad. • Surgen conceptos como: superclase, subclase, generalización, especialización. • La Herencia se “detecta” en diseño, a través de la generalización o la especialización
  • 16.
    Diseño Orientado aObjetos: Herencia Persona nombre fechaNacimiento direccion Cliente codigoCliente compras Articulo código precio porcentajeDescuento fabricante Camisa Modelo Talla color
  • 17.
    Programación Orientada aObjetos: Clase Usando el lenguaje Java: • Se debe definir un archivo fuente con la extensión .java • El nombre del fuente debe ser exactamente el nombre de la clase • Esta clase se debe definir con la palabra reservada public. • Solo debe existir una clase pública por archivo fuente. • En la clase publica vamos a definir el método principal llamado main que es por donde comienza la ejecución del programa • A esta clase con el método main le vamos a llamar Clase Principal.
  • 18.
    Programación Orientada aObjetos: Clase Usando el lenguaje Java: • Se debe definir un archivo fuente por cada clase resultante de la lista de objetos relevante • Generalmente estas clase son públicas • No tienen al método main • En estas se definen los atributos y métodos que tendrán una colección de objetos del mismo tipo.
  • 19.
    Programación Orientada aObjetos: Clase Clase en Java: El archivo se llama Principal.java //Esta es una clase. Solo una publica por archivo fuente public class Principal { /*Este es el método por donde inicia la ejecución de un programa java */ public static void main(String[] a){ //aquí va el código (procesos) } }
  • 20.
    POO: Constantes •Valor que no puede ser alterado durante la ejecución de un programa. • Puede ser declarado e inicializado en dos instrucciones diferentes, pero una vez que se ha asignado su valor este no puede variar. • Una constante corresponde a una longitud fija de un área reservada en la memoria principal del computador, donde el programa almacena valores fijos. • Por ejemplo: o El valor de PI = 3.1416 o Por conveniencia, el nombre de las constantes suele escribirse en mayúsculas en la mayoría de lenguajes.
  • 21.
    POO: Constantes Enjava una constante se declara usando la palabra reservada final: public class Circunferencia { public double radio; public final double PI= 3.1416; }
  • 22.
    POO: Variables •Estructuras de datos que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. • Una variable corresponde a un área reservada en la memoria principal del computador pudiendo ser de longitud: o Fija: Cuando el tamaño de la misma no variará a lo largo de la ejecución del programa. Típicamente enteros, reales, caracter. o Variable.‐ Cuando el tamaño de la misma puede variar a lo largo de la ejecución. Típicamente colecciones de datos
  • 23.
    POO: Variables •A través de las variables y constantes se programan los atributos de una clase de objetos. En java existen dos tipos de variables: o Variable primitivas o Variable objetos (variable de instancia, variable miembro, variable referencia)
  • 24.
    POO: Variables primitivas • Son las declaradas como tipos primitivos. • El Lenguaje de Programación Java define ocho: o Lógicos – boolean o Textual – char o Enteros – byte, short, int, y long o Punto Flotante – double y float
  • 25.
    POO: Variables primitivas Lógicas – boolean • Los tipos de datos booleanos tienen dos posibles valores: true y false. • Por ejemplo la siguiente sentencia: boolean cierto = true; • Por defecto una variable booleana es inicializada false.
  • 26.
    POO: Variables primitivas Textual – char y String Char • Representa a un carácter en Unicode de 16 bits. • Debe tener su literal encerrado en comillas simples (’ ’) • Ejemplos: o 'a'  letra a o 't'  Un tabulador o 'u????'  Un caracter especificado en el Unicode ????. Por ejemplo : ’u03A6’ es la letra griega phi [Φ])
  • 27.
    POO: Variables referencia Textual – char y String String • NO es un tipo de dato primitivo. Es una Clase. • Un literal String va encerrado en comillas dobles (" "). • La forma mas sencilla de crear un objeto String es: String saludos = “Buenos dias !! n"; String mensajeError = “Registro no encontrado!“;
  • 28.
    POO: Variables primitivas Enteros – byte, short, int, and long • Se usan en tres formas – Decimal, octal, o hexadecimal: o 2  Entero 2 en decimal o 077  El prefijo 0 indica un entero en Octal o 0xBAAC  El prefijo 0x indica un entero en Hexadecimal Los enteros por defecto son de tipo int Literales con sufijo L o l son de tipo long
  • 29.
    POO: Variables primitivas • Los tipos de datos enteros tienen un rango de representación de: [‐2n‐1] a [2n‐1 – 1] o 8 bits para un tipo byte o 16 bits para un tipo short o 32 bits para un tipo int o 64 bits para un tipo long
  • 30.
    POO: Variables primitivas • Punto Flotante – float y double • Un literal en punto flotante generalmente posee un punto decimal con algunos de los siguientes literales: o E o e (agrega un valor exponencial) o F o f (float) o D o d (double)
  • 31.
    POO: Variables primitivas Punto Flotante – float y double 3.14  Un valor double 6.02E23 Un valor double expresado en exponencial 2.718F  Un valor float 123.4E+306D  Un gran valor double con un literal D redundante. Los punto flotante por defecto son de tipo double y son inicializados en 0.0.
  • 32.
    POO: Variables primitivas Punto Flotante – float y double • 32 bits float • 64 bits double
  • 33.
    POO: Variables primitivas 1 public class Assign { 2 public static void main (String args []) { 3 // declare integer variables 4 intx, y; 5 float z = 3.414f; 6 double w = 3.1415; 7 boolean truth = true; 8 char c; 9 String str; 10 String str1 = "bye"; 11 c = 'A'; 12 str = "Hi out there!"; 13 x = 6; 14 y = 1000; 15 } 16}
  • 34.
    POO: Casting •Un casting en una conversión explícita de tipos de datos. • El compilador “exige” que se realice, cuando detecta una asignación de un tipo de mayor rango de representación a uno de un rango menor. • Si la asignación es de una variable de menor rango a otra de mayor rango la conversión es implícita y se llama promoción de tipos. • El castin consiste en colocar entre paréntesis y en forma de prefijo a la variable de rango mayor, el tipo a la cual se quiere convertir.
  • 35.
    POO: Casting : long var1; short var2; var1 = var2; //aquí ocurre promoción de tipos (implícita) Promoción byte short int long Casting requerido long var1; short var2; var2 = (short) var1; //aquí se hace un casting (explicita)
  • 36.
    POO: Casting : double var1; float var2; var1 = var2; //aquí ocurre promoción de tipos (implícita) Promoción float double Casting requerido double var1; float var2; var2 = (float) var1; //aquí se hace un casting (explicita)