SlideShare una empresa de Scribd logo
1 de 27
Unidad 1: Paradigma de la
Programación-Orientación a
Objetos
Autor(es):
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Programación Orientada a Objetos
Mg. Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Aguaszoft@Outlook.es
“Si quieres darlo todo en esta vida,
piensa en positivo” –
(Anónimo)
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Programación Orientada a Objetos
Resultado de Aprendizaje
• Solucionar problemas aplicando el razonamiento lógico, con
algoritmos y procedimientos adecuados.
Contenidos
• Introducción
• Objetivos
• Desarrollo de Contenidos
• Conclusiones
• Bibliografía
1.2 Representación gráfica de objetos
Objetivos
• Adquirir los conceptos básicos relacionados con la P.O.O.
• Reconocer las características de la P.O.O.
• Conocer la historia de los lenguajes O.O.
Creación de Objetos
• Declaración
o No crea el objeto, sólo notifica al compilador el
tipo de la variable
• Creación
o Crear un ejemplar de una clase
• Asignación de valor inicial (inicialización)
o Por medio de constructores
Declaración
Tipo nombre;
Clase o interfaz
variable
(el valor es una referencia)
Creación del objeto
• Creación de un ejemplar de una clase
new Clase (parámetros)
Crea el objeto y regresa una referencia
(Separa la memoria para almacenarlo) Constructor de la clase
(método con el mismo
nombre)
en caso necesario
(opcionales)
Inicialización del objeto
• Por medio de constructores
nombre = new Clase (parámetros);
Referencia al objeto
en memoria
Constructores
• “Métodos” con el mismo nombre de la
clase
• No tienen tipo de regreso, no regresan
ningún valor
• Una clase puede tener varios
constructores, todos con el mismo
nombre, pero diferente cantidad y/o tipo
de parámetros
• Java provee un constructor por omisión
(default): Clase ()
Utilización de objetos
• Los objetos se pueden usar después de
que son creados
• Manipular sus variables
o objeto.variable
• Llamar a sus métodos
o objeto.método (parámetros)
• Se puede controlar el acceso a variables y
métodos de un objeto . . . . . . .
Garbage Collection
• La creación y destrucción de objetos es
tediosa y propensa a errores
• El proceso de liberación de memoria es
automatizado en Java
• Más práctico y libera al programador de
esta tarea
• Disminución de errores de programación
(bugs)
finalize()
• Método que se ejecuta antes de que la
máquina virtual destruya al objeto
• Todos los objetos tienen uno por default
• Util para liberar recursos del sistema
• No se puede asegurar que se ejecutará en
un momento determinado
finalize()
protected void finalize () throws Throwable{
x = null;
y.close();
super.finalize();
}
Al final llamar al finalize
de la superclaseLiberar recursos del sistema
archivos, sockets, etc.
Clases
public class Rectangulo{
int x, y;
int ancho, alto;
public Rectangulo(){
x = 0;
y = 0;
ancho = 100;
alto = 100;
}
public void mueve(int x, int y){
this.x = x;
this.y = y;
}
public void cambiaTamano(int ancho, int alto){
this.ancho = ancho;
this.alto = alto;
}
protected void finalize () throws Throwable{
x = null;
y.close();
super.finalize();
}
}
Declaración
Cuerpo
Variables
Constructor
Métodos
Limpieza
Declaración
• Modificadores
o nada, public, abstract, final
• extends
o identifica superclase
• implements
o identifica interfaz que se debe de implementar
modificador class UnaClase extends Superclase implements Interfaz{}
Convenciones
• Nombres de clases
o Primera letra mayúscula y cada palabra subsiguiente
comienza con mayúscula, sin espacios
o Sustantivos cosas
o ClaseDeVariasPalabras
• Nombres de métodos y variables
o Primera letra minúscula y cada palabra subsiguiente
comienza con mayúscula, sin espacios
o Verbos acciones
o variableDeVariasPalabras
Cuerpo
• Constructores
• Métodos
• Variables
• finalize()
Las variables y métodos de una clase son llamados miembros
de la clase.
Los constructores no son métodos, no son miembros
Constructores
• Mismo nombre de la clase
• Puede haber más de uno (sobrecarga)
• Inicialización del objeto
• Opcional. El compilador crea uno en caso
de que no se especifique en forma
explícita
• Pueden tener variables locales, ciclos y
otros estatutos
Uso de this dentro de
constructores
• Indica “este” objeto
• Sirve para diferenciar variables de la clase
de los parámetros con el mismo nombre
• Está implícito en todos los miembros de la
clase
• También se puede usar en métodos
public Rectangulo(int x, int y){
this.x = x;
this.y = y;
ancho = 100;
alto = 100;
}
Especificadores de acceso para
constructores
• private
o Ninguna otra clase puede crear un objeto de esta clase.
• protected
o Sólo subclases de esta clase pueden crear objetos de esta clase
• public
o Todas las clases pueden crear objetos de esta clase
• package
o Sólo clases del mismo paquete (package) puede crear instancias de esta
clase
Declaración de variables
• Nivel de acceso
o public, protected, package, private
o Discutidos en control de acceso a miembros de una
clase . . . . .
• Atributos
o static, final, transient, volatile
[nivel de acceso] [atributos] tipo nobre;
Especificadores de acceso para
variables
• private
o Solo pueden ser utilizadas dentro de la clase donde son definidas
• protected
o Sólo la clase donde son definidas, subclases de ésta y clases del mismo
paquete pueden acceder a estas variables
• public
o Todas las clases pueden acceder a estas variables
• package
o Sólo clases del mismo paquete pueden acceder estas variables, no
subclases, es especificador por omisión
Atributos de una variable
• static
o variable de clase (no de ejemplar)
• final
o Valor de la variable no puede cambiar (constante)
• transient
o Variable no debe ser serializada
• volatile
o El compilador no efectua ciertas optimizaciones
Métodos
Nivel de
Acceso
Atributos
Tipo que
regresa
Nombre
Paráme-
tros
Throws
Exceptions
public String invierte (String s);
public static int parseInt(String s) throws NumberFormatException;
public static native long currentTimeMillis();
Bibliografía

