0% encontró este documento útil (0 votos)
42 vistas39 páginas

Programacion II - Semana 01

El curso de Programación II en la Universidad Autónoma de Centro América se centra en la programación orientada a objetos, abordando conceptos como herencia, polimorfismo y manejo de excepciones. Los estudiantes desarrollarán habilidades para crear sistemas de información y resolver problemas informáticos en contextos multidisciplinarios. La evaluación incluye casos prácticos, trabajos de investigación y exámenes, con un enfoque en la aplicación teórica a situaciones reales.

Cargado por

Errol
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
42 vistas39 páginas

Programacion II - Semana 01

El curso de Programación II en la Universidad Autónoma de Centro América se centra en la programación orientada a objetos, abordando conceptos como herencia, polimorfismo y manejo de excepciones. Los estudiantes desarrollarán habilidades para crear sistemas de información y resolver problemas informáticos en contextos multidisciplinarios. La evaluación incluye casos prácticos, trabajos de investigación y exámenes, con un enfoque en la aplicación teórica a situaciones reales.

Cargado por

Errol
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

PROGRAMACIÓN II

SEMANA 1
POO
Bachillerato en Ingeniería de Sistemas
Universidad Autónoma de Centro América
ACTIVIDADES INICIALES

 Bienvenida
 Presentación del docente y de los estudiantes
 Presentación del Programa del Curso
 Evaluación del Curso – Escolaridad y Residencia
 Normativa vigente
 Preguntas

Programación II - Lic.: Errol Vargas M.


ERROL VARGAS MARCHENA

 Bachillerato en Informática Empresarial– UCR


 Licenciatura en Docencia – USJ
 Profesor en el MEP del 2013-2015
 Coordinador Técnico y con la Empresa CTP de Nandayure desde el 2015
 Profesor de la UACA desde 2017
 Conocimiento el programación
 Pascal, Visual Basic, C, C++, C#, Java, Prolog, Transac-SQL, PL/SQL, Unity entre otros
 Analista de Sistemas
 SQL Server, Oracle, Windows, Linux, Inteligencia de Negocios, Inteligencia Artificial
basada en redes neuronales y Algoritmos Genéticos

Programación II - Lic.: Errol Vargas M.


PROGRAMA DE CURSO
DESCRIPCIÓN
 El curso Programación II es de naturaleza teórico-práctico, el mismo
permite exponer al estudiante a la creación de sistemas de
información que aprovechan al máximo las características de los
lenguajes de programación, orientados a objetos como los son
herencia, el polimorfismo, las excepciones, el manejo de archivos, así
como las bases de datos y redes de información.
 Además, se inspeccionan también las posibilidades informáticas que
se tienen en la actualidad para realizar el análisis de problemas
actuales con un enfoque orientado a objetos.
 El curso ofrece capacidad de análisis y resolución de problemas, así
como del conocimiento de las diversas técnicas y elementos de
representación gráfica de soluciones.

Programación II - Lic.: Errol Vargas M.


PROGRAMA DE CURSO
DESCRIPCIÓN
 Asimismo, el estudiante será capaz de desempeñar diferentes roles en
proyectos informáticos, en contextos multidisciplinarios y multiculturales,
tanto locales como globalizados.
 Lograra construir soluciones seguras, oportunas y eficientes para el
intercambio de datos e información entre organizaciones, personas,
sistemas computacionales y dispositivos móviles, aplicado al desarrollo del
ciclo de vida de un sistema en cada una de sus fases desde la entrevista hasta
la implantación del sistema.
 El curso tiene un componente teórico que debe ser aplicado a la realidad y al
día a día de la vida profesional en Ingeniería de Sistemas. Es por ello que se
parte de una base teórica, luego se procede a desarrollar ejercicios prácticos
y la elaboración y resolución de casos reales, buscando la interpretación y
análisis de problemas de diferentes disciplinas.

Programación II - Lic.: Errol Vargas M.


PROGRAMA DE CURSO
OBJETIVO GENERAL
 Aplicar la teoría de la programación orientada a objetos, concurrente
y cliente/servidor, para la solución de problemas específicos, a través
de estrategias de enseñanza-aprendizaje constructivistas junto con
diversas herramientas tecnológicas como lo es un lenguaje de alto
nivel, con el fin de lograr construir soluciones seguras, oportunas y
eficientes para el intercambio de datos e información entre
organizaciones, personas, sistemas computacionales y dispositivos
móviles.

Programación II - Lic.: Errol Vargas M.


