SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Lenguajes de Programación
Programación Orientada a Objetos
Kotlin
Kotlin - Programación
orientada a objetos
Diego Alexander Araque Molina
Stefania Arguelles Reyes
Introducción
kotlin es un lenguaje enfocado a la
programación orientada a objetos
Fue nombrado lenguaje del mes en la
edición de enero de 2012 de la revista Dr.
Boob.
Está diseñado para interoperar con
código java
Manejo de datos
En Kotlin el manejo de datos se realiza de
manera similar a los demás lenguajes, se
ingresa por teclado y retorna por consola
Manejo de datos
Ingreso por teclado:
readLine()
readLine()!!
Salida por consola:
print(“HolaMundo”)
println(“HolaMundo”)
Operadores
Los operadores pueden ser:
Aritméticos: Son operaciones
matemáticas básicas
Lógicos: Para establecer una condición
lógica
Relacionales: Para evaluar si se cumple
una relación
Operadores
Aritméticos:
Suma: a + b
Resta: a - b
Multiplicación: a * b
División: a /b
Módulo: a%b
Incremento: a++
Decremento: b--
Operadores
Relacionales:
(>, <, >=, <= , ==, !=)
Lógicos:
(&&, ||)
Palabras Condicionales
Son palabras reservadas que
ayudan a establecer condiciones
Palabras Condicionales
as, is, in
if (x is Int) { }
val text = other as String
if (x in 0..10) { }
Estructura condicional
if- else:
if (valor1 > valor2) {
print("El mayor valor es $valor1")
}
else {
print("El mayor valor es $valor2")
}
Estructura condicional
Puede ser utilizada como expresión
val resultado = if (valor % 2 == 0) {
print("Cuadrado:")
valor * valor
} else {
print("Cubo:")
valor * valor * valor
}
Estructura condicional
When:
when {
x > 0 && y > 0 -> println("Primer cuadrante")
x < 0 && y > 0 -> println("Segundo cuadrante")
x < 0 && y < 0 -> println("Tercer cuadrante")
x > 0 && y < 0 -> println("Cuarto cuadrante")
else -> println("El punto se encuentra en un eje")
}
Estructura repetitiva
while:
var x = 1
while (x <= 100) {
println(x)
x = x + 1
}
Estructura repetitiva
For:
for(i in 1..10 step 2)
println(i)
for(i in 10 downTo 1 step 2)
println(i)
Funciones
En kotlin la solución de un problema
complejo se logra descomponiendolo en
funciones que solucionan pequeñas partes
del problema
Funciones
fun mostrarSuperficie(lado: Int) {
val superficie = lado * lado
println("La superficie es $superficie")
}
Kotlin
Programación Orientada a
Objetos
Programación Orientada a Objetos
Kotlin es un lenguaje enfocado en la
programación orientada a objetos, se
destaca su facilidad para crear objetos e
instanciar clases
Programación Orientada a Objetos
Clase: Plantilla para definir propiedades y
métodos
Método: Entidad independiente con sus
propios datos y programación
Programación Orientada a Objetos
Definir un método:
fun imprimir() {
println("Nombre: $nombre y tiene
una edad de $edad")
}
Método constructor:
class Persona (var nombre: String, var
edad: Int)
Programación Orientada a Objetos
Objeto nombrado:
Uso de la palabra clave ‘object’ para definir
un objeto sin necesidad de declarar una
clase
Programación Orientada a Objetos
object Matematica {
val PI = 3.1416
fun aleatorio(minimo: Int, maximo: Int)
= ((Math.random() * (maximo + 1 -
minimo)) + minimo).toInt()
}
Programación Orientada a Objetos
Acceder a un método desde otro
método:
Directamente al método:
sumar()
restar()
Desde la clase:
val operaciones1 = Operaciones()
operaciones1.cargar()
Programación Orientada a Objetos
En la programación orientada a objetos
las clases interactúan y colaboran entre sí
class Dado (var valor: Int){
fun tirar() { // Sentencias}
class JuegoDeDados {
val dado1 = Dado(1)
fun jugar() { //Sentencias }
}
Programación Orientada a Objetos
Encapsulamiento:
Para acceder a un método desde una clase
determinada se modifica el acceso de
acuerdo a las sentencias public, protected,
private
private fun sumar() {
//Sentencias
}
private
protected
public
Programación Orientada a Objetos
Data Class:
Una clase que solo guarda datos
data class Articulo(var codigo: Int, var
descripcion: String, var precio: Float)
Programación Orientada a Objetos
Enum Class:
Se utiliza para definir un conjunto de
constantes
enum class TipoCarta{
DIAMANTE,
TREBOL,
CORAZON,
PICA
}
Programación Orientada a Objetos
Herencia:
Es una relación entre clases que genera la
creación de una clase a partir de otra
Auto "es un" Vehiculo
Circulo "es una" Figura
Mouse "es un" DispositivoEntrada
Suma "es una" Operacion
Programación Orientada a Objetos
open class Persona(val nombre: String, val edad: Int) {
open fun imprimir() { //Sentencia }
}
class Empleado(nombre: String, edad: Int, val sueldo:
Double): Persona(nombre, edad) {
override fun imprimir() {//Sentencia }
fun pagaImpuestos() { //sentencia }
}
Programación Orientada a Objetos
Clase abstracta:
Una clase que posee métodos y
propiedades que son útiles a distintas
clases
Programación Orientada a Objetos
abstract class Operacion(val valor1: Int, val valor2:
Int) {
protected var resultado: Int = 0
abstract fun operar()
fun imprimir() {
println("Resultado: $resultado")
}
}
Programación Orientada a Objetos
Interfaces:
Declara una serie de métodos y
propiedades que deben ser implementados
por las clases
Utilizada para crear múltiples herencias
Programación Orientada a Objetos
interface Punto { fun imprimir()}
class PuntoPlano(val x: Int, val y: Int): Punto {
override fun imprimir() { //Sentencia}
}
class PuntoEspacio(val x: Int, val y: Int, val z: Int): Punto {
override fun imprimir() { //Sentencia}
}
fun main(parametro: Array<String>) {
val puntoPlano1 = PuntoPlano(10, 4)
puntoPlano1.imprimir()
val puntoEspacio1 = PuntoEspacio(20, 50, 60)
puntoEspacio1.imprimir()
}
Programación Orientada a Objetos
Polimorfismo:
class MethodOverloading{
fun area( a: Int) :Int{
return a*a
}
fun area(length :Int, height :Int) :Int{
return length*height
}
}
fun main(args:Array<String>){
var obj=MethodOverloading()
println("Area of Square="+obj.area(5))
println("Area of Rectangle="+obj.area(5, 4))
}
Referencias
https://www.tutorialesprogramacionya.com/kotlinya/index.php?inicio=0
https://fabiomsr.github.io/from-java-to-kotlin/index.html
https://www.toptal.com/software/introducci%C3%B3n-a-kotlin-programaci%C3%B3n-de-android-para-seres-humanos/es
kotlin para android https://youtu.be/P9ZFhTw2hGA
curso de kotlin
https://devcode.la/cursos/kotlin/#clases/programacion-orientada-a-objetos/distribucion-del-codigo-fuente-en-kotlin
https://kotlinlang.org/docs/reference/classes.html
ide
onlinehttps://try.kotlinlang.org/#/Examples/Hello,%20world!/Reading%20a%20name%20from%20the%20command%20line/Re
ading%20a%20name%20from%20the%20command%20line.kt
tutorial https://www.tutorialspoint.com/kotlin/index.htm
programación orientada a objetos con kotlin https://www.youtube.com/watch?v=zR92kdl21Ww
ejemplos github https://github.com/DevPicon/kotlin-examples/tree/master/src/la/devcode/kotlin
tutoriales básicos https://devcode.la/cursos/kotlin/#clases
OOP Implementation In Kotlin https://www.c-sharpcorner.com/article/oop-implementation-in-kotlin/
GRACIAS

Más contenido relacionado

La actualidad más candente

Requerimiento de los sistemas de informacion
Requerimiento de los sistemas de informacionRequerimiento de los sistemas de informacion
Requerimiento de los sistemas de informacionAndres Arturo
 
Ensayo sistemas de informacion
Ensayo sistemas de informacionEnsayo sistemas de informacion
Ensayo sistemas de informacionAna Cova G
 
Lenguaje de trazabilidad tipo query
Lenguaje de trazabilidad tipo queryLenguaje de trazabilidad tipo query
Lenguaje de trazabilidad tipo queryGiovani Ramirez
 
02 uml diagramaactividades
02 uml diagramaactividades02 uml diagramaactividades
02 uml diagramaactividadessandra marin
 
Semana 1 trazabilidad y modelos de trazabilidad
Semana 1 trazabilidad y modelos de trazabilidadSemana 1 trazabilidad y modelos de trazabilidad
Semana 1 trazabilidad y modelos de trazabilidadGiovani Ramirez
 
Presentación trabajo programación
Presentación trabajo programaciónPresentación trabajo programación
Presentación trabajo programaciónionurrutia
 
Semana 2 tecnicas y lenguajes de trazabilidad
Semana 2 tecnicas y lenguajes de trazabilidadSemana 2 tecnicas y lenguajes de trazabilidad
Semana 2 tecnicas y lenguajes de trazabilidadGiovani Ramirez
 
Presentacion herramientas CASE
Presentacion herramientas CASEPresentacion herramientas CASE
Presentacion herramientas CASEdavidsande
 
Lenguajes de trazabilidad expresiones regulares
Lenguajes de trazabilidad expresiones regularesLenguajes de trazabilidad expresiones regulares
Lenguajes de trazabilidad expresiones regularesGiovani Ramirez
 
Mapa conceptual de sistemas de informacion
Mapa conceptual de sistemas de informacion Mapa conceptual de sistemas de informacion
Mapa conceptual de sistemas de informacion jdasilva1004
 
administracion de entrada, salida y procesos
administracion de entrada, salida y procesosadministracion de entrada, salida y procesos
administracion de entrada, salida y procesosSamir Barrios
 
Herramientas case alto y bajo nivel
Herramientas case alto y bajo nivelHerramientas case alto y bajo nivel
Herramientas case alto y bajo nivelsistemaaabbbb
 
Planificacion del procesador
Planificacion del procesadorPlanificacion del procesador
Planificacion del procesadorManuel Ceron
 
Diseño de salidas para sistemas de información
Diseño de salidas para sistemas de informaciónDiseño de salidas para sistemas de información
Diseño de salidas para sistemas de informaciónYaskelly Yedra
 
Especificación y resultados de las pruebas de software
Especificación y resultados de las pruebas de softwareEspecificación y resultados de las pruebas de software
Especificación y resultados de las pruebas de softwareJesús E. CuRias
 

La actualidad más candente (20)

Tipos de procesamiento de datos
Tipos de procesamiento de datosTipos de procesamiento de datos
Tipos de procesamiento de datos
 
UML
UMLUML
UML
 
Kendal y Kendal
Kendal y KendalKendal y Kendal
Kendal y Kendal
 
Requerimiento de los sistemas de informacion
Requerimiento de los sistemas de informacionRequerimiento de los sistemas de informacion
Requerimiento de los sistemas de informacion
 
Ensayo sistemas de informacion
Ensayo sistemas de informacionEnsayo sistemas de informacion
Ensayo sistemas de informacion
 
Lenguaje de trazabilidad tipo query
Lenguaje de trazabilidad tipo queryLenguaje de trazabilidad tipo query
Lenguaje de trazabilidad tipo query
 
02 uml diagramaactividades
02 uml diagramaactividades02 uml diagramaactividades
02 uml diagramaactividades
 
Semana 1 trazabilidad y modelos de trazabilidad
Semana 1 trazabilidad y modelos de trazabilidadSemana 1 trazabilidad y modelos de trazabilidad
Semana 1 trazabilidad y modelos de trazabilidad
 
Presentación trabajo programación
Presentación trabajo programaciónPresentación trabajo programación
Presentación trabajo programación
 
Semana 2 tecnicas y lenguajes de trazabilidad
Semana 2 tecnicas y lenguajes de trazabilidadSemana 2 tecnicas y lenguajes de trazabilidad
Semana 2 tecnicas y lenguajes de trazabilidad
 
Presentacion herramientas CASE
Presentacion herramientas CASEPresentacion herramientas CASE
Presentacion herramientas CASE
 
Prueba de Caja Blanca
Prueba de Caja BlancaPrueba de Caja Blanca
Prueba de Caja Blanca
 
Lenguajes de trazabilidad expresiones regulares
Lenguajes de trazabilidad expresiones regularesLenguajes de trazabilidad expresiones regulares
Lenguajes de trazabilidad expresiones regulares
 
Mapa conceptual de sistemas de informacion
Mapa conceptual de sistemas de informacion Mapa conceptual de sistemas de informacion
Mapa conceptual de sistemas de informacion
 
administracion de entrada, salida y procesos
administracion de entrada, salida y procesosadministracion de entrada, salida y procesos
administracion de entrada, salida y procesos
 
Herramientas case alto y bajo nivel
Herramientas case alto y bajo nivelHerramientas case alto y bajo nivel
Herramientas case alto y bajo nivel
 
Planificacion del procesador
Planificacion del procesadorPlanificacion del procesador
Planificacion del procesador
 
Arquitectura centralizada
Arquitectura centralizadaArquitectura centralizada
Arquitectura centralizada
 
Diseño de salidas para sistemas de información
Diseño de salidas para sistemas de informaciónDiseño de salidas para sistemas de información
Diseño de salidas para sistemas de información
 
Especificación y resultados de las pruebas de software
Especificación y resultados de las pruebas de softwareEspecificación y resultados de las pruebas de software
Especificación y resultados de las pruebas de software
 

Similar a 380914324 poo-kotlin

Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Axel
 
Introducción poo
Introducción pooIntroducción poo
Introducción poog_torrealba
 
Tema 1 2_poo
Tema 1 2_pooTema 1 2_poo
Tema 1 2_poodemon_628
 
Portafolio de evidencias actividades
Portafolio de evidencias actividadesPortafolio de evidencias actividades
Portafolio de evidencias actividadesJames Logan
 
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...Jose Emilio Labra Gayo
 
Programacion
ProgramacionProgramacion
Programacionedison
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónjograci
 
Abstracción y Encapsulación de en la programación Orientada a objetos
Abstracción y Encapsulación de en la programación Orientada a objetosAbstracción y Encapsulación de en la programación Orientada a objetos
Abstracción y Encapsulación de en la programación Orientada a objetosJoseEstebanTelloEstr
 
Introducción a los entornos de programación
Introducción a los entornos de programaciónIntroducción a los entornos de programación
Introducción a los entornos de programaciónFernando Solis
 
Nivel de programacion web
Nivel de programacion webNivel de programacion web
Nivel de programacion webEdwin Cuervo
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosmichaelalta
 

Similar a 380914324 poo-kotlin (20)

C ++
C ++C ++
C ++
 
Excel y visual basic
Excel y visual basicExcel y visual basic
Excel y visual basic
 
Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2
 
PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓNPROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓN
 
Introducción poo
Introducción pooIntroducción poo
Introducción poo
 
Tema 1 2_poo
Tema 1 2_pooTema 1 2_poo
Tema 1 2_poo
 
37975756-Guia-de-C
37975756-Guia-de-C37975756-Guia-de-C
37975756-Guia-de-C
 
Portafolio de evidencias actividades
Portafolio de evidencias actividadesPortafolio de evidencias actividades
Portafolio de evidencias actividades
 
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
 
Informatica
InformaticaInformatica
Informatica
 
Programacion
ProgramacionProgramacion
Programacion
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Abstracción y Encapsulación de en la programación Orientada a objetos
Abstracción y Encapsulación de en la programación Orientada a objetosAbstracción y Encapsulación de en la programación Orientada a objetos
Abstracción y Encapsulación de en la programación Orientada a objetos
 
Curso c sharp
Curso c sharpCurso c sharp
Curso c sharp
 
El mundo del lenguaje c++
El mundo del lenguaje c++El mundo del lenguaje c++
El mundo del lenguaje c++
 
Introducción a los entornos de programación
Introducción a los entornos de programaciónIntroducción a los entornos de programación
Introducción a los entornos de programación
 
NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓNNIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
 
1 eda teo
1 eda teo1 eda teo
1 eda teo
 
Nivel de programacion web
Nivel de programacion webNivel de programacion web
Nivel de programacion web
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 

Más de xavazque2

258939538 dumping
258939538 dumping258939538 dumping
258939538 dumpingxavazque2
 
146817358 android
146817358 android146817358 android
146817358 androidxavazque2
 
Curso profesional-de-desarrollo-de-aplicaciones-android-con-kotlin
Curso profesional-de-desarrollo-de-aplicaciones-android-con-kotlinCurso profesional-de-desarrollo-de-aplicaciones-android-con-kotlin
Curso profesional-de-desarrollo-de-aplicaciones-android-con-kotlinxavazque2
 
364196144 hogan-pensamiento-no-verbal-comunicacion-y-juego
364196144 hogan-pensamiento-no-verbal-comunicacion-y-juego364196144 hogan-pensamiento-no-verbal-comunicacion-y-juego
364196144 hogan-pensamiento-no-verbal-comunicacion-y-juegoxavazque2
 
325940441 motion-ui
325940441 motion-ui325940441 motion-ui
325940441 motion-uixavazque2
 
371081023 curso-desarrollo-android
371081023 curso-desarrollo-android371081023 curso-desarrollo-android
371081023 curso-desarrollo-androidxavazque2
 
4.1. validaciones-y-excepciones
4.1. validaciones-y-excepciones4.1. validaciones-y-excepciones
4.1. validaciones-y-excepcionesxavazque2
 
3.1 mvc-mvvm-app model-binding
3.1 mvc-mvvm-app model-binding3.1 mvc-mvvm-app model-binding
3.1 mvc-mvvm-app model-bindingxavazque2
 
5.1. stateles stateful-protocolo_http
5.1. stateles stateful-protocolo_http5.1. stateles stateful-protocolo_http
5.1. stateles stateful-protocolo_httpxavazque2
 
435338801 programacion-mobile-android
435338801 programacion-mobile-android435338801 programacion-mobile-android
435338801 programacion-mobile-androidxavazque2
 
457126889 android-pdf
457126889 android-pdf457126889 android-pdf
457126889 android-pdfxavazque2
 
266521557 apuntes-unidad-formativa-app-inventor
266521557 apuntes-unidad-formativa-app-inventor266521557 apuntes-unidad-formativa-app-inventor
266521557 apuntes-unidad-formativa-app-inventorxavazque2
 
7. react js-1
7. react js-17. react js-1
7. react js-1xavazque2
 
484719815 pidiendo-ayuda-a-los-angeles-pdf
484719815 pidiendo-ayuda-a-los-angeles-pdf484719815 pidiendo-ayuda-a-los-angeles-pdf
484719815 pidiendo-ayuda-a-los-angeles-pdfxavazque2
 
484717855 transmutacion-de-energias-pdf
484717855 transmutacion-de-energias-pdf484717855 transmutacion-de-energias-pdf
484717855 transmutacion-de-energias-pdfxavazque2
 
2.1. arena-y-binding
2.1. arena-y-binding2.1. arena-y-binding
2.1. arena-y-bindingxavazque2
 
411958729 curso-de-delphi-pdf
411958729 curso-de-delphi-pdf411958729 curso-de-delphi-pdf
411958729 curso-de-delphi-pdfxavazque2
 

Más de xavazque2 (20)

258939538 dumping
258939538 dumping258939538 dumping
258939538 dumping
 
146817358 android
146817358 android146817358 android
146817358 android
 
Curso profesional-de-desarrollo-de-aplicaciones-android-con-kotlin
Curso profesional-de-desarrollo-de-aplicaciones-android-con-kotlinCurso profesional-de-desarrollo-de-aplicaciones-android-con-kotlin
Curso profesional-de-desarrollo-de-aplicaciones-android-con-kotlin
 
364196144 hogan-pensamiento-no-verbal-comunicacion-y-juego
364196144 hogan-pensamiento-no-verbal-comunicacion-y-juego364196144 hogan-pensamiento-no-verbal-comunicacion-y-juego
364196144 hogan-pensamiento-no-verbal-comunicacion-y-juego
 
325940441 motion-ui
325940441 motion-ui325940441 motion-ui
325940441 motion-ui
 
371081023 curso-desarrollo-android
371081023 curso-desarrollo-android371081023 curso-desarrollo-android
371081023 curso-desarrollo-android
 
4.1. validaciones-y-excepciones
4.1. validaciones-y-excepciones4.1. validaciones-y-excepciones
4.1. validaciones-y-excepciones
 
3.1 mvc-mvvm-app model-binding
3.1 mvc-mvvm-app model-binding3.1 mvc-mvvm-app model-binding
3.1 mvc-mvvm-app model-binding
 
5.1. stateles stateful-protocolo_http
5.1. stateles stateful-protocolo_http5.1. stateles stateful-protocolo_http
5.1. stateles stateful-protocolo_http
 
435338801 programacion-mobile-android
435338801 programacion-mobile-android435338801 programacion-mobile-android
435338801 programacion-mobile-android
 
457126889 android-pdf
457126889 android-pdf457126889 android-pdf
457126889 android-pdf
 
266521557 apuntes-unidad-formativa-app-inventor
266521557 apuntes-unidad-formativa-app-inventor266521557 apuntes-unidad-formativa-app-inventor
266521557 apuntes-unidad-formativa-app-inventor
 
7. react js-1
7. react js-17. react js-1
7. react js-1
 
Tp1
Tp1Tp1
Tp1
 
484719815 pidiendo-ayuda-a-los-angeles-pdf
484719815 pidiendo-ayuda-a-los-angeles-pdf484719815 pidiendo-ayuda-a-los-angeles-pdf
484719815 pidiendo-ayuda-a-los-angeles-pdf
 
484717855 transmutacion-de-energias-pdf
484717855 transmutacion-de-energias-pdf484717855 transmutacion-de-energias-pdf
484717855 transmutacion-de-energias-pdf
 
5.layouts
5.layouts5.layouts
5.layouts
 
6.2. js
6.2. js6.2. js
6.2. js
 
2.1. arena-y-binding
2.1. arena-y-binding2.1. arena-y-binding
2.1. arena-y-binding
 
411958729 curso-de-delphi-pdf
411958729 curso-de-delphi-pdf411958729 curso-de-delphi-pdf
411958729 curso-de-delphi-pdf
 

Último

Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 

Último (20)

Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 

380914324 poo-kotlin

  • 1. Lenguajes de Programación Programación Orientada a Objetos Kotlin Kotlin - Programación orientada a objetos Diego Alexander Araque Molina Stefania Arguelles Reyes
  • 2. Introducción kotlin es un lenguaje enfocado a la programación orientada a objetos Fue nombrado lenguaje del mes en la edición de enero de 2012 de la revista Dr. Boob. Está diseñado para interoperar con código java
  • 3. Manejo de datos En Kotlin el manejo de datos se realiza de manera similar a los demás lenguajes, se ingresa por teclado y retorna por consola
  • 4. Manejo de datos Ingreso por teclado: readLine() readLine()!! Salida por consola: print(“HolaMundo”) println(“HolaMundo”)
  • 5. Operadores Los operadores pueden ser: Aritméticos: Son operaciones matemáticas básicas Lógicos: Para establecer una condición lógica Relacionales: Para evaluar si se cumple una relación
  • 6. Operadores Aritméticos: Suma: a + b Resta: a - b Multiplicación: a * b División: a /b Módulo: a%b Incremento: a++ Decremento: b--
  • 7. Operadores Relacionales: (>, <, >=, <= , ==, !=) Lógicos: (&&, ||)
  • 8. Palabras Condicionales Son palabras reservadas que ayudan a establecer condiciones
  • 9. Palabras Condicionales as, is, in if (x is Int) { } val text = other as String if (x in 0..10) { }
  • 10. Estructura condicional if- else: if (valor1 > valor2) { print("El mayor valor es $valor1") } else { print("El mayor valor es $valor2") }
  • 11. Estructura condicional Puede ser utilizada como expresión val resultado = if (valor % 2 == 0) { print("Cuadrado:") valor * valor } else { print("Cubo:") valor * valor * valor }
  • 12. Estructura condicional When: when { x > 0 && y > 0 -> println("Primer cuadrante") x < 0 && y > 0 -> println("Segundo cuadrante") x < 0 && y < 0 -> println("Tercer cuadrante") x > 0 && y < 0 -> println("Cuarto cuadrante") else -> println("El punto se encuentra en un eje") }
  • 13. Estructura repetitiva while: var x = 1 while (x <= 100) { println(x) x = x + 1 }
  • 14. Estructura repetitiva For: for(i in 1..10 step 2) println(i) for(i in 10 downTo 1 step 2) println(i)
  • 15. Funciones En kotlin la solución de un problema complejo se logra descomponiendolo en funciones que solucionan pequeñas partes del problema
  • 16. Funciones fun mostrarSuperficie(lado: Int) { val superficie = lado * lado println("La superficie es $superficie") }
  • 18. Programación Orientada a Objetos Kotlin es un lenguaje enfocado en la programación orientada a objetos, se destaca su facilidad para crear objetos e instanciar clases
  • 19. Programación Orientada a Objetos Clase: Plantilla para definir propiedades y métodos Método: Entidad independiente con sus propios datos y programación
  • 20. Programación Orientada a Objetos Definir un método: fun imprimir() { println("Nombre: $nombre y tiene una edad de $edad") } Método constructor: class Persona (var nombre: String, var edad: Int)
  • 21. Programación Orientada a Objetos Objeto nombrado: Uso de la palabra clave ‘object’ para definir un objeto sin necesidad de declarar una clase
  • 22. Programación Orientada a Objetos object Matematica { val PI = 3.1416 fun aleatorio(minimo: Int, maximo: Int) = ((Math.random() * (maximo + 1 - minimo)) + minimo).toInt() }
  • 23. Programación Orientada a Objetos Acceder a un método desde otro método: Directamente al método: sumar() restar() Desde la clase: val operaciones1 = Operaciones() operaciones1.cargar()
  • 24. Programación Orientada a Objetos En la programación orientada a objetos las clases interactúan y colaboran entre sí class Dado (var valor: Int){ fun tirar() { // Sentencias} class JuegoDeDados { val dado1 = Dado(1) fun jugar() { //Sentencias } }
  • 25. Programación Orientada a Objetos Encapsulamiento: Para acceder a un método desde una clase determinada se modifica el acceso de acuerdo a las sentencias public, protected, private private fun sumar() { //Sentencias } private protected public
  • 26. Programación Orientada a Objetos Data Class: Una clase que solo guarda datos data class Articulo(var codigo: Int, var descripcion: String, var precio: Float)
  • 27. Programación Orientada a Objetos Enum Class: Se utiliza para definir un conjunto de constantes enum class TipoCarta{ DIAMANTE, TREBOL, CORAZON, PICA }
  • 28. Programación Orientada a Objetos Herencia: Es una relación entre clases que genera la creación de una clase a partir de otra Auto "es un" Vehiculo Circulo "es una" Figura Mouse "es un" DispositivoEntrada Suma "es una" Operacion
  • 29. Programación Orientada a Objetos open class Persona(val nombre: String, val edad: Int) { open fun imprimir() { //Sentencia } } class Empleado(nombre: String, edad: Int, val sueldo: Double): Persona(nombre, edad) { override fun imprimir() {//Sentencia } fun pagaImpuestos() { //sentencia } }
  • 30. Programación Orientada a Objetos Clase abstracta: Una clase que posee métodos y propiedades que son útiles a distintas clases
  • 31. Programación Orientada a Objetos abstract class Operacion(val valor1: Int, val valor2: Int) { protected var resultado: Int = 0 abstract fun operar() fun imprimir() { println("Resultado: $resultado") } }
  • 32. Programación Orientada a Objetos Interfaces: Declara una serie de métodos y propiedades que deben ser implementados por las clases Utilizada para crear múltiples herencias
  • 33. Programación Orientada a Objetos interface Punto { fun imprimir()} class PuntoPlano(val x: Int, val y: Int): Punto { override fun imprimir() { //Sentencia} } class PuntoEspacio(val x: Int, val y: Int, val z: Int): Punto { override fun imprimir() { //Sentencia} } fun main(parametro: Array<String>) { val puntoPlano1 = PuntoPlano(10, 4) puntoPlano1.imprimir() val puntoEspacio1 = PuntoEspacio(20, 50, 60) puntoEspacio1.imprimir() }
  • 34. Programación Orientada a Objetos Polimorfismo: class MethodOverloading{ fun area( a: Int) :Int{ return a*a } fun area(length :Int, height :Int) :Int{ return length*height } } fun main(args:Array<String>){ var obj=MethodOverloading() println("Area of Square="+obj.area(5)) println("Area of Rectangle="+obj.area(5, 4)) }
  • 35. Referencias https://www.tutorialesprogramacionya.com/kotlinya/index.php?inicio=0 https://fabiomsr.github.io/from-java-to-kotlin/index.html https://www.toptal.com/software/introducci%C3%B3n-a-kotlin-programaci%C3%B3n-de-android-para-seres-humanos/es kotlin para android https://youtu.be/P9ZFhTw2hGA curso de kotlin https://devcode.la/cursos/kotlin/#clases/programacion-orientada-a-objetos/distribucion-del-codigo-fuente-en-kotlin https://kotlinlang.org/docs/reference/classes.html ide onlinehttps://try.kotlinlang.org/#/Examples/Hello,%20world!/Reading%20a%20name%20from%20the%20command%20line/Re ading%20a%20name%20from%20the%20command%20line.kt tutorial https://www.tutorialspoint.com/kotlin/index.htm programación orientada a objetos con kotlin https://www.youtube.com/watch?v=zR92kdl21Ww ejemplos github https://github.com/DevPicon/kotlin-examples/tree/master/src/la/devcode/kotlin tutoriales básicos https://devcode.la/cursos/kotlin/#clases OOP Implementation In Kotlin https://www.c-sharpcorner.com/article/oop-implementation-in-kotlin/