Más contenido relacionado

La actualidad más candente

Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...Eudris Cabrera
 
Java fundamentos -15 consejos practicos open saturday 2018
Java fundamentos -15 consejos practicos open saturday 2018Java fundamentos -15 consejos practicos open saturday 2018
Java fundamentos -15 consejos practicos open saturday 2018Eudris Cabrera
 
Paradigmas programacion rufino
Paradigmas programacion rufinoParadigmas programacion rufino
Paradigmas programacion rufinoagustin rojas
 
Diseño i realizacion resumen
Diseño  i realizacion resumenDiseño  i realizacion resumen
Diseño i realizacion resumenxoshitha
 
Introduccion poo2
Introduccion poo2Introduccion poo2
Introduccion poo2ayreonmx
 
instrumentos de trabajo
instrumentos de trabajoinstrumentos de trabajo
instrumentos de trabajojorpical
 
Poo1conceptobasicoconinstanciacion
Poo1conceptobasicoconinstanciacionPoo1conceptobasicoconinstanciacion
Poo1conceptobasicoconinstanciacionjlmanmons
 

La actualidad más candente (9)

Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
 
Java fundamentos -15 consejos practicos open saturday 2018
Java fundamentos -15 consejos practicos open saturday 2018Java fundamentos -15 consejos practicos open saturday 2018
Java fundamentos -15 consejos practicos open saturday 2018
 
Paradigmas programacion rufino
Paradigmas programacion rufinoParadigmas programacion rufino
Paradigmas programacion rufino
 
Diseño i realizacion resumen
Diseño  i realizacion resumenDiseño  i realizacion resumen
Diseño i realizacion resumen
 
Introduccion poo2
Introduccion poo2Introduccion poo2
Introduccion poo2
 
Unidad o informatica
Unidad o informaticaUnidad o informatica
Unidad o informatica
 
instrumentos de trabajo
instrumentos de trabajoinstrumentos de trabajo
instrumentos de trabajo
 
Poo1conceptobasicoconinstanciacion
Poo1conceptobasicoconinstanciacionPoo1conceptobasicoconinstanciacion
Poo1conceptobasicoconinstanciacion
 
Poo
PooPoo
Poo
 

Similar a 4-Unidad 1. Paradigma de la Programación-Orientación a Objetos

Programación III (Java) - 01 Introduccion
Programación III (Java) - 01 IntroduccionProgramación III (Java) - 01 Introduccion
Programación III (Java) - 01 IntroduccionAndoni Eguíluz Morán
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxFamiliaAyluardo
 
