Sınıflar, Nesneler ve Paketleme
Scala'da sınıfları nasıl tanımlayacağınızı, nesneler oluşturacağınızı ve paketleri kullanarak kodunuzu nasıl düzenleyeceğinizi anlayın.
Sınıflar, Nesneler ve Paketleme, CoddyKit'te ücretsiz bir Scala for Backend Engineering & Functional Programming dersidir. Bu, 2 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Scala for Backend Engineering & Functional Programming öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Scala for Backend Engineering & Functional Programming kursu toplamda 2 dersten oluşur.
Scala'da Nesne Yönelimli Programlamaya Hoş Geldiniz
Bu derste Scala'da Nesne Yönelimli Programlamanın (OOP) temellerini ayrıntılı olarak inceleyeceksiniz. Sınıfları kullanarak kodunuzu nasıl yapılandıracağınızı, bu sınıfların örneklerini (nesneleri) nasıl oluşturacağınızı ve paketlerle her şeyi nasıl düzenli tutacağınızı keşfedeceğiz.
Sağlam ve modüler uygulamalar oluşturmaya başlayalım!
Sınıflar: Taslaklar
Sınıfı, nesne oluşturmak için kullanılan bir taslak gibi düşünün. Sınıf, nesnelerinin sahip olacağı özellikleri (verileri) ve davranışları (yöntemleri) tanımlar. Sınıflar verileri kendileri barındırmaz; bir nesnenin hangi verileri barındırabileceğini açıklar.
İşte temel bir sınıf tanımı:
class Car {
// Properties and methods go here
}Basit Bir Sınıf Tanımlama
Scala'da bir sınıfı, ardından adını yazarak class anahtar sözcüğüyle tanımlarsınız. Basit bir Dog sınıfı oluşturalım. Henüz pek bir şey yapmıyor, ama bu bir başlangıç!
Bu boş sınıf tanımını çalıştırmayı deneyin:
class Dog {
// This dog has no properties or behaviors yet
}
object Main {
def main(args: Array[String]): Unit = {
println("Dog class defined!")
}
}Nesne Oluşturma (Örnekler)
Nesne, bir sınıfın örneğidir. Taslaktan oluşturulmuş gerçek bir 'şey'dir. Bir nesne oluşturmak için sınıf adının ardından new anahtar sözcüğünü kullanırsınız.
Her nesne, sınıf tarafından tanımlanan kendi veri kümesine sahip olur.
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!")
}
}Bir Sınıfa Özellik Ekleme
Sınıflar, veri depolayan özelliklere (alanlar veya üyeler olarak da adlandırılır) sahip olabilir. Bunları sınıf oluşturucusunda tanımlayabilir ve bir nesne oluşturduğunuzda parametre olarak belirleyebilirsiniz.
Dog için bir name ve breed tanımlayalım:
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}.")
}
}Davranış Ekleme (Metotlar)
Sınıflar ayrıca nesnenin davranışını açıklayan işlevler olan metotları da tanımlar. Metotlar, nesnenin özelliklerine erişebilir ve bunları değiştirebilir.
Artık Dog bark() işlevini kullanabilir:
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'da `object` (Tekil Nesneler)
Scala'da object anahtar sözcüğü bir tekil nesne tanımlar. Bu, nesnenin yalnızca bir örneğinin var olabileceği anlamına gelir. Nesneyi oluşturmak için new kullanmazsınız; yalnızca adına başvurursunuz.
Tekil nesneler genellikle yardımcı metotlar veya tek bir giriş noktası için kullanılır.
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}")
}
}Eşlikçi Nesneler
Eşlikçi nesne, bir class ile aynı ada sahip olan ve aynı kaynak dosyasında tanımlanan bir object türüdür. Birbirlerinin özel üyelerine özel erişimleri vardır.
- Sınıf, örneğe özgü verileri ve metotları içerir.
- Eşlikçi nesne, statik benzeri metotları veya fabrika metotlarını içerir.
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}")
}
}Kodu Paketlerle Düzenleme
Paketler, sınıflarınızı ve nesnelerinizi mantıksal gruplar hâlinde düzenlemenizi sağlar; ad çakışmalarını önler ve kodun bakımını kolaylaştırır.
Bunları kodunuz için klasörler gibi düşünebilirsiniz. package anahtar sözcüğü, Scala dosyasının en üstünde paketi bildirir.
package com.coddykit.animals
class Cat(val name: String) {
def meow(): String = s"${name} says Meow!"
}
// This class is now inside com.coddykit.animals packagePaketlerden Üye İçeri Aktarma
Başka bir pakette tanımlanan sınıfları veya nesneleri kullanmak için bunları içeri aktarmanız gerekir. import anahtar sözcüğü, bir paketin üyelerini geçerli kapsamınızda kullanılabilir hâle getirir.
Cat sınıfımızı içeri aktaralım:
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())
}
}Hızlı Kontrol: Sınıf mı, Nesne mi?
Sınıfları, nesneleri ve paketleri öğrendiniz. Anlayışınızı test edelim!
Tekrar: Sınıflar, Nesneler ve Paketler
Harika çalıştınız! Scala'da nesne yönelimli programlamanın temellerini öğrendiniz:
- Sınıflar, özellikleri ve davranışları tanımlayan taslaklardır.
- Nesneler,
newkullanılarak sınıflardan oluşturulan örneklerdir. - Scala'nın
objectanahtar sözcüğü, yardımcı programlar veya fabrikalar için kullanışlı olan tekil nesneler oluşturur. - Eşlikçi Nesneler, statik benzeri üyeler sağlamak için sınıflarla eşleşir.
- Paketler, kodunuzu düzenler, ad çakışmalarını önler ve yapıyı iyileştirir.
Sırada kalıtım ve çok biçimliliği inceleyerek bu temelin üzerine inşa edeceğiz!
Sıkça Sorulan Sorular
“Sınıflar, Nesneler ve Paketleme” dersi ücretsiz mi?
Evet — “Sınıflar, Nesneler ve Paketleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Scala for Backend Engineering & Functional Programming kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Scala for Backend Engineering & Functional Programming kursu toplamda 2 dersten oluşur.
“Sınıflar, Nesneler ve Paketleme” dersinde ne öğreneceğim?
Scala'da sınıfları nasıl tanımlayacağınızı, nesneler oluşturacağınızı ve paketleri kullanarak kodunuzu nasıl düzenleyeceğinizi anlayın. Scala for Backend Engineering & Functional Programming ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Scala for Backend Engineering & Functional Programming öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Scala for Backend Engineering & Functional Programming, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 2 dersinin 1. dersidir.
“Sınıflar, Nesneler ve Paketleme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Scala for Backend Engineering & Functional Programming dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Scala for Backend Engineering & Functional Programming dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Sınıflar, Nesneler ve Paketleme
- Kalıtım ve Çok Biçimlilik