Curso de Android para Principiantes

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 53

CURSO DE ANDROID PARA PRINCIPIANTES.

IDE: ENTORNO DE DESARROLLO INTEGRADO.


SDK O API: SON LAS PLATAFORMAS O VERSIONES DEL SISTEMA OPERATIVO ANDROID,
ASI COMO EL EJEMPLO DE WINDOWS.
APPS: APLICACIONES.
PLATAFORMA DE DESARROLLADORES.
PARA QUE PLATAFORMA ANDROID SE VA A CREAR NUESTRO PROYECTO.(PARA UNA
TABLETA O TELEFONO, SISTEMA OPERATIVO APLE, PARA UN AUTOMOVIL O
PRODUCTOS ANDROID). DÁNDONOS UNAS PLANTILLAS DISEÑADAS (VACIAS, DE
MENUS, MAPAS, BOTONES, ETC).
ACTIVITY ES EL NOMBRE DE LA PANTALLA PARA ANDROID.

CONFIGURAR TU PROYECTO.
NOMBRE DEL PROYECTO NOMBRE DEL PAQUETE (EMPRESA)LENG. DE
PROGRAMACIONRUTA A GUARDAR
SELECIONAR LA VERSIÓN MÍNIMA DE ANDROID AL SELECCIONAR EL PROYECTO.
PULSAR PLAY POR PRIMERA VEZ PARA INSTALAR Y CREAR EL EMULADOR, DE AHÍ “NO
DEVICES” Y FINALMENTE ABRIR “OPEN AVD MANAGER”.
OPEN AVD MANAGER. PARA CREAR EL EMULADOR.

OPEN AVD MANAGER.


SE ABRE LA PANTALLA DE DISPOSITIVOS VIRTUALES.

SELECCIONAR UN DISPOSTIVO ANDROID COMO EMULADOR POR UN


EJEMPLO UN PIXEL 3, QUE TENGA LA OPCION DE PLAY STORE.
SE SELECCIONA UNA VERSION DEL SISTEMA OPERATIVO COMO ES LA
VERSION 10 Y SE DA NEXT.

SE DA SIGUIENTE.
EN LA VERSION 4.1.1 (MAS RECIENTE).

SELECCIONAR UN DISPOSITIVO ANDROID COMO EMULADOR POR UN


EJEMPLO UN PIXEL 3, QUE TENGA LA OPCION DE PLAY STORE.
SE SELECCIONA UNA VERSION DEL SISTEMA OPERATIVO COMO ES LA
VERSION 10 Y SE DA NEXT.

SE ACEPTA LA LICENCIA.
INSTALANDO EL COMPONENTE.
TERMINA.
YA SE TIENE EL EMULADOR CREADO Y SE CIERRA.

ECHO LO ANTERIOR SE PULSA PLAY Y SE CREARÁ LA APP DENTRO DEL


EMULADOR QUE SE ACABA DE HACER. “HELLO ANDROID STUDIO). SI NO SE
ACTIVA PULSAR “EMULADOR” Y PULSAR O ACTIVAR LAUNCH. PARA QUE
APAREZCA LA PANTALLA DEL TELEFONO.
PARA DETENER LA APP DEL EMULADOR SE DA PULSAR EN EL BOTON STOP.
Ejecuta tu primer programa en Kotlin
En esta tarea, usarás un editor en un sitio web para comenzar a programar en lenguaje Kotlin de
inmediato.

Cómo usar un editor de código interactivo:


En lugar de instalar software en la computadora, puedes usar una herramienta basada
en la Web para crear tu primer programa.

1. Abre https://developer.android.com/training/kotlinplayground en tu navegador. Se abrirá una


herramienta de programación que puedes ejecutar en el navegador.
2. Deberías ver una página similar a la que se muestra en la siguiente captura de pantalla,
con un editor de código en el medio.
O TAMBIEN EN GOOGLE, PULSAR KOTLIN ONLINE

O BIEN EN ANDROID STUDIO.


PRACTICA 1.
VARIABLES Y CONSTANTES.

VARIABLES.
Para almacenar datos temporales.

ESTA ES LA CLASE DONDE SE VA A CREAR EL PROYECTO.


