Kotlin Newbie to Pro - ANONYMOUS CLASSES - Part 26

preview_player
Показать описание
In this video you will learn how to create an anonymous class and what the benefits of it are.

⭐ 300+ Quiz questions for all my videos
⭐ Take notes while watching my videos
⭐ Climb the leaderboard and get rewards
⭐ Create your FREE account now:

Рекомендации по теме
Комментарии
Автор

This is the best programming tutorial of my career since 2014!!

dmgujjar
Автор

Hi Philipp Lackner,
I have a question about this Anonymous classes
because with this example I would prefer to create a new class that Inherit from Shape.
for S.O.L.I.D Principle, So I don't have to touch the Shape class anymore.

class Parallelogram(private val a: Double, private val b: Double, private val height : Double) : Shape("Parallelogram"){
override val area: Double = a * height
override val perimeter: Double = 2 * a + 2 * b
fun isRectangle() = height == b
}

Could you give me another and more clear example about when to use Anonymous classes and why?

ekkawutemeelugsana
Автор

I'm not a programmer, but I like to play with programming from time to time.
Kotlin this time.

So far your lessons are the best I've found.👍👍

I grew up on functions and still can't understand what classes give :), but maybe someday...

mariuszmilewski
Автор

Thank u philipp for the best and awesome series.
I am one of your subscriber.

srr
Автор

This is strange.. really strange..I didn't get it...
So as you said first...When we need implementation of class with slight modification but we don't want to create completely new class for and this case we can create anonymous class.

So..which class is anonymous !?...Okay we got only one class here..so does that mean Shape class is anonymous class !?..and where implemented modification !?

kevinsolanki
Автор

Pill can you mention the real life use case as well it would be grate for new students !

numeshdilusha
Автор

How common would you say Anonymous classes are used in implementations of Kotlin like Android Development? It looks like it's very useful but I feel like it's not good coding conventions? I don't know, I'm transitioning from Java so it's weird to have so much more flexibility in a language like Kotlin lol

pikaboyny
Автор

Me learning this concept and knowing I am never going to use this in real life. 😭😭

jayjan_py
Автор

is other language have anonymus class like this?

zepra
Автор

val base1 = 4.0
val base2 = 6.0
val side1 = 3.0
val side2 = 5.0
val height = 2.0
val trapezium = object : Shape("Trapezium", base2, base1, side2, side1){
init {
println("Created a $name with sides: $side1, $side2, $base1, $base2.\nArea of the $name is ${area()}.\nPerimeter of the $name is ${perimeter()}.")
}
override fun area(): Double = 0.5 * height * (base2 + base1)

override fun perimeter(): Double = base1 + base2 + side1 + side2
fun isRectangle() = side2 == side1
}
println("Is the ${trapezium.name} a rectangle? - ${trapezium.isRectangle()}.")

AniobiStanley
Автор

// :) I hope I understand well that you meant to say was a Trapezoid. Just created the main here.
fun main() {
val base1 = 3.0
val base2 = 11.0
val leg1 = 8.0
val leg2 = 10.0
val height = 7.0
val trapezoid = object : ShapeAssignment26("Trapeze", base1, base2, leg1, leg2, height) {

init {
println("Trapeze created with base1 = $base1, base2 = $base2, leg1 = $leg1, leg2 = $leg2 and height = $height")
println("The area is ${area()}")
println("The perimeter is ${perimeter()}")
}

override fun area(): Double {
return height * ((base1 + base2) / 2)
}

override fun perimeter(): Double {
return (base1 + base2 + leg1 + leg2)
}

fun isRectangle(): Boolean = ((leg1 == height) && (leg2 == height))
}

println("Is the Trapeze a rectangle? ${trapezoid.isRectangle()}")
}

jonievillejo