Java1-Intro.pptbbjjjfdzvñutfdnmj habitación
Java1-Intro.pptbbjjjfdzvñutfdnmj habitaciónJava1-Intro.pptbbjjjfdzvñutfdnmj habitación
Java1-Intro.pptbbjjjfdzvñutfdnmj habitaciónFabiolaCastilloCanci
 
Java introduccion conceptos basicos una mira
Java introduccion conceptos basicos una miraJava introduccion conceptos basicos una mira
Java introduccion conceptos basicos una miraArisbethBernalSalina
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosJosé Antonio Sandoval Acosta
 
Información básica Java
Información básica JavaInformación básica Java
Información básica JavaFordBull2er
 
Programacion orientada a objetos 2
Programacion orientada a objetos 2Programacion orientada a objetos 2
Programacion orientada a objetos 2mellcv
 
Introducción a la programación en Python (día 2)
Introducción a la programación en Python (día 2)Introducción a la programación en Python (día 2)
Introducción a la programación en Python (día 2)CodeSyntax
 

Similar a 4-Unidad 1. Paradigma de la Programación-Orientación a Objetos (20)

S4-P2.pptx
S4-P2.pptxS4-P2.pptx
S4-P2.pptx
 
S4 p2
S4 p2S4 p2
S4 p2
 
S4-POO-2.2 Tipos de Clases
S4-POO-2.2 Tipos de ClasesS4-POO-2.2 Tipos de Clases
S4-POO-2.2 Tipos de Clases
 
S4-Tipos De Clases
S4-Tipos De ClasesS4-Tipos De Clases
S4-Tipos De Clases
 
Programación III (Java) - 01 Introduccion
Programación III (Java) - 01 IntroduccionProgramación III (Java) - 01 Introduccion
Programación III (Java) - 01 Introduccion
 
02 tda1 t2018
02 tda1 t201802 tda1 t2018
02 tda1 t2018
 
S6-Contenedores
S6-ContenedoresS6-Contenedores
S6-Contenedores
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
 
Java1-Intro.pptbbjjjfdzvñutfdnmj habitación
Java1-Intro.pptbbjjjfdzvñutfdnmj habitaciónJava1-Intro.pptbbjjjfdzvñutfdnmj habitación
Java1-Intro.pptbbjjjfdzvñutfdnmj habitación
 
Java introduccion conceptos basicos una mira
Java introduccion conceptos basicos una miraJava introduccion conceptos basicos una mira
Java introduccion conceptos basicos una mira
 
C1 - Conceptos OOP
C1 - Conceptos OOPC1 - Conceptos OOP
C1 - Conceptos OOP
 
S6-POO-3.2 Contenedores Especiales
S6-POO-3.2 Contenedores EspecialesS6-POO-3.2 Contenedores Especiales
S6-POO-3.2 Contenedores Especiales
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
Información básica Java
Información básica JavaInformación básica Java
Información básica Java
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Javascript - 2014
Javascript - 2014Javascript - 2014
Javascript - 2014
 
Programacion orientada a objetos 2
Programacion orientada a objetos 2Programacion orientada a objetos 2
Programacion orientada a objetos 2
 
Java Basico
Java BasicoJava Basico
Java Basico
 
Introducción a la programación en Python (día 2)
Introducción a la programación en Python (día 2)Introducción a la programación en Python (día 2)
Introducción a la programación en Python (día 2)
 
Javascript
JavascriptJavascript
Javascript
 

Más de Luis Fernando Aguas Bucheli (20)

EFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptxEFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptx
 
P-S2.pptx
P-S2.pptxP-S2.pptx
P-S2.pptx
 
EBTS-S1.pptx
EBTS-S1.pptxEBTS-S1.pptx
EBTS-S1.pptx
 
P-S3.pptx
P-S3.pptxP-S3.pptx
P-S3.pptx
 
EBTS-S4.pptx
EBTS-S4.pptxEBTS-S4.pptx
EBTS-S4.pptx
 
P-S4.pptx
P-S4.pptxP-S4.pptx
P-S4.pptx
 
P-S1.pptx
P-S1.pptxP-S1.pptx
P-S1.pptx
 
EBTS-S3.pptx
EBTS-S3.pptxEBTS-S3.pptx
EBTS-S3.pptx
 
EBTS-S2.pptx
EBTS-S2.pptxEBTS-S2.pptx
EBTS-S2.pptx
 
