Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Clases y objetos

OBJETIVO

  • Crear el código para generar una clase
  • Instanciar clases

REQUISITOS

  1. Leer sobre Programación Orientada a Objetos

DESARROLLO

La Programación orientada objetos interpreta problemas y los abstrae a modelos de objetos con atributos y métodos.

Una clase es un modelo abstracto de un objeto, y su representación más básica en kotlin es la siguiente:

class Phone{

}

Haciendo un repaso, en kotlin todas las variables son tomadas como objetos. Por tanto, incluso los tipos de datos primitivos son envueltos en un objeto para que puedan tener métodos.

val a=20
println("a es igual a 20? ${a.equals(20)}")

a es igual a 20? true

la clase Int contiene un método llamado equals, al crear val a, estoy creando un objeto e la clase Int.

Para tener una lista donde guardar mi clase, crearemos un package llamado clases.

Dentro de ese paquete, vamos a crear nuestra clase, el proceso es similar a cuando creamos el archivo main.kt de cada proyecto, pero selecciconando Class en vez de File. Nombrar a esa clase Phone

Dentro de la clase, declararemos ciertos atributos:

  • bandera para saber si el dispositivo está prendido
  • nombre de marca

la clase nos queda así

class Phone {

    //atributos
    var isOn = false
    lateinit var model:String   
}

Abora vamos a integrarle métodos, que representan accciones que pueden ser llevadas a cabo con el objeto que representa la clase. en este caso vamos a poder prenderlo y apagarlo. También tendremoss otro método para consultar estatus de prendido del teléfono.

class Phone{
...

    //métodos
    fun turnOn(){
        isOn = true
    }

    fun turnOff(){
        isOn = false
    }
    
    fun getTurn(){
        val turnMode = if(isOn) "Encendido" else "Apagado"
        println("el teléfono esta $turnMode")
    }
    
    

}

notar que los métodos modifican mi atributo prendido o apagado.

Para instanciar una clase, es decir, para crear un objeto a partir de la clase definida, vamos a declarar una variable que genere la instancia

val myPhone = Phone()

Aquí un gif que ejemplifica la declaración:

Ahora vamos a consultar el estado de mi teléfono (definimos como valor por defecto apagado), prenderemos el teléfono y volvemos a consultar su estado:

    myPhone.getTurn()
    myPhone.turnOn()
    myPhone.getTurn()

El resultado es el siguiente:

el teléfono esta Apagado

el teléfono esta Encendido

Observemos que para acceder a los métodos o atributos de un objeto usamos la notación punto con la siguiente sintaxis:

    <Objeto>.<atributo/método>

Atrás | Siguiente