Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SENA
RESULTADO DE APRENDIZAJE
EVIDENCIA
MANUAL DE INSTRUMETOS PROGRAMCION ORIENTADA A OBJETOS JAVASCRIPT CON
EL MODELO LOGICO DEL PROYECTO FORMATIVO.
TUTOR
RAMON EMILIO GONZALEZ RODRIGUEZ
APRENDIZ
MARIA ENITH MOSQUERA CARDENAS
BOGOTA D.C.
SENA CENTRO DE DISEÑO Y METROLOGÍA
Mayo de 2023
1
TABLA DE CONTENIDO
HERENCIA----------------------------------------------------------- pág. 13
ENCAPSULAMIENTO------------------------------------------------- pág. 23
POLIMORFISMO----------------------------------------------------- pág. 27
PROTOTIPOS-------------------------------------------------------- pág. 29
2
INTRODUCCIÓN
Un objeto es todo aquello que tiene propiedades (datos) y métodos (registro). Las
propiedades permiten guardar datos del objeto, cumplen la misma función que una
variable; mientras que los métodos permiten realizar operaciones, cumplen la mismo
que una función.
4
Un aprendiz puede ser un objeto porque tiene propiedades, valores. Un aprendiz tiene
un código, nombre, un apellido, si es hombre o mujer, etc.; y estas serían algunas de las
propiedades de un objeto aprendiz. Pero también tiene métodos o comportamientos,
como estudiar, jugar, molestar etc.
CLASES Y OBJETOS
Para crear clases y objetos de JavaScript debemos diferenciar entre un objeto y clase,
además de entender que es un atributo, método y constructor
Funcional.
Son básicamente tres conceptos:
• Atributos.
• Métodos.
• Constructor.
5
Ejercicio 2 Clase Objeto.html Crear en JavaScript la clase de Aprendiz con los atributos de
código, nombre y apellido. Y el método registro debe anunciar una alerta “Usted está matriculado
al programa de ADSI”, y se asume que se debe crear el constructor que recibe los parámetros de
entrada. Crear tres objetos de sus compañeros de clase.
6
Ejercicio_3_UML_Clase; Diseñar en UML una super clase según su proyecto formativo (según
el modelo lógico revisado el trimestre anterior) con los atributos. Y el método y/o métodos con
su respectivo constructor que recibe los parámetros de entrada.
Ejercicio_5 con base al ejercicio 1 que tiene diseñado el UML de la clase aprendiz, diseñar un
objeto llamado Aprendiz_nelson, con las constantes del código, nombre y apellido. Se debe crear
un método llamado registro.
7
Ejercicio_6 con base al ejercicio 3 que tiene diseñado el UML de su proyecto formativo, diseñar
un objeto. Con sus respectivas variables y sus métodos y aplicar loque se acabó de explicar en la
sesión de clase.
Nota: Un objeto prototipo del objeto puede tener a su vez otro objeto prototipo, el
cual hereda métodos y propiedades, así sucesivamente. Como se observa en el objeto.
FUNCIÓN CONSTRUCTORA
Las funciones de constructor son funciones diseñadas para construir un nuevo objeto. Dentro de
una función constructora, la palabra clave THIS se refiere a un objeto recién creado, que se
pueden asignar valores a. Las funciones del constructor "devuelve" este nuevo objeto
automáticamente. JavaScript no tiene una notación formal de clase y recurre a las funciones
constructoras para este fin. Mencionar también que JavaScript utiliza los prototipos de los objetos
para propagar la herencia, algo que sin duda cuesta entender al principio y al que dedicaremos
un artículo independiente más adelante.
9
GETTING Y SETTING
Utilidad aparte, en la práctica son simplemente métodos que te permite acceder a datos de los
objetos, para leerlos o asignar nuevos valores. El setter lo que hace es asignar un valor y el getter
se encarga de recibir un valor.
Para los que no han oído hablar sobre éstos, los getters y los setters son construcciones habituales
de los objetos que permiten acceder a valores o propiedades, sin revelar la forma de
implementación de las clases. En pocas palabras, permiten encapsular los objetos y evitar
mantenimiento de las aplicaciones cuando la forma de implementar esos objetos cambia.
Utilidad aparte, en la práctica son simplemente métodos que te permite acceder a datos de los
objetos, para leerlos o asignar nuevos valores. El setter lo que hace es asignar un valor y el getter
se encarga de recibir un valor.
Ejercicio_9_UML_Clase; Diseñar en UML la clase Aprendiz con los atributos código, nombre,
apellido. Y los métodos get y set se asume que se debe crear el constructor que recibe los
parámetros de entrada.
Ejercicio 10 Clase Objeto.html Crear en JavaScript la clase de Aprendiz con los atributos de
código, nombre y apellido Y los métodos get y set se asume que se debe crear el constructor
que recibe los parámetros de entrada.
10
12.Con base en el ejercicio 11 elaborar el script con sus atributos y sus métodos GET y SET.
11
12
HERENCIA
Ejercicio 13 crear el UML con la super clase Persona, la sub clase Aprendiz. Teniendo en cuenta
que la super clase persona tiene los siguientes atributos código, nombre, apellido. La clase
Aprendiz tiene los siguientes atributos ficha, programa y un método llamado matriculado. Se
asume que se deben crear los constructores, los métodos get y set .
Ejercicio 14 crear el script con la super clase Persona, la sub clase Aprendiz. Teniendo en cuenta
que la super clase persona tiene los siguientes atributos código, nombre, apellido. La clase
Aprendiz tiene los siguientes atributos ficha, programa y un método llamado matriculado. Se
asume que se deben crear los constructores, los métodos get y set . Se debe crear un objeto
llamado Aprendiz_juan y enviarle los argumentos.
13
14
15. crear el UML de una superclase y dos subclases de su proyecto formativo teniendo en cuenta
los atributos, los constructores y los métodos.
16. crear script de una superclase y dos subclases de su proyecto formativo teniendo en cuenta
los atributos, los constructores y los métodos en js.
15
class tipo_producto{
constructor(id_tipo_producto, nombre){
this.id_tipo_producto = id_tipo_producto;
this.nombre = nombre;
get id_tipo_producto(){
return this.id_tipo_producto;
}
set id_tipo_producto(nuevo_id_tipo_producto){
this.id_tipo_producto = nuevo_id_tipo_producto;
}
get nombre(){
return this.id_tipo_producto;
}
set nombre(nuevo_nombre){
this.nombre = nuevo_nombre;
}
}
constructor(id_categoria, descripcion){
super(id_tipo_producto, nombre);
this.id_categoria = id_categoria;
this.descripcion = descripcion;
}
get id_categoria(){
return this.id_categoria;
}
set id_categoria(nuevo_id_categoria){
this.id_categoria = nuevo_id_categoria;
}
get descripcion(){
return this.descripcion;
16
set descripcion(nuevo_descripcion){
this.descripcion = nuevo_descripcion;
}
}
this.id_producto = id_producto;
this.nombre = nombre;
this.presentacion = presentacion;
this.peso = peso;
this.valor_unidad = valor_unidad;
this.imagen = imagen;
}
get id_producto(){
return this.id_producto;
}
set id_producto(nuevo_id_producto){
this.id_producto = nuevo_id_producto;
}
get nombre(){
return this.nombre;
}
set nombre(nuevo_nombre){
this.nombre = nuevo_nombre;
}
get presentacion(){
return this.presentacion;
}
set presentacion(nuevo_presentacion){
this.presentacion = nuevo_presentacion;
17
get peso(){
return this.peso;
}
set peso(nuevo_peso){
this.peso = nuevo_peso;
}
get valor_unidad(){
return this.valor_unidad;
}
set valor_unidad(nuevo_valor_unidad){
this.valor_unidad = nuevo_valor_unidad;
}
get imagen(){
return this.imagen;
}
set imagen(nuevo_imagen){
this.imagen = nuevo_imagen;
}
Diseñar en UML a partir de una superclase llamada operadores ARITMETICOS con los atributos
X, Z, se debe crear el constructor que reciba los parámetros.
Crear la subclase SUMA, RESTA, MULTIPCACION, DIVICION y módulo. Se asume que toda la
subclase tiene método de retorno de las operaciones aritméticas.
class OperadoresA {
constructox,yr(x,y){
}
18
get x (){
return this._x;
}
set x(nuevo_x){
this._x = nuevo_x;
}
get y (){
return this._y;
}
set y(nuevo_y){
this._y = nuevo_y;
}
}
constructor(x,y){
super(x,y);
resultado(){
return this._x + this._y;
}
constructor(x,y){
super(x,y);
resultado(){
return this._x - this._y;
}
}
19
constructor(x,y){
super(x,y);
resultado(){
return this._x * this._y;
}
constructor(x,y){
super(x,y);
resultado(){
return this._x / this._y;
}
constructor(x,y){
super(x,y);
}
20
resultado(){
return this._x % this._y;
}
ENCAPSULAMIENTO
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. El 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.
Ventajas
● Reutilización
● Incremento de la adaptabilidad
Desventajas
function Aprendiz(codigo,nombre,apellido){
this._codigo=codigo
var _nombre= nombre
var _apellido=apellido
var c=a;
console.log(c+_nombre+_apellido)
}
var _c=clave
if(_c==1){
encapsulado_registro(_c)
console.log(Objeto_aprendiz._codigo)
25
Ejercicio 23 Con base al ejercicio 15 que fue diseñado por el aprendiz con base a su proyecto
productivo. Aplicar el encapsulamiento a los atributos necesarios y métodos. Según lo explicado
en la sesión de clase.
this._IdProducto = IdProducto;
var _NombreProd = NombreProd;
var _MarcaProd = MarcaProd;
var _Presentacion = Presentacion;
var _TipoProd = TipoProd;
var _FechaVen = FechaVen;
var _ValorNeto = ValorNeto;
var c=a;
this.Desencapsulamiento_Registro=function (clave) {
var _c=clave
if (_c==1) {
encapsulado_registro(_c)
//console.log(Objeto_Producto._IdProducto)
let clave=Objeto_Producto._IdProducto
Objeto_Producto.Desencapsulamiento_Registro(clave)
POLIMORFISMO
Se refiere a los métodos que tiene la clase abstracta TRANASPORTE por la que es posible enviar
mensajes sintácticamente iguales a SUB CLASES CABALLO, COCHE Y AVION de tipos distintos.
El único requisito que deben cumplir las sub clases que se utilizan de manera polimórfica es
saber responder al mensaje que se les envía.
27
class transporte{
avanzar() {}
frenar(){}
}
frenar(){
return"frenar con el caballo"
}
}
frenar(){
return"frenar con el carro"
}
}
frenar(){
return"frenar con el avion"
}
}
console.log("CABALLO BONITO")
console.log(objeto_caballo.avanzar());
console.log(objeto_caballo.frenar());
console.log("CARRO VERDE")
console.log(objeto_caballo.avanzar());
console.log(objeto_caballo.frenar());
console.log("AVION A MIAMI")
console.log(objeto_caballo.avanzar());
console.log(objeto_caballo.frenar());
PROTOTIPOS Los prototipos son un mecanismo mediante el cual los objetos en JavaScript heredan características
entre sí Herencia y prototipos En Javascript se denomina herencia a la capacidad de un objeto para recibir (heredar)
propiedades y métodos de otro objeto. Gracias a ello podemos crear nuevos objetos (instancias) basándonos en otros
objetos ya existentes.En Javascript la herencia se logra a través de prototipos.Cada objeto tiene un prototipo. Cuando
se crea un objeto este obtiene su pro
Cada objeto tiene un prototipo. Cuando se crea un objeto este obtiene su propio prototipo automáticamente.Javascript
nos permite crear objetos basados en prototipos de otros objetos. Con lo que obtienen (heredan) las propiedades y
métodos del prototipo.
29
Ejercicio 28 Comparación de la clase Rectángulo con los atributos altura, ancho y el método
CalArea . Utilizado la palabra reservada Class. En la comparación con el otro ejercicio se utiliza
la palabra reservada function. Según el UML que se muestra a continuación:
class Rectangulo {
constructor( altura, ancho) {
this._altura = altura
this._ancho = ancho }
calcArea() {
return this._altura * this._ancho
}
}
class Rectangulo {
constructor( altura, ancho) {
this._altura = altura
this._ancho = ancho }
calcArea() {
return this._altura * this._ancho
}
}
class Rectangulo {
constructor( altura, ancho) {
this._altura = altura
this._ancho = ancho }
31
calcArea() {
return this._altura * this._ancho
}
CalPerimetro() {
return (this._altura * 2) + (this._ancho * 2)
}
}
Rectangulo.prototype.calcArea = function calcArea() {
return this._alto * this._ancho
}
CONCLUSION
REFERENCIAS
https://www.freecodecamp.org/espanol/news/programacion-orientada-a-objectos-
en-javascript-explicado-con-ejemplos/
https://www.campusmvp.es/recursos/post/los-conceptos-fundamentales-sobre-
programacion-orientada-objetos-explicados-de-manera-simple.aspx
https://es.wikipedia.org/wiki/Polimorfismo_(inform%C3%A1tica