Uso de la NOMENCLATURA CAMELCASE (DE CAMELLO, ALTERNANDO
LETRAS MAYUSCULAS CON MINUSCULAS) PARA CREAR LAS VARIABLES Y
DAR NOMBRE ASI COMO A LAS CONSTANTES.
LA PRIMERA LETRA DE LA VARIABLE IRÁ CON MINÚSCULA para la primera
palabra, la segunda con letra mayúscula y minúsculas y así sucesivamente,
sin dejar espacios entre las palabras. VARIABLE CADENA DE TEXTO

Variable numérica.
CONSTANTES.
OTROS EJEMPLOS MAS, CONSTANTES Y VARIABLES:
// MAS EJEMPLOS:
//CONSTANTES:
val a = 2
println(a)
val b = "HOLA COMO ESTAS?"
println(b)
println("b = $b")

val c = true
println(c)
// mas ejemplos de VARIABLES
//var d = 2
// println("d = $d")

// KOTLIN MARCA ERROR PORQUE d ya vale 2 como numérico y no es cadena string


// var d = "hola"
var d: Int
d = 5
println("d = $d")
DATOS NULOS Y DE CUALQUIER VALOR
(OBJETO).VARIABLES QUE PUEDEN CONTENER UN
VALOR NULO.
// VARIABLES QUR PUEDEN CONTENER UN VALOR NULO
// En kotlin ninguna variable se considera un valor null o nulo, por mas que le
pongamos
// YA EVITA QUE EXISTAN ERRORES EN TIEMPO DE EJECUCIÓN, EL SIMBOLO ? JUNTO A LA
STRING, LE AVISA
// A KOTLIN QUE PUDIERA EXISTIR UN VARIABLE NULA, PARA QUE LA CHEQUE Y NO LE
HAGA CASO.
// SI SE LE AGREGA A LA VARIABLE NULA LA PALABRA Any? PUEDE ADQUIRIR CUALQUIER
VALOR YA SEA ENTERO, CADENA, ETC
// var objNull: String?
var objNull: Any?
objNull = null
objNull = "HOLA MUNDO KOTLIN"
objNull = 2
println(objNull)

//CAPTURA DESDE EL TECLADO A TRAVES DE UNA CONSTANTE


while(true) {
val myKeyboard = myReadLine();
println("La linea a leer es: ${myKeyboard}")
if (myKeyboard.equals("end"))
{
break
}
}

//fun myReadLine(): String?

// private fun myReadLine(): Any? {


// Lamar A LA FUNCION myReadLine
private fun myReadLine(): String? {
val line = readLine()
return if ( line.isNullOrEmpty()) null else line
}
LECCIÓN 2.
TIPOS DE DATOS. (DATA TYPES)
Se manejan 4 tipos de datos: Definiendo el tipo de atributo que va a tener
la variable o constante.
1. De cadena o texto : “hola” (string)
2. Enteros o números: 1 (Byte, Int, Short, Long)
( Byte : Longitud donde se pueden representar números entre -127 y
128 positivo)
(Short: Una longitud entre -32768 y 32767)
(int: Longitud entre 0 a 9, long: manejar números enteros muy
grandes)
Byte y Short ocupan más memoria.
3. Decimales: 2.2 (Float: representa un número decimal de hasta 32 bits
y un Double: representa un número decimal de 64 bits)
4. Booleanos: Bool : Es un tipo de dato lógico, cuando una condición es
verdadera o falsa: true o false, si o no.
“Kotlin maneja la diferencia de tipos”.
Datos booleanos

// IMPRESION SENCILLA
// println("HOLA BIENVENIDOS A KOTLIN")
newtopic("HOLA BIENVENIDOS A KOTLIN")
}

// IMPRIMIR EL MENSAJE DE UNA FORMA MAS ENRIQUECIDA


private fun newtopic(topic: String) {
// topic es un argumento tipo string
print(topic)
}

LECCIÓN 3.
SENTENCIA IF (PARTE 1: OPERADORES CONDICIONALES)
// OPERADORES CONDICIONALES
// > MAYOR QUE
// < MENOR QUE
// (> = ) MAYOR O IGUAL QUE
// (< = ) MENOR O IGUAL QUE
// (= =) IGUALDAD
// (! =) DESIGUALDAD
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//LECCION 1
variablesYconstantes()
// LECCION 2
tiposDeDatos()
// LECCION 3
sentenciaIf()
PRACTICA 3.
SENTENCIA IF (PARTE 2:OPERADORES LÓGICOS)
// OPERADORES LOGICOS
// && OPERADOR "y"
// || OPERADOR "o"
// ! OPERADOR "no"