PROGRAMA DE CURSO
OBJETIVO ESPECÍFICOS
 Expresar la teoría de la programación orientada a objetos en el
desarrollo de programas de mediana complejidad que requieren el
uso de las principales características de orientación a objetos, como lo
son el encapsulamiento, la herencia y el polimorfismo, mediante
ejercicios prácticos guiados por el profesor, para que el estudiante
fomente su capacidad de análisis y resolución de problemas.
 Usar características avanzadas de programación sobre manejo de
errores, archivos y estructuras complejas de almacenamiento y
multihilos, mediante ejercicios prácticos guiados por el profesor,
desarrollo de mapas conceptuales y elaboración de un caso real, para
que el estudiante adquiera el conocimiento de las diversas técnicas y
elementos de representación gráfica de soluciones.

Programación II - Lic.: Errol Vargas M.


PROGRAMA DE CURSO
OBJETIVO ESPECÍFICOS
 Desarrollar programas concurrentes y cliente/servidor incluyendo
interfaz gráfica, redes y bases de datos como respuesta a problemas
cotidianos que requieren el uso de este tipo de características,
mediante ejercicios prácticos guiados por el profesor y desarrollo de
foros de discusión, con el fin de que el estudiante desempeñe
diferentes roles en proyectos informáticos, en contextos
multidisciplinarios y multiculturales, tanto locales como globalizados.
 Desarrollar un software programado, por medio de un proyecto de
investigación, para que el estudiante tenga el conocimiento de las
herramientas necesarias, en todos los ámbitos y niveles del proceso
de programación, para que el estudiante desarrolle plenamente todas
y cada una de las fases de creación de un programa en un lenguaje
moderno y práctico.

Programación II - Lic.: Errol Vargas M.


PROGRAMA DE CURSO
CONTENIDO
 Clases y Objetos
 Encapsulamiento, Herencia y Polimorfismo
 Manejo de Excepciones
 Principales elementos de SWING
 Archivos y serialización de objetos
 Colecciones genéricas
 Programación multihilo
 Redes y Bases de datos - Básico

Programación II - Lic.: Errol Vargas M.


EVALUACIÓN DEL CURSO

Escolaridad
6 Casos (5% c/u) 30%
1 Mapa conceptual 10%
2 Trabajo de investigación 30%
1 Participación 10%
1 Exámenes parciales (20% c/u) 20%
Total 100%
Residencia
1 Examen final 100%

Programación II - Lic.: Errol Vargas M.


NORMATIVA VIGENTE

 Toda la normativa vigente,


reglamentos, procedimientos y guías
las podrá encontrar en:
 http://www.uaca.ac.cr/manuales-y-
reglamentos

Programación II - Lic.: Errol Vargas M.


PREGUNTAS

Programación II - Lic.: Errol Vargas M.


PROGRAMACIÓN II
"Los programas deben ser escritos para que la gente los lea y sólo incidentalmente, para que
las máquinas los ejecuten."
Abelson Sussman
Programación II - Lic.: Errol Vargas M.
NETBEANS
Programación II - Lic.: Errol Vargas M.
NETBEANS

 NetBeans es un proyecto exitoso de código abierto con


una gran base de usuarios, una comunidad en constante
crecimiento, y con cerca de 100 socios (¡y creciendo!) en
todo el mundo.
 Sun MicroSystems fundó el proyecto de código abierto
NetBeans en junio 2000 y continúa siendo el patrocinador
principal de los proyectos.
 Al día de hoy hay disponibles dos productos: el
NetBeans IDE y NetBeans Platform.

Programación II - Lic.: Errol Vargas M.


NETBEANS

 NetBeans IDE es un entorno de desarrollo - una


herramienta para que los programadores puedan escribir,
compilar, depurar y ejecutar programas.
 Es multiplataforma – Windows – Mac – Linux
 Está escrito en Java - pero puede servir para cualquier otro
lenguaje de programación.
 Existe además un número importante de módulos para
extender el NetBeans IDE.
 NetBeans IDE es un producto libre y gratuito sin
restricciones de uso.

Programación II - Lic.: Errol Vargas M.


NETBEANS.ORG

 netbeans.org es el portal de la comunidad de código


abierto de NetBeans dedicado a construir un IDE de
primera clase.
 netbeans.org permite a usuarios de más de 160 países de
todo el mundo estar en contacto con los recursos y los
personas alrededor de NetBeans.
 Es posible descargar desde ahí las últimas versiones de
NetBeans, acceder a la documentación de ayuda en línea,
profundizar su conocimiento personal de Java, estar al
corriente de las últimas noticias, unirse a una lista de
distribución, contribuir código, conocer las personas
implicadas en el proyecto, conocer gente, y mucho más.

