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...
Philipp is really good, because of him I landed a job as an android developer at only 18 years old. I recommend you stick to him if you want to become an android developer, and good luck in your future endeavours
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?
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 !?
I completely ignored object keyword🤦🤦🤦. Now I know why there was quiz question on website that whether "object" keyword we use in anonymous class is different than the "object" keyword we use in companion object. So, now we can do whatever we want in this object: Shape class because it is anonymous. Thanks bro🙏✨🌈
// :) 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()}") }
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
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. Area of the $name is ${area()}. Perimeter 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()}.")