private fun sentenciaIf() {


val myNumber = 7
// OPERADORES CONDICIONALES
// > MAYOR QUE
// < MENOR QUE
// (> = ) MAYOR O IGUAL QUE
// (< = ) MENOR O IGUAL QUE
// (= =) IGUALDAD
// (! =) DESIGUALDAD
// Sentencia if

// OPERADORES LOGICOS
// && OPERADOR "y"
// || OPERADOR "o"
// ! OPERADOR "no"

if (myNumber <= 10 && myNumber > 5) {


println("$myNumber es menor o igual que 10 y mayor que 5")
} else {
//Sentencia else
println("$myNumber es mayor que 10 o menor o igual que 5")
}
// OTRO EJEMPLO
if ((myNumber <= 10 && myNumber > 5) || myNumber == 53) {
println("$myNumber es menor o igual que 10 y mayor que 5 o es igual
a
53") } else {
//Sentencia else
println("$myNumber es mayor que 10 o menor o igual que 5 y no es
igual a 53")
}
}
}
SENTENCIA ELSE IF
// OPERADORES LOGICOS
// && OPERADOR "y"
// || OPERADOR "o"
// ! OPERADOR "no" //OPERADOR (¡) NO, NIEGA TODO LO CONTRARIO
QUE ESTE EN EL PARÉNTESIS

// OTRO EJEMPLO
if (!(myNumber <= 10 && myNumber > 5) || myNumber == 53) {
println("$myNumber es menor o igual que 10 y mayor que 5 o es igual
a
53") } else if (myNumber == 60) {
// sentencia if else
println("$myNumber es igual a 60")
} else if (myNumber != 70) {
// sentencia if else
println("$myNumber es igual a 70")
} else {
//Sentencia else
println("$myNumber es mayor que 10 o menor o igual que 5 y no es
igual a 53")
}
}
}

LECCIÓN 4.
SENTENCIA DE CONTROL DE FLUJO: WHEN (SWICH-CASE EN C#).
/* AQUI VAMOS A HABLAR DE LA SENTENCIA WHEN */
fun sentenciaWhen() {
// When con String O cadena
val country = "EEUU"

when (country) {
// (->) ejecuta el bloque de código
"ESPAÑA"-> {
println("EL IDIOMA ES ESPAÑOL")
} "MEXICO"-> {
println("EL IDIOMA ES ESPAÑOL")
} "PERU"-> {
println("EL IDIOMA ES ESPAÑOL")
} "COLOMBIA"-> {
println("EL IDIOMA ES ESPAÑOL")
} "ARGENTINA"-> {
println("EL IDIOMA ES ESPAÑOL")
} "EEUU"-> {
println("EL IDIOMA ES INGLES")
} "FRANCIA"-> {
println("EL IDIOMA ES FRANCES")
} else -> {
println("NO CONOCEMOS EL IDIOMA")
}

}
}

EJEMPLO2.
// OTRO EJEMPLO SERIA, PARA AHORRAR LINEAS. ASI:
val country = "EEUU"
when (country) {
// (->) ejecuta el bloque de código
"ESPAÑA", "MEXICO", "PERU", "COLOMBIA", "ARGENTINA" -> {
println("EL IDIOMA ES ESPAÑOL")
} "EEUU"-> {
println("EL IDIOMA ES INGLES")
} "FRANCIA"-> {
println("EL IDIOMA ES FRANCES")
} else -> {
println("NO CONOCEMOS EL IDIOMA")
}
}
}

EJEMPLO3.
//WHEN CON UNA CONSTANTE ENTERA (Int).
// When con Int
val edad = 300
when(edad) {
0, 1, 2 -> {
println("ERES UN BEBE")
} in 3..10 -> {
println("ERES UN NIÑO")
} in 11..17 -> {
println("ERES UN ADOLESCENTE")
} in 18..69 -> {
println("ERES UN ADULTO")
} in 70..99 -> {
println("ERES UN ABUELITO")
} else -> {
println("ERES UN MARCIANO")
}
}
}
}
INGRESO DE CAPTURA DE DATOS POR TECLADO, USANDO KOTLIN NATIVO.

