SlideShare una empresa de Scribd logo
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

Katalon Studio - GUI Overview
Katalon Studio - GUI OverviewKatalon Studio - GUI Overview
Katalon Studio - GUI Overview
Katalon Studio
 
Katalon Studio Presentation.pptx
Katalon Studio Presentation.pptxKatalon Studio Presentation.pptx
Katalon Studio Presentation.pptx
MuhammadHassan440279
 
FRONT-END WEB DEVELOPMENT-Intro.pptx
FRONT-END WEB DEVELOPMENT-Intro.pptxFRONT-END WEB DEVELOPMENT-Intro.pptx
FRONT-END WEB DEVELOPMENT-Intro.pptx
RajeevKumar304148
 
Unit3 software review control software
Unit3 software review control softwareUnit3 software review control software
Unit3 software review control software
Reetesh Gupta
 
Rest API Testing
Rest API TestingRest API Testing
Rest API Testing
upadhyay_25
 
Selenium-Locators
Selenium-LocatorsSelenium-Locators
Selenium-Locators
Mithilesh Singh
 
From a monolith to microservices + REST: The evolution of LinkedIn's architec...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...From a monolith to microservices + REST: The evolution of LinkedIn's architec...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...
Karan Parikh
 
Android Telephony Manager and SMS
Android Telephony Manager and SMSAndroid Telephony Manager and SMS
Android Telephony Manager and SMS
Jussi Pohjolainen
 
Server Controls of ASP.Net
Server Controls of ASP.NetServer Controls of ASP.Net
Server Controls of ASP.Net
Hitesh Santani
 
REST API
REST APIREST API
REST API
Tofazzal Ahmed
 
Android ui dialog
Android ui dialogAndroid ui dialog
Android ui dialog
Krazy Koder
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
Aneesh Rangarajan
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
Manoj Kumar Kumar
 
Test Case Creation in Katalon Studio
Test Case Creation in Katalon StudioTest Case Creation in Katalon Studio
Test Case Creation in Katalon Studio
RapidValue
 
White box & Black box testing
White box & Black box testingWhite box & Black box testing
White box & Black box testing
NitishMhaske1
 
What is WebElement in Selenium | Web Elements & Element Locators | Edureka
What is WebElement in Selenium | Web Elements & Element Locators | EdurekaWhat is WebElement in Selenium | Web Elements & Element Locators | Edureka
What is WebElement in Selenium | Web Elements & Element Locators | Edureka
Edureka!
 
Automated Mobile Testing using Appium.pdf
Automated Mobile Testing using Appium.pdfAutomated Mobile Testing using Appium.pdf
Automated Mobile Testing using Appium.pdf
Anand722237
 
Android and REST
Android and RESTAndroid and REST
Android and REST
Roman Woźniak
 
Visitor Pattern
Visitor PatternVisitor Pattern
Visitor Pattern
Ider Zheng
 
Rest API Automation with REST Assured
Rest API Automation with REST AssuredRest API Automation with REST Assured
Rest API Automation with REST Assured
TO THE NEW Pvt. Ltd.
 

La actualidad más candente (20)

Katalon Studio - GUI Overview
Katalon Studio - GUI OverviewKatalon Studio - GUI Overview
Katalon Studio - GUI Overview
 
Katalon Studio Presentation.pptx
Katalon Studio Presentation.pptxKatalon Studio Presentation.pptx
Katalon Studio Presentation.pptx
 
FRONT-END WEB DEVELOPMENT-Intro.pptx
FRONT-END WEB DEVELOPMENT-Intro.pptxFRONT-END WEB DEVELOPMENT-Intro.pptx
FRONT-END WEB DEVELOPMENT-Intro.pptx
 
Unit3 software review control software
Unit3 software review control softwareUnit3 software review control software
Unit3 software review control software
 
Rest API Testing
Rest API TestingRest API Testing
Rest API Testing
 
Selenium-Locators
Selenium-LocatorsSelenium-Locators
Selenium-Locators
 