PDIDTI-S7.pptx
PDIDTI-S7.pptxPDIDTI-S7.pptx
PDIDTI-S7.pptx
 
PDIDTI-S4.pptx
PDIDTI-S4.pptxPDIDTI-S4.pptx
PDIDTI-S4.pptx
 
PDIDTI-S2.pptx
PDIDTI-S2.pptxPDIDTI-S2.pptx
PDIDTI-S2.pptx
 
PDIDTI-S1.pptx
PDIDTI-S1.pptxPDIDTI-S1.pptx
PDIDTI-S1.pptx
 
PDIDTI-S8.pptx
PDIDTI-S8.pptxPDIDTI-S8.pptx
PDIDTI-S8.pptx
 
PDIDTI-S6.pptx
PDIDTI-S6.pptxPDIDTI-S6.pptx
PDIDTI-S6.pptx
 
PDIDTI-S5.pptx
PDIDTI-S5.pptxPDIDTI-S5.pptx
PDIDTI-S5.pptx
 
PDIDTI-S3.pptx
PDIDTI-S3.pptxPDIDTI-S3.pptx
PDIDTI-S3.pptx
 
TIC-S4.pptx
TIC-S4.pptxTIC-S4.pptx
TIC-S4.pptx
 
TIC-S3.pptx
TIC-S3.pptxTIC-S3.pptx
TIC-S3.pptx
 
TIC-S2.pptx
TIC-S2.pptxTIC-S2.pptx
TIC-S2.pptx
 

Último

Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfpaola110264
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 

Último (20)

Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 

