SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
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)

Más contenido relacionado

La actualidad más candente

.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup
 
Action script 3_basic
Action script 3_basicAction script 3_basic
Action script 3_basicEdna Rheiner
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooJosé Antonio Sandoval Acosta
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Renny Batista
 
8. Uso De Variables De Tipo Referencia
8.  Uso De Variables De Tipo Referencia8.  Uso De Variables De Tipo Referencia
8. Uso De Variables De Tipo ReferenciaEsteban Soraire
 
8. Uso De Variables De Tipo Referencia
8.  Uso De Variables De Tipo Referencia8.  Uso De Variables De Tipo Referencia
8. Uso De Variables De Tipo ReferenciaEsteban Soraire
 
Métodos POO
Métodos POOMétodos POO
Métodos POO1da4
 
Poo Java
Poo JavaPoo Java
Poo Javaeccutpl
 
Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.Juan Carlos Espinoza
 

La actualidad más candente (20)

Java Basico Platzi
Java Basico PlatziJava Basico Platzi
Java Basico Platzi
 
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
 
Poo 1
Poo 1Poo 1
Poo 1
 
Action script 3_basic
Action script 3_basicAction script 3_basic
Action script 3_basic
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma poo
 
Unidad 2 clases y objetos
Unidad 2 clases y objetosUnidad 2 clases y objetos
Unidad 2 clases y objetos
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Operadores poo
Operadores pooOperadores poo
Operadores poo
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
8. Uso De Variables De Tipo Referencia
8.  Uso De Variables De Tipo Referencia8.  Uso De Variables De Tipo Referencia
8. Uso De Variables De Tipo Referencia
 
8. Uso De Variables De Tipo Referencia
8.  Uso De Variables De Tipo Referencia8.  Uso De Variables De Tipo Referencia
8. Uso De Variables De Tipo Referencia
 
Programacion kmi
Programacion kmiProgramacion kmi
Programacion kmi
 
6 Curso de POO en Java - clases y objetos
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetos
 
Métodos POO
Métodos POOMétodos POO
Métodos POO
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
7. Fundamentos De Oo
7.  Fundamentos De Oo7.  Fundamentos De Oo
7. Fundamentos De Oo
 
Clases y Objetos
Clases y ObjetosClases y Objetos
Clases y Objetos
 
Poo Java
Poo JavaPoo Java
Poo Java
 
Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.
 

Similar a Presentacion3

Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a ObjetosClase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetosdesimartinez
 
Unidad 1 algoritmos y programas
Unidad 1 algoritmos y programasUnidad 1 algoritmos y programas
Unidad 1 algoritmos y programasRoberth Camana
 
Introduccion_a_Python_000000000000000.pdf
Introduccion_a_Python_000000000000000.pdfIntroduccion_a_Python_000000000000000.pdf
Introduccion_a_Python_000000000000000.pdfFranciaMascarell
 
Ingeniería de requerimientos i
Ingeniería de requerimientos iIngeniería de requerimientos i
Ingeniería de requerimientos iPablo Macon
 
ALP Unidad 2: Representación de la información en datos simples y estructuras...
ALP Unidad 2: Representación de la información en datos simples y estructuras...ALP Unidad 2: Representación de la información en datos simples y estructuras...
ALP Unidad 2: Representación de la información en datos simples y estructuras...Franklin Parrales Bravo
 
03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQueryDanae Aguilar Guzmán
 
Programacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonProgramacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonwozgeass
 
Python 3
Python 3Python 3
Python 3CHREAR
 
Net1 capitulo ii - variables de memoria & array
Net1   capitulo ii - variables de memoria & arrayNet1   capitulo ii - variables de memoria & array
Net1 capitulo ii - variables de memoria & arrayJose Ponce
 

Similar a Presentacion3 (20)

Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a ObjetosClase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Unidad 1 algoritmos y programas
Unidad 1 algoritmos y programasUnidad 1 algoritmos y programas
Unidad 1 algoritmos y programas
 
C# Diferencias
C# DiferenciasC# Diferencias
C# Diferencias
 
Introduccion_a_Python_000000000000000.pdf
Introduccion_a_Python_000000000000000.pdfIntroduccion_a_Python_000000000000000.pdf
Introduccion_a_Python_000000000000000.pdf
 
Aprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación PythonAprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación Python
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Diseño modelo er
Diseño modelo erDiseño modelo er
Diseño modelo er
 
Ingeniería de requerimientos i
Ingeniería de requerimientos iIngeniería de requerimientos i
Ingeniería de requerimientos i
 
ALP Unidad 2: Representación de la información en datos simples y estructuras...
ALP Unidad 2: Representación de la información en datos simples y estructuras...ALP Unidad 2: Representación de la información en datos simples y estructuras...
ALP Unidad 2: Representación de la información en datos simples y estructuras...
 
Java teoría
Java teoríaJava teoría
Java teoría
 
Programación
ProgramaciónProgramación
Programación
 
Visualfoxpro
VisualfoxproVisualfoxpro
Visualfoxpro
 
03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery
 
Algoritmos y programas
Algoritmos y programasAlgoritmos y programas
Algoritmos y programas
 
Programacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonProgramacion Orientada a Objetos en python
Programacion Orientada a Objetos en python
 
Python 3
Python 3Python 3
Python 3
 
Tipos de datos Java
Tipos de datos JavaTipos de datos Java
Tipos de datos Java
 
Javascript
JavascriptJavascript
Javascript
 
Net1 capitulo ii - variables de memoria & array
Net1   capitulo ii - variables de memoria & arrayNet1   capitulo ii - variables de memoria & array
Net1 capitulo ii - variables de memoria & array
 

Más de Actuaria, Facultad de Ciencias, UNAM (9)

Diagrama er extendido
Diagrama er extendidoDiagrama er extendido
Diagrama er extendido
 
Presentacion6
Presentacion6Presentacion6
Presentacion6
 
Triangulo
TrianguloTriangulo
Triangulo
 
Tema4 buenas practicas
Tema4 buenas practicasTema4 buenas practicas
Tema4 buenas practicas
 
Tema3 modelo entidadrelacion
Tema3 modelo entidadrelacionTema3 modelo entidadrelacion
Tema3 modelo entidadrelacion
 
Tema2 bases dedatosrelacional
Tema2 bases dedatosrelacionalTema2 bases dedatosrelacional
Tema2 bases dedatosrelacional
 
Tema 1 base de datos
Tema 1   base de datosTema 1   base de datos
Tema 1 base de datos
 
P1
P1P1
P1
 
Presentacion1
Presentacion1Presentacion1
Presentacion1
 

Presentacion3

  • 1. 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
  • 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 a Objetos Cómo determinar los Objetos relevantes?
  • 5. 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.
  • 6. 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?
  • 7. 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.
  • 8. 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 !
  • 9. 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.
  • 10. Diseño Orientada a Objetos • Obtener la lista de objetos candidatos • Filtrar la lista • Determinar atributos • Determinar métodos
  • 11. 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.
  • 12. Diseño Orientada a Objetos: Clase Nombre de la clase Atributos Métodos
  • 13. 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
  • 14. 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}
  • 15. 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
  • 16. Diseño Orientado a Objetos: Herencia Persona nombre fechaNacimiento direccion Cliente codigoCliente compras Articulo código precio porcentajeDescuento fabricante Camisa Modelo Talla color
  • 17. 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.
  • 18. 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.
  • 19. 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) } }
  • 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 En java 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)