From a monolith to microservices + REST: The evolution of LinkedIn's architec...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...From a monolith to microservices + REST: The evolution of LinkedIn's architec...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...
 
Android Telephony Manager and SMS
Android Telephony Manager and SMSAndroid Telephony Manager and SMS
Android Telephony Manager and SMS
 
Server Controls of ASP.Net
Server Controls of ASP.NetServer Controls of ASP.Net
Server Controls of ASP.Net
 
REST API
REST APIREST API
REST API
 
Android ui dialog
Android ui dialogAndroid ui dialog
Android ui dialog
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
 
Test Case Creation in Katalon Studio
Test Case Creation in Katalon StudioTest Case Creation in Katalon Studio
Test Case Creation in Katalon Studio
 
White box & Black box testing
White box & Black box testingWhite box & Black box testing
White box & Black box testing
 
What is WebElement in Selenium | Web Elements & Element Locators | Edureka
What is WebElement in Selenium | Web Elements & Element Locators | EdurekaWhat is WebElement in Selenium | Web Elements & Element Locators | Edureka
What is WebElement in Selenium | Web Elements & Element Locators | Edureka
 
Automated Mobile Testing using Appium.pdf
Automated Mobile Testing using Appium.pdfAutomated Mobile Testing using Appium.pdf
Automated Mobile Testing using Appium.pdf
 
Android and REST
Android and RESTAndroid and REST
Android and REST
 
Visitor Pattern
Visitor PatternVisitor Pattern
Visitor Pattern
 
Rest API Automation with REST Assured
Rest API Automation with REST AssuredRest API Automation with REST Assured
Rest API Automation with REST Assured
 

Similar a 380914324 poo-kotlin

C ++
C ++C ++
Excel y visual basic
Excel y visual basicExcel y visual basic
Excel y visual basic
Egidio Mosquer Copete
 
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
Axel
 
PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓNPROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓN
Ingrid Lorena Pinzón Capador
 
Introducción poo
Introducción pooIntroducción poo
Introducción poo
g_torrealba
 
Tema 1 2_poo
Tema 1 2_pooTema 1 2_poo
Tema 1 2_poo
demon_628
 
37975756-Guia-de-C
37975756-Guia-de-C37975756-Guia-de-C
37975756-Guia-de-C
liberaunlibroupeg
 
Portafolio de evidencias actividades
Portafolio de evidencias actividadesPortafolio de evidencias actividades
Portafolio de evidencias actividades
James 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
 
Informatica
InformaticaInformatica
Informatica
LauraCoello4
 
Programacion
ProgramacionProgramacion
Programacion
edison
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
jograci
 
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
JoseEstebanTelloEstr
 
Curso c sharp
Curso c sharpCurso c sharp
Curso c sharp
francorossituc
 
El mundo del lenguaje c++
El mundo del lenguaje c++El mundo del lenguaje c++
El mundo del lenguaje c++
Alejandro Gaspar
 
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
Fernando Solis
 
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
Johan Stiven Peña Gomez
 
1 eda teo
1 eda teo1 eda teo
1 eda teo
Jorvich Garcia
 
Nivel de programacion web
Nivel de programacion webNivel de programacion web
Nivel de programacion web
Edwin Cuervo
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
michaelalta
 

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 dumping
xavazque2
 
146817358 android
146817358 android146817358 android
146817358 android
xavazque2
 
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
xavazque2
 
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
xavazque2
 
325940441 motion-ui
325940441 motion-ui325940441 motion-ui
325940441 motion-ui
xavazque2
 
371081023 curso-desarrollo-android
371081023 curso-desarrollo-android371081023 curso-desarrollo-android
371081023 curso-desarrollo-android
xavazque2
 
4.1. validaciones-y-excepciones
4.1. validaciones-y-excepciones4.1. validaciones-y-excepciones
4.1. validaciones-y-excepciones
xavazque2
 
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
xavazque2
 
