Klassen, objecten en packages
Krijg inzicht in het definiëren van klassen, het maken van objecten en het organiseren van uw code met packages in Scala.
Klassen, objecten en packages is een gratis Scala voor backend-engineering en functioneel programmeren-les op CoddyKit. Dit is les 1 van 2. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Scala voor backend-engineering en functioneel programmeren. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Scala voor backend-engineering en functioneel programmeren bevat in totaal 2 lessen.
Welkom bij OOP in Scala
In deze les duik je in de kern van objectgeoriënteerd programmeren (OOP) in Scala. We bekijken hoe je je code structureert met klassen, instanties van die klassen maakt (objecten) en alles georganiseerd houdt met pakketten.
Laten we robuuste en modulaire toepassingen gaan bouwen!
Klassen: de blauwdrukken
Zie een klasse als een blauwdruk voor het maken van objecten. De klasse definieert de eigenschappen (gegevens) en het gedrag (methoden) van de objecten. Klassen bevatten zelf geen gegevens, maar beschrijven welke gegevens een object kan bevatten.
Hier is een eenvoudige klassedefinitie:
class Car {
// Properties and methods go here
}Een eenvoudige klasse definiëren
In Scala definieer je een klasse met het sleutelwoord class, gevolgd door de naam ervan. Laten we een eenvoudige klasse Dog maken. Deze doet nog niet veel, maar het is een begin!
Voer deze lege klassedefinitie uit:
class Dog {
// This dog has no properties or behaviors yet
}
object Main {
def main(args: Array[String]): Unit = {
println("Dog class defined!")
}
}Objecten (instanties) maken
Een object is een instantie van een klasse. Het is een echt 'ding' dat op basis van de blauwdruk is gemaakt. Om een object te maken, gebruik je het sleutelwoord new, gevolgd door de naam van de klasse.
Elk object krijgt zijn eigen gegevens, zoals gedefinieerd door de klasse.
class Dog {
// Still an empty dog blueprint
}
object Main {
def main(args: Array[String]): Unit = {
val myDog = new Dog()
val yourDog = new Dog()
println("Two dog objects created!")
}
}Eigenschappen aan een klasse toevoegen
Klassen kunnen eigenschappen (ook wel velden of leden genoemd) bevatten waarin gegevens worden opgeslagen. Je kunt deze definiëren in de constructor van de klasse, zodat het parameters worden wanneer je een object maakt.
Laten we onze Dog een name en breed geven:
class Dog(val name: String, val breed: String) {
// 'val' makes name and breed immutable properties
}
object Main {
def main(args: Array[String]): Unit = {
val myDog = new Dog("Buddy", "Golden Retriever")
println(s"My dog's name is ${myDog.name} and breed is ${myDog.breed}.")
}
}Gedrag toevoegen (methoden)
Klassen definiëren ook methoden: functies die het gedrag van het object beschrijven. Methoden kunnen de eigenschappen van het object benaderen en wijzigen.
Onze Dog kan nu bark():
class Dog(val name: String, val breed: String) {
def bark(): String = {
s"${name} says Woof!"
}
}
object Main {
def main(args: Array[String]): Unit = {
val myDog = new Dog("Max", "Labrador")
println(myDog.bark())
}
}Scala's `object` (singletons)
In Scala definieert het sleutelwoord object een singleton. Dit betekent dat er altijd maar één instantie van kan bestaan. Je gebruikt geen new om deze te maken; je verwijst gewoon naar de naam ervan.
Ze worden vaak gebruikt voor hulpprogrammamethoden of als één toegangspunt.
object MathUtils {
def add(a: Int, b: Int): Int = a + b
def subtract(a: Int, b: Int): Int = a - b
}
object Main {
def main(args: Array[String]): Unit = {
val sum = MathUtils.add(5, 3)
println(s"5 + 3 = ${sum}")
}
}Begeleidende objecten
Een begeleidend object is een object met dezelfde naam als een class, dat in hetzelfde bronbestand is gedefinieerd. Ze hebben speciale toegang tot elkaars private leden.
- De klasse bevat instantiespecifieke gegevens en methoden.
- Het begeleidende object bevat statische methoden of fabrieksmethoden.
class Circle(val radius: Double) {
def area: Double = Circle.PI * radius * radius
}
object Circle {
// This is the companion object for the Circle class
val PI: Double = 3.14159
def apply(r: Double): Circle = new Circle(r) // Factory method
}
object Main {
def main(args: Array[String]): Unit = {
val c = Circle(5.0) // Using the apply method from companion object
println(s"Circle area: ${c.area}")
}
}Code organiseren met pakketten
Pakketten zijn een manier om je klassen en objecten in logische groepen te organiseren. Zo voorkom je naamconflicten en wordt je code beter onderhoudbaar.
Zie ze als mappen voor je code. Met het sleutelwoord package declareer je het pakket bovenaan een Scala-bestand.
package com.coddykit.animals
class Cat(val name: String) {
def meow(): String = s"${name} says Meow!"
}
// This class is now inside com.coddykit.animals packageLeden uit pakketten importeren
Om klassen of objecten te gebruiken die in een ander pakket zijn gedefinieerd, moet je ze importeren. Met het sleutelwoord import maak je leden van een pakket beschikbaar in het huidige bereik.
Laten we onze klasse Cat importeren:
package com.coddykit.app
// Define a class in a package first for import example
package com.coddykit.animals {
class Cat(val name: String) {
def meow(): String = s"${name} says Meow!"
}
}
import com.coddykit.animals.Cat
object Main {
def main(args: Array[String]): Unit = {
val myCat = new Cat("Whiskers")
println(myCat.meow())
}
}Korte controle: klasse of object?
Je hebt geleerd over klassen, objecten en pakketten. Laten we testen of je het begrijpt!
Samenvatting: klassen, objecten en pakketten
Fantastisch gedaan! Je hebt de basis van OOP in Scala geleerd:
- Klassen zijn blauwdrukken die eigenschappen en gedrag definiëren.
- Objecten zijn instanties die met
newuit klassen worden gemaakt. - Met Scala's sleutelwoord
objectmaak je singletons, die handig zijn voor hulpprogramma's of fabrieken. - Begeleidende objecten worden aan klassen gekoppeld voor statische leden.
- Pakketten organiseren je code, voorkomen naamconflicten en verbeteren de structuur.
Vervolgens bouwen we hierop voort door overerving en polymorfisme te verkennen!
Leer Scala met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 39
- Lessen
- 143
Veelgestelde vragen
Is de les “Klassen, objecten en packages” gratis?
Ja — de volledige tekst van “Klassen, objecten en packages” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Scala voor backend-engineering en functioneel programmeren wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Scala voor backend-engineering en functioneel programmeren bevat in totaal 2 lessen.
Wat leer ik in “Klassen, objecten en packages”?
Krijg inzicht in het definiëren van klassen, het maken van objecten en het organiseren van uw code met packages in Scala. Je oefent met Scala voor backend-engineering en functioneel programmeren door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Scala voor backend-engineering en functioneel programmeren te beginnen?
Ervaring vooraf is niet nodig. Scala voor backend-engineering en functioneel programmeren op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 2.
Hoe lang duurt de les “Klassen, objecten en packages”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Scala voor backend-engineering en functioneel programmeren?
Ja. Elke les over Scala voor backend-engineering en functioneel programmeren bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Klassen, objecten en packages
- Overerving en polymorfisme