Articles of oop

Herencia en Kotlin

Tratando de averiguar con Kotlin los últimos días, leí el documento y encontré un ejemplo. En la parte inferior del artículo : interface A { fun foo() { print("A") } fun bar() } interface B { fun foo() { print("B") } fun bar() { print("bar") } } class C : A { override fun bar() […]

¿Se ha generado el método toString para include miembros de la class base?

Estoy tratando de crear una class DTO (data-transfer-object) en Kotlin para ser llamado desde una aplicación Java. Dado el siguiente código: BaseDto.kt package sandbox.KotlinDataObjects import org.apache.commons.lang3.builder.ToStringBuilder import java.sql.ResultSet import java.sql.SQLException /** * Base DTO * (JSON/XML serialization code removed for clarity) */ abstract class BaseDto( var id: Long = 0 ) { @Throws(SQLException::class) open protected […]

¿Los modificadores de acceso de Kotlin significan lo mismo que en Java?

Kotlin tiene 3 palabras key de acceso: public , private y protected . ¿Significan lo mismo que en Java, o hay diferencias? Además, ¿es internal lo mismo que el package private ? Sigo leyendo sobre "modules" en Kotlin, y no estoy seguro si esa es solo otra palabra para "package".

Anulando la misma firma de diferentes intefaces

en c sharp, si tenemos 2 interfaces, con el mismo método de firma, podemos implementarlas en una class, de la siguiente manera: interface A { void doStuff(); } interface B { void doStuff(); } class Test : A, B { void A.doStuff() { Console.WriteLine("A"); } void B.doStuff() { Console.WriteLine("A"); } } Si traicionamos esto a […]

Parámetros de Clase abstracta vs. Lambda

Como kotlin tiene un soporte tan bueno para lambdas, comencé a usar lambdas como parameters de constructor para classs abstract lugar de declarar abstract val/fun . Es más conciso en mi opinión, especialmente porque se infiere el tipo de val get. ¿Cuáles son las desventajas de esto? abstract class AbstractListScreen<T> ( val data: Set<T>, val […]

¿Es un tipo de propiedad implícita igual con un tipo de propiedad explícito?

El siguiente código A es de Kotlin-for-Android-Developers. El código B está escrito por mí. ¿Funcionan estos dos bloques de código diferentes de la misma manera? Código A class DetailActivity : AppCompatActivity(), ToolbarManager { override val toolbar by lazy { find<Toolbar>(R.id.toolbar) } … } Código B class DetailActivity : AppCompatActivity(), ToolbarManager { override val toolbar: Toolbar […]

¿Puedo actualizar un object inmutable profundamente nested sin tomar conciencia de su context?

Imaginemos que tengo un gráfico de objects inmutables nested, a lo largo de estas líneas (utilizando la syntax de Kotlin, pero espero que esté claro): data class House(val bedroom: Bedroom, val bathroom: Bathroom, val kitchen: Kitchen) class Bedroom class Bathroom data class Kitchen(val oven: Oven, val kettle: Kettle) class Oven data class Kettle(val on: Boolean) […]

Tipos de unión / interfaces de extensión

Tengo varias data class con campos, que se usan en formularios y los necesito para que un método devuelva true si se ha llenado alguno de los campos. No quiero volver a escribir esto para todas las classs, así que lo estoy haciendo así en este momento: data class Order(var consumer: String, var pdfs: List<URI>): […]

Solución de inheritance básica de Kotlin

¿Cómo hago una nueva count de SavingAccount con valores init para el owner y el balance open class BankAccount(val owner: String = "Long John Silver", private var balance: Double = 0.00) { constructor (amount: Double) : this() { this.balance = amount } fun deposit(amount: Double){ this.balance += amount } fun withdraw(amount: Double){ this.balance -= amount […]

Constructor en Kotlin

Recientemente comenzó con Kotlin De acuerdo con los documentos de Kotlin, puede haber un constructor primario y uno o más constructores secundarios. No entiendo por qué veo este error Dado que la test class no tiene constructor primario. Esto funciona bien: open class test { } class test2 : test() { } Y aquí hay […]