5.1. stateles stateful-protocolo_http
5.1. stateles stateful-protocolo_http5.1. stateles stateful-protocolo_http
5.1. stateles stateful-protocolo_http
xavazque2
 
435338801 programacion-mobile-android
435338801 programacion-mobile-android435338801 programacion-mobile-android
435338801 programacion-mobile-android
xavazque2
 
457126889 android-pdf
457126889 android-pdf457126889 android-pdf
457126889 android-pdf
xavazque2
 
266521557 apuntes-unidad-formativa-app-inventor
266521557 apuntes-unidad-formativa-app-inventor266521557 apuntes-unidad-formativa-app-inventor
266521557 apuntes-unidad-formativa-app-inventor
xavazque2
 
7. react js-1
7. react js-17. react js-1
7. react js-1
xavazque2
 
Tp1
Tp1Tp1
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
xavazque2
 
484717855 transmutacion-de-energias-pdf
484717855 transmutacion-de-energias-pdf484717855 transmutacion-de-energias-pdf
484717855 transmutacion-de-energias-pdf
xavazque2
 
5.layouts
5.layouts5.layouts
5.layouts
xavazque2
 
6.2. js
6.2. js6.2. js
6.2. js
xavazque2
 
2.1. arena-y-binding
2.1. arena-y-binding2.1. arena-y-binding
2.1. arena-y-binding
xavazque2
 
411958729 curso-de-delphi-pdf
411958729 curso-de-delphi-pdf411958729 curso-de-delphi-pdf
411958729 curso-de-delphi-pdf
xavazque2
 

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

Estructuras básicas_ conceptos básicos de programación (1).pdf
Estructuras básicas_ conceptos básicos de programación  (1).pdfEstructuras básicas_ conceptos básicos de programación  (1).pdf
Estructuras básicas_ conceptos básicos de programación (1).pdf
AnaSofaRosmaya
 
Excel Avanzado_ Diagrama de Pareto .pdf
Excel Avanzado_  Diagrama de Pareto .pdfExcel Avanzado_  Diagrama de Pareto .pdf
Excel Avanzado_ Diagrama de Pareto .pdf
IsabellaLugo3
 
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdfCURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
LagsSolucSoporteTecn
 
Plantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptxPlantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptx
edwinedsonsuyo
 
INFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIAINFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIA
renzocruz180310
 
trabajo _20240621_132119_0000.pdf-.......
trabajo _20240621_132119_0000.pdf-.......trabajo _20240621_132119_0000.pdf-.......
trabajo _20240621_132119_0000.pdf-.......
m15918387
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
Paola De la Torre
 
Diagrama de pareto.docx trabajo de tecnologia
Diagrama de pareto.docx trabajo de tecnologiaDiagrama de pareto.docx trabajo de tecnologia
Diagrama de pareto.docx trabajo de tecnologia
RazeThefox
 
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajasSlideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
AdrianaRengifo14
 
Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...
Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...
Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...
KukiiSanchez
 
Plan de racionamiento de energía en Venezuela
Plan de racionamiento de energía en VenezuelaPlan de racionamiento de energía en Venezuela
Plan de racionamiento de energía en Venezuela
Gabrielm88
 
informe de diagrama de pareto actividad segundo periodo 11-2
informe de diagrama de pareto actividad segundo periodo 11-2informe de diagrama de pareto actividad segundo periodo 11-2
informe de diagrama de pareto actividad segundo periodo 11-2
SofaNava1
 
Programas relacionados con la telemática.pdf
Programas relacionados con la telemática.pdfProgramas relacionados con la telemática.pdf
Programas relacionados con la telemática.pdf
DiegoPinillo
 
trabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jimtrabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jim
jhonyaicaterodriguez
 
Ingeniería en Telemática y ejercicios.pdf
Ingeniería en Telemática y ejercicios.pdfIngeniería en Telemática y ejercicios.pdf
Ingeniería en Telemática y ejercicios.pdf
Camila301231
 
Herramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientasHerramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientas
yessicacarrillo16
 