4-Unidad 1. Paradigma de la Programación-Orientación a Objetos

  • 1. Unidad 1: Paradigma de la Programación-Orientación a Objetos Autor(es): Ciencias de la Ingeniería Carrera de Sistemas de Información Programación Orientada a Objetos Mg. Luis Fernando Aguas Bucheli +593 984015184 @Aguaszoft Laguas@uisrael.edu.ec Aguaszoft@Outlook.es
  • 2. “Si quieres darlo todo en esta vida, piensa en positivo” – (Anónimo) Ciencias de la Ingeniería Carrera de Sistemas de Información Programación Orientada a Objetos
  • 3. Resultado de Aprendizaje • Solucionar problemas aplicando el razonamiento lógico, con algoritmos y procedimientos adecuados.
  • 4. Contenidos • Introducción • Objetivos • Desarrollo de Contenidos • Conclusiones • Bibliografía
  • 6. Objetivos • Adquirir los conceptos básicos relacionados con la P.O.O. • Reconocer las características de la P.O.O. • Conocer la historia de los lenguajes O.O.
  • 7. Creación de Objetos • Declaración o No crea el objeto, sólo notifica al compilador el tipo de la variable • Creación o Crear un ejemplar de una clase • Asignación de valor inicial (inicialización) o Por medio de constructores
  • 8. Declaración Tipo nombre; Clase o interfaz variable (el valor es una referencia)
  • 9. Creación del objeto • Creación de un ejemplar de una clase new Clase (parámetros) Crea el objeto y regresa una referencia (Separa la memoria para almacenarlo) Constructor de la clase (método con el mismo nombre) en caso necesario (opcionales)
  • 10. Inicialización del objeto • Por medio de constructores nombre = new Clase (parámetros); Referencia al objeto en memoria
  • 11. Constructores • “Métodos” con el mismo nombre de la clase • No tienen tipo de regreso, no regresan ningún valor • Una clase puede tener varios constructores, todos con el mismo nombre, pero diferente cantidad y/o tipo de parámetros • Java provee un constructor por omisión (default): Clase ()
  • 12. Utilización de objetos • Los objetos se pueden usar después de que son creados • Manipular sus variables o objeto.variable • Llamar a sus métodos o objeto.método (parámetros) • Se puede controlar el acceso a variables y métodos de un objeto . . . . . . .
  • 13. Garbage Collection • La creación y destrucción de objetos es tediosa y propensa a errores • El proceso de liberación de memoria es automatizado en Java • Más práctico y libera al programador de esta tarea • Disminución de errores de programación (bugs)
  • 14. finalize() • Método que se ejecuta antes de que la máquina virtual destruya al objeto • Todos los objetos tienen uno por default • Util para liberar recursos del sistema • No se puede asegurar que se ejecutará en un momento determinado
  • 15. finalize() protected void finalize () throws Throwable{ x = null; y.close(); super.finalize(); } Al final llamar al finalize de la superclaseLiberar recursos del sistema archivos, sockets, etc.
  • 16. Clases public class Rectangulo{ int x, y; int ancho, alto; public Rectangulo(){ x = 0; y = 0; ancho = 100; alto = 100; } public void mueve(int x, int y){ this.x = x; this.y = y; } public void cambiaTamano(int ancho, int alto){ this.ancho = ancho; this.alto = alto; } protected void finalize () throws Throwable{ x = null; y.close(); super.finalize(); } } Declaración Cuerpo Variables Constructor Métodos Limpieza
  • 17. Declaración • Modificadores o nada, public, abstract, final • extends o identifica superclase • implements o identifica interfaz que se debe de implementar modificador class UnaClase extends Superclase implements Interfaz{}
  • 18. Convenciones • Nombres de clases o Primera letra mayúscula y cada palabra subsiguiente comienza con mayúscula, sin espacios o Sustantivos cosas o ClaseDeVariasPalabras • Nombres de métodos y variables o Primera letra minúscula y cada palabra subsiguiente comienza con mayúscula, sin espacios o Verbos acciones o variableDeVariasPalabras
  • 19. Cuerpo • Constructores • Métodos • Variables • finalize() Las variables y métodos de una clase son llamados miembros de la clase. Los constructores no son métodos, no son miembros
  • 20. Constructores • Mismo nombre de la clase • Puede haber más de uno (sobrecarga) • Inicialización del objeto • Opcional. El compilador crea uno en caso de que no se especifique en forma explícita • Pueden tener variables locales, ciclos y otros estatutos
  • 21. Uso de this dentro de constructores • Indica “este” objeto • Sirve para diferenciar variables de la clase de los parámetros con el mismo nombre • Está implícito en todos los miembros de la clase • También se puede usar en métodos public Rectangulo(int x, int y){ this.x = x; this.y = y; ancho = 100; alto = 100; }
  • 22. Especificadores de acceso para constructores • private o Ninguna otra clase puede crear un objeto de esta clase. • protected o Sólo subclases de esta clase pueden crear objetos de esta clase • public o Todas las clases pueden crear objetos de esta clase • package o Sólo clases del mismo paquete (package) puede crear instancias de esta clase
  • 23. Declaración de variables • Nivel de acceso o public, protected, package, private o Discutidos en control de acceso a miembros de una clase . . . . . • Atributos o static, final, transient, volatile [nivel de acceso] [atributos] tipo nobre;
  • 24. Especificadores de acceso para variables • private o Solo pueden ser utilizadas dentro de la clase donde son definidas • protected o Sólo la clase donde son definidas, subclases de ésta y clases del mismo paquete pueden acceder a estas variables • public o Todas las clases pueden acceder a estas variables • package o Sólo clases del mismo paquete pueden acceder estas variables, no subclases, es especificador por omisión
  • 25. Atributos de una variable • static o variable de clase (no de ejemplar) • final o Valor de la variable no puede cambiar (constante) • transient o Variable no debe ser serializada • volatile o El compilador no efectua ciertas optimizaciones
  • 26. Métodos Nivel de Acceso Atributos Tipo que regresa Nombre Paráme- tros Throws Exceptions public String invierte (String s); public static int parseInt(String s) throws NumberFormatException; public static native long currentTimeMillis();

