Classes Flashcards

1
Q

Que problema existe con los contructores primarios?

A

Que problema existe con los contructores primarios?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Que problema existe con los contructores primarios?

A

Se pueden declarar e inicializar propiedades dentro del constructor primario o fuera de este pero nunca podemos dentro de los constructores secundarios o bloques init

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Dime el orden de ejecucion:

fun main(args : Array) {

val David = Persona(“David”, 184)

}
    class Persona(val name: String){ 
        var alt : Int = -1 
    init { 
        alt += 10
    }

    constructor(name : String, altura: Int) : this(name) { 
        this.alt = altura 
} 

}

A

Estamos en un caso con contructor primario y constructor secundario donde el constructor secundario debe siempre llamar al primario con this(lo que sea que pasamos por parametro). Cuando se crea objeto se podra llamar al cons primario o secundario

ORDEN

Entra al constructor secundario y llama al constructor primario

ejecuta constructor primario

ejecuta en orden descendente bloques init e inicializadores de propiedades(en este caso inicalizador alt y luego init)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Dime orden de ejecucion:

fun main(args : Array) {

val David = Persona(“David”, 184)

}
    class Persona{
        var alt : Int = -1 
        var name: String = "" 
    init {
        alt += 100 
    }
        constructor(name : String, altura: Int){
            this.name = name
            this.alt = altura
    }
        constructor(name : String){
            this.name = name
        }

}

A

Estamos en el caso que no hay constructor primario y solo hay secundarios. Cuando se construya un objeto se llamara a uno de los dos.

ORDEN

Se llama al primer constructor secundario pero no se ejecuta lo de dentro

Se ejecuta en orden descendente los inicializadores de propiedades y los bloques init(en este caso inicializadores alt y name, despues init)

Por ultimo se ejecuta el bloque del constructor secundario

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Cual es el objetivo primario de una clase abstracta?

A

La idea de una clase abstracta (clase padre) es que muchas clases hereden de esta una estructura comun:

  • Propiedades y metodos no abstractos que seran comunes para todos los hijos
  • Propiedades y metodos abstractos (usar abstract) que seran sobreescritos (usar override) en cada hijo para que se comporten de manera especifica para cada hijo
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Que son los members de una clase?

A

Se denominan members al conjunto de propiedades y metodos dentro de una clase

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Por que no podemos crear objetos de un clase abstracta? 2 motivos

A
  1. Si creamos objetos de una clase abstracta que posee metodos abstractos, es decir sin body, si llamasemos a estos metodos desde dicho objeto ¿Que pasaria?
  2. Las clases abstractas son plantillas que se usan para crear nuevas clases mas facilmente y estas plantillas no son concretas, y un objeto debe ser concretos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Ejemplo basico donde usar una clase abstracta

A

class company con metodos
CompanyDetails con los detalles de la compañia
EmployeesDetails abstracto
class Manager extiende de company con metodos
CompanyDetails que hereda de company no tocar
EmployeesDetails sobreescribimos para este
class Informatico extiende de company con metodos
CompanyDetails que hereda de company no tocar
EmployeesDetails sobreescribimos para este

How well did you know this?
1
Not at all
2
3
4
5
Perfectly