Programación II - Lic.: Errol Vargas M.


LINKS NETBEANS.ORG

 Portal : https://netbeans.org/
 Descargas: https://netbeans.apache.org/download/index.html
 Última versión estable: Apache NetBeans 11.3 (24/2/2020)
 Requerimientos previos: JDK – Java Development Kit
 Versiones de la 8 a la 11
 Descarga: https://www.oracle.com/java/technologies/javase-jdk11-
downloads.html
 Instaladores:
 Apache-NetBeans-11.3-bin-windows-x64.exe (SHA-512, PGP ASC)
 Apache-NetBeans-11.3-bin-linux-x64.sh (SHA-512, PGP ASC)
 Apache-NetBeans-11.3-bin-macosx.dmg (SHA-512, PGP ASC)
 Documentación: https://bits.netbeans.org/11.3/javadoc

Programación II - Lic.: Errol Vargas M.


PROGRAMACIÓN
ORIENTADA A OBJETOS

El arte de la abstracción

Programación II - Lic.: Errol Vargas M.


PROGRAMACIÓN ORIENTADA A OBJETOS

 Los cuatro pilares fundamentales de la POO


 Abstracción
 Encapsulamiento
 Herencia
 Polimorfismo

Programación II - Lic.: Errol Vargas M.


PROGRAMACIÓN ORIENTADA A OBJETOS
ABSTRACCIÓN
 El concepto de encapsulamiento se apoya sobre el concepto de abstracción.
 En POO solo necesita saber como interaccionar con los objetos, no necesita
conocer los detalles de cómo está implementada la clase a partir de la cual se
instancia el objeto.
 Sólo necesita conocer su interfaz pública.
 No necesita saber cómo trabaja el objeto, ni saber las variables que usa, ni el
código que contiene.
 El objeto es una caja negra

Programación II - Lic.: Errol Vargas M.


HERENCIA Y POLIMORFISMO

 La herencia es una de las premisas y técnicas de la POO la cual permite a los


programadores crear una clase general primero y luego más tarde crear clases
más especializadas que re-utilicen código de la clase general.
 La herencia también le permite escribir un código más limpio y legible.
 La técnica de polimorfismo de la POO significa la capacidad de tomar más de una
forma.
 Una operación puede presentar diferentes comportamientos en diferentes
instancias.
 El comportamiento depende de los tipos de datos utilizados en la operación.
 El polimorfismo es ampliamente utilizado en la aplicación de la herencia.

Programación II - Lic.: Errol Vargas M.


ENCAPSULAMIENTO
La diferencia entre los público y lo privado

Programación II - Lic.: Errol Vargas M.


ENCAPSULAMIENTO

 Se denomina encapsulamiento al ocultamiento del estado, es decir, de los datos


miembro de un objeto de manera que solo se pueda cambiar mediante las
operaciones definidas para ese objeto.
 En POO se denomina estado al valor de una variable.
 Cambiar el estado de la variable es cambiar su contenido.
 Bajo este criterio, cada objeto está aislado del exterior.
 Es un módulo natural y la aplicación entera se reduce a un agregado o
rompecabezas de objetos.

Programación II - Lic.: Errol Vargas M.


ENCAPSULAMIENTO

 Este aislamiento protege a los datos asociados de un objeto contra su


modificación por quien no tenga derecho a acceder a ellos, eliminando efectos
secundarios e interacciones.
 De esta forma el usuario de la clase puede obviar la implementación de los
métodos y propiedades para concentrarse solo en cómo usarlos.
 Por otro lado se evita que el usuario pueda cambiar su estado de maneras
imprevistas e incontroladas.

Programación II - Lic.: Errol Vargas M.


ENCAPSULAMIENTO

 Las variables de un objeto se localizan en el núcleo del objeto.


 Los métodos rodean y esconden al núcleo del objeto de otros objetos en el
programa.
 Al empaquetamiento de las variables de un objeto con la protección de sus
métodos se le llama encapsulamiento.
 Típicamente, el encapsulamiento es utilizado para esconder detalles de la puesta
en práctica no importantes de otros objetos.
 Entonces, los detalles de la puesta en práctica pueden cambiar en cualquier
tiempo sin afectar otras partes del programa.

Programación II - Lic.: Errol Vargas M.


Programación II - Lic.: Errol Vargas M.
EN LA PRACTICA

Programación II - Lic.: Errol Vargas M.