EXCEL AVANZADO_ DIAGRAMA DE NPARETO .pdf
EXCEL AVANZADO_ DIAGRAMA DE NPARETO .pdfEXCEL AVANZADO_ DIAGRAMA DE NPARETO .pdf
EXCEL AVANZADO_ DIAGRAMA DE NPARETO .pdf
SamuelBedoya6
 
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptxLA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
pauca1501alvar
 
Trabajo de ten¡cnologia 11-2.......... (1).pdf
Trabajo de ten¡cnologia 11-2.......... (1).pdfTrabajo de ten¡cnologia 11-2.......... (1).pdf
Trabajo de ten¡cnologia 11-2.......... (1).pdf
ElizabethAcostaQuinc
 
Gobernanza con SharePoint Premium de principio a fin
Gobernanza con SharePoint Premium de principio a finGobernanza con SharePoint Premium de principio a fin
Gobernanza con SharePoint Premium de principio a fin
Juan Carlos Gonzalez
 

Último (20)

Estructuras básicas_ conceptos básicos de programación (1).pdf
Estructuras básicas_ conceptos básicos de programación  (1).pdfEstructuras básicas_ conceptos básicos de programación  (1).pdf
Estructuras básicas_ conceptos básicos de programación (1).pdf
 
Excel Avanzado_ Diagrama de Pareto .pdf
Excel Avanzado_  Diagrama de Pareto .pdfExcel Avanzado_  Diagrama de Pareto .pdf
Excel Avanzado_ Diagrama de Pareto .pdf
 
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdfCURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
 
Plantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptxPlantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptx
 
INFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIAINFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIA
 
trabajo _20240621_132119_0000.pdf-.......
trabajo _20240621_132119_0000.pdf-.......trabajo _20240621_132119_0000.pdf-.......
trabajo _20240621_132119_0000.pdf-.......
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
 
Diagrama de pareto.docx trabajo de tecnologia
Diagrama de pareto.docx trabajo de tecnologiaDiagrama de pareto.docx trabajo de tecnologia
Diagrama de pareto.docx trabajo de tecnologia
 
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajasSlideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
 
Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...
Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...
Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...
 
Plan de racionamiento de energía en Venezuela
Plan de racionamiento de energía en VenezuelaPlan de racionamiento de energía en Venezuela
Plan de racionamiento de energía en Venezuela
 
informe de diagrama de pareto actividad segundo periodo 11-2
informe de diagrama de pareto actividad segundo periodo 11-2informe de diagrama de pareto actividad segundo periodo 11-2
informe de diagrama de pareto actividad segundo periodo 11-2
 
Programas relacionados con la telemática.pdf
Programas relacionados con la telemática.pdfProgramas relacionados con la telemática.pdf
Programas relacionados con la telemática.pdf
 
trabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jimtrabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jim
 
Ingeniería en Telemática y ejercicios.pdf
Ingeniería en Telemática y ejercicios.pdfIngeniería en Telemática y ejercicios.pdf
Ingeniería en Telemática y ejercicios.pdf
 
Herramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientasHerramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientas
 
EXCEL AVANZADO_ DIAGRAMA DE NPARETO .pdf
EXCEL AVANZADO_ DIAGRAMA DE NPARETO .pdfEXCEL AVANZADO_ DIAGRAMA DE NPARETO .pdf
EXCEL AVANZADO_ DIAGRAMA DE NPARETO .pdf
 
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptxLA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
 
Trabajo de ten¡cnologia 11-2.......... (1).pdf
Trabajo de ten¡cnologia 11-2.......... (1).pdfTrabajo de ten¡cnologia 11-2.......... (1).pdf
Trabajo de ten¡cnologia 11-2.......... (1).pdf
 
Gobernanza con SharePoint Premium de principio a fin
Gobernanza con SharePoint Premium de principio a finGobernanza con SharePoint Premium de principio a fin
Gobernanza con SharePoint Premium de principio a fin
 

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/