SI SALE AL CORRER EL PROGRAMA MARCA ESTE ERROR, HACER LOS PASOS SIGUIENTES:

Estoy enfrentando el siguiente error mientras construyo mi aplicación.

The minCompileSdk (31) specified in a dependency's AAR


metadata (META-INF/com/android/build/gradle/aar-
metadata.properties) is greater than this module's
compileSdkVersion (android-30).
Dependency: androidx.core:core-ktx:1.7.0-alpha02. AAR metadata file:
C:\Users\ssc.gradle\caches\transforms-2\files-
2.1 \a20beb0771f59a8ddbbb8d416ea06a9d\jetified-core-ktx-1.7.0-
alpha02\META-INF\com\android\build\gradle\aar-metadata.properties.

1. SI AL MOMENTO DE CORRER EL PROGRAMA MARCA ERROR POR LA


VERSIÓN DEL SDK DE ANDROID (30 A 31 INSTALADO), HACER LO
SIGUIENTE, IRSE A LA CARPETA DE GRADLE SCRIPTS Y ENTRAR AL
ARCHIVO build.gradle y cambiar por lo siguiente:

2. Debe establecer
ambos compileSdkVersion y targetSdkVersion en 31 su
build.gradle (app) archivo.

android {
compileSdkVersion 31 // <-- This
defaultConfig {
applicationId "com.example.app"
targetSdkVersion 31 // <-- and this too
// ...
}
}
3.

4. https://exerror.com/the-mincompilesdk-31-specified-in-a-
dependencys-aar-metadata-is-greater-than-this-modules-
compilesdkversion/
(LINK PARA ACCESAR Y RESOLVER EL ERROR ANTERIOR DE
COMPILACIÓN).
package com.example.capturateclado

fun main() {
println("PRACTICA IF_THEN_ELSE")
println("INTRODUCE LA TEMPERATURA")
var temp = readLine()!!.toString()
if (temp > 35.toString()) {
println("PODRAS PRACTICAR NATACION O SQUASH.")
} else if (temp > 25.toString() && temp <= 35.toString()) {
println("PODRAS PRACTICAR TENNIS O VOLLEYBALL.")
} else if (temp > 15.toString() && temp <= 25.toString()) {
println("PODRAS PRACTICAR FÚTBOL O BALONCESTO.")
} else if ( temp < 15.toString()) {
println("PODRAS PRACTICAR AJEDREZ.")
}
}

LECCIÓN 5.
ARRAYS O ARREGLOS.
(CONJUNTO DE VALORES Y ORDENADOS, ALMACEN DE DATOS DE UN
MISMO TIPO, ES DECIR QUE TODOS SEAN STRING O BIEN ENTEROS).
ES UNA COLECCIÓN DE VALORES ORDENADOS.
package com.example.kotlinparaprincipiantes

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import java.security.KeyStore
import java.util.ArrayList

class MainActivity : AppCompatActivity() {


override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//LECCION 1
variablesYconstantes()
// LECCION 2
tiposDeDatos()
// LECCION 3
sentenciaIf()
// LECCION 4
sentenciaWhen()
// LECCION 5
arrays()
}