CONTROL DE ACCESO EN JAVA

 Java controla el acceso a los elementos de la clase por medio de las palabras reservadas
public y private
 Todo lo que se defina como public podrá ser visto y accesado desde fuera de la clase.
 Todo lo que se defina como private quedara oculto desde fuera de la clase.
 Un método que se llame igual a la clase, se considera un constructor y debe ser definido
como public siempre.
 Los constructores se encargan de inicializar los valores de las variables internas de la clase.
 Para esto se utiliza la palabra reservada this la cual indica que la variable pertenece a la
clase o sea que se definió al inicio de la clase.
 Las variables solo deben ser accesadas desde el exterior de la clase por medio de los
métodos getter (para obtener el valor de la variable) y setter para cambiar el valor de la
variable.

Programación II - Lic.: Errol Vargas M.


PRACTICA – EJEMPLO 1

 Cree un nuevo proyecto en Netbeans llamado Ejemplo1


 Defina la clase C_Ciudad la cual tendrá las siguientes variables internas
 Id entero
 Ciudad String
 Pais String
 Latitud Double
 Longitud Double
 Programe un constructor genérico.
 Programe los setter y los getter respectivos.

Programación II - Lic.: Errol Vargas M.


PRACTICA – EJEMPLO 1

 En el programa principal defina una variable de tipo C_Ciudad llamada miCiudad y


cárguele los siguientes datos:
 Id 100
 Ciudad “San Jose”
 Pais “Costa Rica”
 Latitud 9,93333
 Longitud -84,08333
 Proceda a imprimir todos los datos almacenados en miCiudad, por consola.

Programación II - Lic.: Errol Vargas M.


PRACTICA – EJEMPLO 2

 Cree un nuevo proyecto llamado Ejemplo2


 Copie la clase C_Clase del proyecto Ejemplo1
 Modifique el constructor para que se le envié los datos de inicialización desde el
exterior.
 Copie el código del programa principal de Ejemplo1 y modifíquelo para que
funcione con la nueva versión de C_Ciudad.
 Proceda a imprimir todos los datos almacenados en miCiudad, por consola.

Programación II - Lic.: Errol Vargas M.


static y final

static:
Los atributos miembros de una clase pueden ser atributos de
clase o atributos de instancia
Se dice que son atributos de clase si se usa la palabra clave static.
En ese caso la variable es única para todas las instancias (objetos)
de la clase (ocupa un único lugar en memoria).
A veces a las variables de clase se les llama variables estáticas.
Si no se usa static, el sistema crea un lugar nuevo para esa variable
con cada instancia (la variable es diferente para cada objeto).
En el caso de una constante no tiene sentido crear un nuevo lugar
de memoria por cada objeto de una clase que se cree.
Por ello es adecuado el uso de la palabra clave static.

Programación II - Lic.: Errol Vargas M.


static y final

final:
Cuando usamos “static final” se dice que creamos una constante de
clase, un atributo común a todos los objetos de esa clase.
En este contexto, final indica que una variable es de tipo constante,
lo cual significa que no admitirá cambios después de su declaración
y asignación de valor.
final determina que un atributo no puede ser sobrescrito o
redefinido.
Es ilegal declarar un setter para una variable declarada como final.
Toda constante declarada con final ha de ser inicializada en el
mismo momento de declararla.

Programación II - Lic.: Errol Vargas M.


PRACTICA – EJEMPLO3

 Cree un nuevo proyecto llamado Ejemplo3.


 Copie la clase C_Ciudad del Ejemplo2.
 Agregue la constante de clase RADIO_TERRESTRE a la clase C_Ciudad.
 Cree una función equals que compare dos objetos de tipo C_Ciudad he indique si
son la misma ciudad, por medio de una respuesta booleana.
 Cree una función distancia que calcule la distancia entre dos ciudad, por medio de
la formula Haversine:

Programación II - Lic.: Errol Vargas M.


PRACTICA – EJEMPLO3

 En el programa principal copie el siguiente código:

Programación II - Lic.: Errol Vargas M.


DUDAS
No hay preguntas tontas.
Lo que hay son personas que no
preguntan!!!

Programación II - Lic.: Errol Vargas M.


LECTURA FORMATIVA

 Investigue sobre la evolución del


concepto de Programación Orientada a
Objetos (POO) partiendo del concepto
de Tipo de Datos Abstractos (TDA).
 Se discutirá al inicio de la próxima
sesión.

Programación II - Lic.: Errol Vargas M.


NOS VEMOS …….

Programación II - Lic.: Errol Vargas M.

También podría gustarte