Notas del editor

  1. Los tres pasos: declaración, creación e incialización se pueden realizar en una sola instrucción. La declaración no crea un objeto, ni separa memoria para su contenido, simplemente es una notificación al compilador para que haga la verificación de que el objeto se usa adecuadamente. Al crear un objeto lo que se obtiene es una referencia al objeto, es decir un dirección donde está localizado el objeto.
  2. Los objetos de una clase son de tipo referencia, es decir, no se maneja el valor sino una referencia al objeto (dirección). Tipo puede ser una clase creada por el programador, una clase ya existente dentro del API de Java, una clase de un API externo al núcleo de Java (creada por alguien externo) o también puede ser una tipo de dato primitivo.
  3. La creación de un objeto regresa una referencia (dirección) al nuevo objeto creado. Además separa la memoria para contener a todo el objeto. El constructor le da un estado inicial al objeto, es decir inicializa las variables pertinentes. Los constructores deben de llevar el mismo nombre de la clase. Los constructores no son métodos, no regresan tipo, pero son muy similares a los métodos. No es necesario programar un constructor para una clase, el copilador provee un constructor por default sin parámetros que no realiza absolutamente nada, Clase(). Al crear un objeto se puede hacer invocando este constructor default.
  4. Al llamar algún constructor de una clase para crear un objeto, la llamada regresa una referencia al objeto creado.
  5. Reglas para la programación de constructores: 1.- Deben de tener el mismo nombre de la clase 2.- No se deben de declarar con tipo de regreso, es decir no regresan ninguna variable 3.- Se pueden declarar varios constructores para una clase, todos con el mismo nombre, la diferencia estriba en el tipo y/o número de parámetros 4.- En caso de que no se programe un constructor, el compilador automáticamente genera uno por omisión, el cual no lleva parámetros y no realiza ninguna instrucción, solamente lo genera para poder invocarlo y respetar la sintaxis impuesta por Java Es importante tener en cuenta que los constructores no son métodos, a pesar de que son muy similares
  6. Para utilizar un objeto es necesario crearlo. Se pueden manipular sus variables, pero esto no es recomendado por la teoría de Programación Orientada a Objetos. Lo que se debe de hacer es programar métodos que regresen valores de variables y métodos que modifiquen valores de variables, de esta manera se protege al objeto de alcanzar algún estado inestable por la asignación directa de valores no permitidos, es decir dentro de los métodos se puede realizar la verificación de que el valor que se quiere asignar a una variable es permitido. Por ejemplo supongamos que tenemos una variable edad dentro de una clase cualquiera, y esta variable representa una edad, en determinado momento se crea un objeto de esta clase (empleado1), y se ejecuta la instrucción: empleado1.x = -1; Como se ve esto llevaría a un estado impredecible del objeto ya que obviamente no se contemplan edades negativas. Para este caso se podría programar el siguiente método: public boolean asignaEdad(int edad){ if (edad < 0) return false; else return true; }
  7. El error más común de programación es olvidar liberar la memoria utilizada por una variable una vez que esta ya no se necesita, esto normalemente lleva a que el sistema se le acabe la memoria si el programador no tiene cuidado de manejar en forma eficiente este escaso recurso. Java libera al programador de esta tediosa tarea, automatizando el proceso, dejando que el programador enfoque su energía y su tiempo a producir programas de calidad.
  8. El método finalize(), pertenece a la clase Object, la cual es la madre de todas las clases, esto implica que cualquier clase hereda este método y lo puede reprogramar. No se puede garantizar cuando se ejecuta este método, ya que el recolector corre en “background” en un thread de baja prioridad. En este método se pueden liberar recursos del sistema que utiliza el objeto, recursos que normalemente no son recolectados por garbage collection, principalmente archivos y sockets.
  9. El método arroja una excepción (Throwable), esto lo cubriremos más adelante. Es importante llamar el finalize de la superclase y que esto se realice como última instrucción del método.
  10. Modificadores: nada: La clase puede ser usada por clases en el mismo paquete public: La clase puede ser usada por cualquier clase abstract: La clase no puede ser instanciada, solamente puede ser superclase, algunos métodos pueden estar programados (son genéricos para las subclases). Otros métodos pueden ser abstractos y deben ser programados por la subclase. final: La clase no puede ser superclase de ninguna clase (por seguridad y diseño) extends: identifica a una superclase, la clase declarada hereda todos los miembros de la superclase, sólo puede haber una superclase, ya que Java no soporta herencia múltiple. implements: Es responsabilidad de la clase programar todos los métodos de las interfaces declaradas. Se pueden declarar varias interfaces separadas por coma. En una interfaz los métodos están declarados mas no programados
  11. private Ninguna otra clase puede crear una instancia de esta clase. Pero la clase puede tener métodos public que creen una instacia y la regresen como una referencia protected Sólo subclases de esta clase pueden crear instancias. Clases independientes no pueden crear instancias esto se hace como protección y modularidad public Todas las clases pueden crear instancias de esta clase. Cualquier clase del programador o de otros paquetes pueden instanciar y utilizar objetos de esta clase package Sólo clases del mismo paquete puede crear instancias de esta clase. En caso de utilizar un paquete se utiliza package para evitar que alguna otra clase cree un objeto, pero clases del mismo paquete puede crear objetos de esta clase para dar modularidad y seguridad