/*
AQUI VAMOS A HABLAR DE ARRAYS O ARREGLOS
*/
fun arrays() {
val nombre = "Enrique"
val apellido = "PEREZ ULLOA"
val compañia = "LOGICOS"
val edad = "29"
val edad = "40"
val edad = "50"

// CREACION DE UNA ARRAY


val myArray: ArrayList<String> = arrayListOf<String>()
// AÑADIR DATOS DE UNO EN UNO, TAMBIEN PERMITE ELEMENTOS REPETIDOS
myArray.add(nombre)
myArray.add(apellido)
myArray.add(compañia)
myArray.add(edad)
myArray.add(edad)
myArray.add(edad)
println(myArray)

// AÑADIR UN CONJUNTO DE DATOS

myArray.addAll(listOf("HOLA", "BIENVENIDOS AL CURSO"))


println(myArray)

// ACCESO A DATOS
val myCompañia:String = myArray[2]
println(myCompañia)

// MODIFICACION DE DATOS
myArray[6] = "PON ATENCION A LO EXPLICADO"
println(myArray)

//ELIMINAR DATOS
myArray.removeAt(6)
println(myArray)

// RECORRER DATOS
// forEach esta función lo que va a hacer es pasar por cada uno de los
datos (ES UN BUCLE)
// it es el valor que toma al estar accediendo a un dato
myArray.forEach { it;String
println(it)
}

// OTRAS OPERACIONES
// CUANTOS O EL NUMERO DE ELEMENTOS QUE SE TIENEN
println(myArray.count())
// ELIMINAR A TODOS LOS ELEMENTOS DE NUESTRO ARREGLO
myArray.clear()
println(myArray.count())
// ACCEDER AL PRIMER ELEMENTO
myArray.first()
println(myArray.firt()

// ACCEDER AL ULTIMO ELEMENTO


myArray.last()
println(myArray.last())

// HACER OPERACIONES DE ORDENACION CON sort(), ORDENARLOS POR ORDEN


ALFABETICO
myArray.sort()
println(myArray)

}
LECCIÓN 6.
MAPS O DICCIONARIOS.
(NO IMPORTA EL ORDEN DE COMO AÑADIR LOS ELEMENTOS AL MAPA O
DICCIONARO, LOS DATOS SE VAN A AGRUPAR DE LA FORMA CLAVE Y VALOR,
DONDE SE DEBE ASOCIAR UNA CLAVE A UN VALOR, LAS CLAVES Y VALORES
SERAN DEL MISMO TIPO DE DATOS. AUNQUE LA CLAVE Y EL VALOR PODRAN
SER DE DIFERENTE TIPO DE DATO). LAS CLAVES NO PUEDEN SER
REPETIDAS, PERO LOS VALORES SI.NOS FACILITAN LA BUSQUEDA YA QUE
SERA INDEXADA A TRAVES DE UNA CLAVE.
package com.example.kotlinparaprincipiantes

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import java.security.KeyStore
import java.util.ArrayList

class MainActivity : AppCompatActivity() {


override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//LECCION 1
//variablesYconstantes()
// LECCION 2
//tiposDeDatos()
// LECCION 3
//sentenciaIf()
// LECCION 4
//sentenciaWhen()
// LECCION 5
//arrays()
// LECCION 6
maps()
}
/*
AQUI VAMOS A HABLAR DE MAPAS, TAMBIEN LLAMADO DICCIONARIOS
*/
fun maps() {
/* PARA CREAR UN MAPA TENEMOS QUE CREAR UN MAPA CON UN TIPO DE DATO CLAVE Y CON
UN TIPO DE DATO VALOR,
ESCRIBIENDO ENTRE < > EL TIPO DE DATO CLAVE Y EL TIPO DE DATO VALOR
*/
// SIENDO EL TIPO DE DATO DE LA CLAVE: STRING Y EL TIPO DE DATO DE NUESTRO
VALOR: Int
// mapOf() NOS INDICA QUE EL MAPA TIENE CERO ELEMENTOS
// SINTAXIS PARA LA CREACION DEL MAPA O DICCIONARIO
val myMap: Map<String, Int> = mapOf()

println(myMap)

//AÑADIR DATOS O ELEMENTOS


// myMap = mapOf("ENRIQUE" to 1, "SERGIO" to 2, "GUADALUPE" to 3)
println(myMap)

//AÑADIR MAS DATOS O ELEMENTOS AL MAPA PARA QUE NO SE PIERDAN


myMap = mutableMapOf("ENRIQUE" to 1, "SERGIO" to 2, "GUADALUPE" to 3)
println(myMap)

//AÑADIR UN SOLO VALOR


myMap["ANA"] = 7
myMap.put("MARIA", 8)
println(myMap)

myMap.put("ENRIQUE",3)
println(myMap)
myMap.put("MARCOS",3)
println(myMap)
myMap["ENRIQUE"] = 4
println(myMap)

//ACCESO A DATOS
println(myMap["ENRIQUE"])

// ELIMINAR UN DATO
myMap.remove("ENRIQUE")
println(myMap)

LECCIÓN 7.
BUCLES FOR/WHILE.
LOS BUCLES SIRVEN PARA RECORRER ESTRUCTURAS.
/*
AQUI VAMOS A HABLER DE LOOPS, TAMBIEN LLAMADOS BUCLES
*/
private fun loops() {

// BUCLES
val myArray: List<String> = listOf("HOLA", "BIENVENIDOS AL CURSO")
val myMap : MutableMap<String, Int> = mutableMapOf ("ENRIQUE" to 1,
"SERGIO" to 2, "GUADALUPE" to 3)

// CICLO FOR
for(myString in myArray) {
println(myString)
}
for(myElemento in myMap) {
println("${myElemento.key}-${myElemento.value}")
}

for (x:Int in 0..10) {


println(x)
}
for (x:Int in 0 until 10) {
println(x)
}

for (x:Int in 9 until 30) {


println(x)
}

for (x:Int in 0..10 step 2) {


println(x)
}

for (x:Int in 10 downTo 0 step 3) {


println(x)
}

val myNumericArray = (0..20)


for (myNum: int in myNumericArray) {
println(myNum)
}

// BUCLE WHILE (MIENTRAS). EN EL MOMENTO QUE UNA EJECUCION SEA FALSA EL


BUCLE SE DEJARÁ DE EJECUTAR
var cont = 0
var acum =
0 var prom
while (cont < 10) {
println(cont)
// x++ se incrementa de 1 en 1, desde 1
//x++
acum = acum + cont
cont += 2
}
prom = Acum/5
println(prom)
}

LECCIÓN 8.
SEGURIDAD CONTRA NULOS (NULL SAFETY).
PREVENIR VARIABLES QUE PUEDEN SER NULAS, PREVENIR ERRORES
/*
AQUI VAMOS A HABLAR DE SEGURIDAD CONTRA NULOS (NULL SAFETY)
PREVENIR VARIABLES QUE PUEDEN SER NULAS, PREVENIR ERRORES
*/
}
private fun nullSafety() {
var myString = "CBTIS 229"
// myString = null ESTO DARIA UN ERROR DE COMPILACION
println(myString)
// VARIABLE NULL SAFETY
var mySafetyString: String? = "CBTIS 229 NULL SAFETY"
mySafetyString = null
println (mySafetyString)

mySafetyString = "HOLA COMO ESTAS"


//println (mySafetyString)
// la variable no sea nula (!!)
println(mySafetyString!!)

if (mySafetyString != null) {
println(mySafetyString!!)
} else {
// println (mySafetyString)
}

// llAMADAS SEGURAS Safe call, length nos dará el número de


caracteres
println(mySafetyString?.length)
// (!!) o (it) forzando que la variable string no sea nula o el
valor no sea nulo
// let hace que la variable no sea un valor nulo
mySafetyString?.let {
println(it)
// EJECUTAR UN CÓDIGO QUE SEA NULO CON LA INSTRUCCION run
} ?: run {
println(mySafetyString)
}

}
LECCIÓN 9.
FUNCIONES.
(LAS FUNCIONES SON FRAGMENTOS DE CÓDIGO INDEPENDIENTES QUE
REALIZAN UNA TAREA ESPECIFICA.
/*
AQUI VAMOS A HABLAR DE FUNCIONES
*/
private fun funciones() {
sayHello()
sayHello()
sayHello()
sayMyname("enrique")
sayMyname("PEDRO")
sayMyname("SARA")

sayMynameAndEdad( "ENRIQUE", 40)

val sumaResultado : Int = sumarDosNumeros(10, 5)


println(sumaResultado)
println(sumarDosNumeros(15, 9))
println(sumarDosNumeros(10,sumarDosNumeros(5, 5)))

// otro ejemplo con funcion y retorno


val a = 2
val b = 3
println("$a + $b = ${suma(a, b)}")
println("$a + $b = ${resta(a, b)}")

// FUNCION Infix, ABRIMOS UN NUEVO TEMA


//newTopic("Infix")
val c= -3
// APLICANDO EL METODO Abs valor absoluto de c = -3 será c = 3
println(c.enableAbs(false))
}

// FUNCION SIMPLE
private fun sayHello() {
println("HOLA COMO ESTAS")
}

// FUNCIONES CON UN PARÁMETRO DE ENTRADA


fun sayMyname(name: String) {
println("HOLA, MI NOMBRE ES $name")
}

// FUNCIONES CON MAS DE UN PARÁMETRO DE ENTRADA


fun sayMynameAndEdad(name: String, edad: Int) {
println("HOLA, MI NOMBRE ES $name Y MI EDAD ES $edad")
}

// FUNCIONES CON UN VALOR DE RETORNO (INT, ES EL TIPO DE DATO ENTERO,


CONSTANTE suma
fun sumarDosNumeros(primerNumero: Int, segundoNumero: Int) : Int {
val suma: Int = primerNumero + segundoNumero
return suma
}

// OTRO EJEMPLO DE FUNCION CON RETORNO, CON ARGUMENTOS A Y B


fun suma(a: Int, b: Int): Int {
return a + b
}
// SE QUITA LA DEVOLUCION A ENTEROS Y LAS LLAVES
fun resta(a: Int, b: Int) = a - b

// EXTENCION Infix, extiende una clase con método personalizado, en un función.


// METODO PERSONALIZADO VALOR ABSOLUTO, HACIENDOLO CON LA CLASE Int
// SI NUESTRO PARAMETRO enable es afirmativo devuelve el valor de this, de lo
contrario simplemente this
// SI ESTA HABILITADO SACA EL VALOR ABSOLUTO SI NO RETORNA EL MISMO VALOR, COMO
SE PUSO EL FALSE SERÁ C = -3 Y
// NO C = 3.
infix fun Int.enableAbs(enable: Boolean) = if (enable) abs(this) else this

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

EL ARGUMENTO UNID = VOID EN OTROS LENGUAJES DE PROGRAMACIÓN.


}

}
LECCIÓN 10.
CLASES.(objetos).
UNA CLASE TAMBIEN SE CONOCE COMO OBJETO, ES UNA CONSTRUCCION
FLEXIBLE, DE USO GENERAL, PARA DEFINIR NUEVOS TIPOS. PUEDEN
CONTENER EN SU INTERIOR PROPIEDADES Y METODOS.
// AQUI VAMOS A HABLAR DE LAS CLASES
// PARA CREAR UNA CLASE SE DEBE HACER LO SIGUIENTE: IR AL FICHERO DONDE SE
DESEA CREAR LA CLASE: KOTLIN PARA PRINCIPIANTES, DAR CLICK BOTON DERECHO DEL
MOUSE, DAR NEW, KOTLIN FILE/CLASS Y FINALMENTE PULSAR EN kotlin File/Class.
Seleccionar Class y darle el nombre y ok.Para tener la clase creada.

