Visibility Modifiers Flashcards

1
Q

Cuales son los 4 modificadores de acceso en kotlin?

A

public protected internal private

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

Que entidades podemos marcar con modificadores de acceso?

A

Clases, objetos, interfaces, contructores, funciones, propiedades y setters. Los getters no se puede ya que tienen el mismo que la propiedad a la que estan asociados.

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

Diferencia entre paquete, modulo y file?

A

Un paquete esta compuesto por muchos files. Los files al inicio tienen el nombre del paquete al que pertenecen:

package org.example

Dentro de un file tenemos clases, objetos, funciones etc.

Un modulo es un conjunto de paquetes que a su vez tiene muchos files.

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

Explica la visibilidad de cada entidad dentro de este paquete

//file name: example.kt
package foo
private fun bar(){} 
class Bar{}  
interface Bar{} 

internal val baz = 6

public var bar: Int = 5
private set

A

El default es public que es visible en cualquier sitio

private, solo visible dentro del file, en este caso example.kt

internal, visible en todos los paquetes y files de este modulo

una property puede ser publica y su setter puede ser private que quiere decir que solo puede ser modificado dentro de este file

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

Explica la visibilidad de cada entidad dentro de estas clases

open class Outer{
	private val a = 1
	protected open val b = 2
        internal val c = 3
	val d = 4 
	protected class Nested{
		public val e: Int = 5
	}
}
class Subclass:Outer(){
	//visibilidad de las variables de Outer aqui?
override val b = 5  }
class Unrelated(o: Outer){
	//visibilidad de las variables outer aqui?
A

En la subclase: todas menos la a, porque la private solo permite visibilidad dentro de la clase. Protected igual que private pero si permite visibilidad a subclases. Y por ultimo internal, permite visibilidad dentro del mismo modulo.

En Unrelated: solo la internal, mismo modulo y la d que es public. Private y protected no son visible porque es una clase distinta y no hereda

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

Que es una variable local?

A

Son aquellas que solo operan dentro del marco de una funcion

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