package com.example.kotlinparaprincipiantes

class miClase {
}

SI QUEREMOS CAMBIAR EL NOMBRE DE LA CLASE, HACER LO SIGUIENTE:


IRSE A MI CLASE, DAR BOTON DERECHO, REFACTOR Y RENAME.
Y CAMBIAMOS EL NOMBRE POR Programador.
package com.example.kotlinparaprincipiantes
/*
*** CREADO POR ENRIQUE PEREZ MORENO 02/02/2021
*/
// TENDRA UNA PROPIEDAD LLAMADA nombre, edad y lenguajes
class Programador(name: String, edad: Int, lenguajes: Array<String>) {
// CONTENDRA ATRIBUTOS O PROPIEDADES

// o también se puede cambiar de String a Lenguage

// TENDRA UNA PROPIEDAD LLAMADA nombre, edad y lenguajes. CONTENDRA ATRIBUTOS O


PROPIEDADES
class Programador(val name: String, var edad: Int, val lenguajes:
Array<Language>) {
// ESTRUCTURA ENUMERADA
enum class Language {
KOTLIN,
SWIFT,
JAVA,
JAVASCRIPT
}

// SE PUEDE CREAR UNA FUNCION


fun code() {
for(lenguaje: Language in lenguajes) {
println("ESTOY PROGRAMANDO EN $lenguaje")
}
}
}
// REGRESAMOS A:MainActivity.kt
// AQUI VAMOS A HABLAR DE LAS CLASES, SE ASIGNA LA CLASE A UNA CONSTANTE
fun clases() {
val henry = Programador("Enrique",40,
arrayOf(Programador.Language.KOTLIN, Programador.Language.SWIFT))
println(henry.name)
henry.edad = 50
henry.code()

val sara = Programador("SARA",35, arrayOf(Programador.Language.JAVA))


sara.code()
}

*** NOS DARÁ COMO RESULTADO AL COMPILARLO, LO SIGUIENTE:

I/System.out: Enrique
I/System.out: ESTOY PROGRAMANDO EN
KOTLIN
ESTOY PROGRAMANDO EN SWIFT
ESTOY PROGRAMANDO EN JAVA

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy