Özet - Sayaç ve Utility
Coddy'nin Java Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 19 / 87.
Görev
KolayÖrnekleri izlemek için bir Counter sınıfı ile bir MathUtils yardımcı sınıfını birleştiren eksiksiz bir sistem oluşturalım - statik değişkenler, statik metotlar, statik bloklar ve sabitler hakkında öğrendiğiniz her şeyi bir araya getirelim.
Kodunuzu düzenlemek için üç dosya oluşturacaksınız:
Counter.java: Kaç tane örnek oluşturulduğunu takip eden bir sınıf oluşturun:- Toplam örnekleri saymak için bir private statik değişken
- Her sayacın benzersiz tanımlayıcısını saklayan bir private örnek değişkeni
id - Toplam sayıyı artıran ve mevcut sayıyı bu örneğin id'si olarak atayan bir yapıcı (constructor)
- Bu sayacın benzersiz id'sini döndüren bir
getId()metodu - Kaç tane Counter nesnesi oluşturulduğunu döndüren bir statik
getTotalCount()metodu
MathUtils.java: Yalnızca statik üyelere sahip (hiçbir zaman örneği oluşturulmayan) bir yardımcı sınıf oluşturun:3.14159değerine sahip bir public sabitPI0.5değerine sahip bir public sabitHALF- n'in karesini döndüren bir statik
square(int n)metodu - n'in küpünü döndüren bir statik
cube(int n)metodu - PI * radius * radius değerini döndüren bir statik
circleArea(double radius)metodu
Main.java: Her iki sınıfın birlikte çalışmasını gösterin. İki girdi alacaksınız: matematik işlemleri için bir sayı ve kaç tane Counter nesnesi oluşturulacağına dair bir sayı. Şunları yazdırın:Square: [value]Cube: [value]Circle area (radius=[number]): [value](alan 2 ondalık basamağa göre formatlanmış olmalı)- Oluşturulan her Counter için şunu yazdırın:
Counter [id] created - Son olarak:
Total counters: [count]
İki girdi alacaksınız: matematik hesaplamaları için bir sayı (int) ve kaç tane Counter nesnesi oluşturulacağı için bir sayı (int).
Statik üyelere sınıf adı üzerinden erişmeyi (örneğin MathUtils.PI ve Counter.getTotalCount()) ve ondalık değerleri formatlamak için String.format("%.2f", value) kullanmayı unutmayın.
Kendin dene
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
int count = scanner.nextInt();
// TODO: Hesaplamak ve yazdırmak için MathUtils statik metotlarını kullanın:
// - Square: [value]
// - Cube: [value]
// - Circle area (radius=[number]): [value] (2 ondalık basamağa yuvarlanmış)
// TODO: 'count' sayısı kadar Counter nesnesi oluşturun
// Oluşturulan her Counter için şunu yazdırın: Counter [id] created
// TODO: Oluşturulan toplam sayaç sayısını yazdırın
// Total counters: [count]
}
}
Nesne Yönelimli Programlama bölümündeki tüm dersler
1OOP Temelleri
Harici DosyalarOOP'ye GirişSınıflar ve Nesnelerthis Anahtar KelimesiMetotlarAlanlar (Öznitelikler)Yapıcı MetotYapıcı Metot Aşırı YüklemeÖzet - Basit Hesap Makinesi4Kalıtım
Temel Kalıtım (extends)super Anahtar KelimesiMetot Geçersiz Kılma (@Override)Yapıcı Metot ZincirlemeObject SınıfıTekli ve Çok Seviyeli KalıtımNeden Çoklu Sınıf Kalıtımı Yok?Özet - Çalışan Hiyerarşisi7Özel Metotlar ve Object Sınıfı
toString() Metoduequals() ve hashCode()clone() MetoducompareTo() ve ComparableComparator ArayüzüÖzet - Özel Sıralama2Erişim Belirleyiciler ve Kapsülleme
Erişim Seviyelerine Genel BakışGetter ve Setter MetotlarıBilgi Gizlemefinal Anahtar KelimesiÖzet - Banka Hesabı Yöneticisi5Polimorfizm
Metot Aşırı Yükleme TemelleriMetot Geçersiz Kılma (Çalışma Zamanı)Upcasting ve Downcastinginstanceof OperatörüSoyut Sınıflar ve MetotlarÖzet - Şekil Hesaplayıcı8İleri Düzey OOP Kavramları
Kompozisyon vs KalıtımAgregasyon vs KompozisyonDahili, Yuvalanmış ve Anonim SınıflarEnum'lar ve Enum MetotlarıRecords (Java 16+)Sealed Classes (Java 17+)11Tasarım Kalıpları Bölüm 1
Tasarım Kalıplarına GirişSingleton KalıbıFactory KalıbıBuilder KalıbıObserver KalıbıStrategy Kalıbı14Final Meydan Okumaları
E-Öğrenme PlatformuBankacılık SistemiOyun Karakteri GeliştirmeAraç Kiralama Servisi3Sınıf Özellikleri ve Statik Üyeler
Instance ve Statik DeğişkenlerStatik MetotlarStatik BloklarSabitler (static final)Özet - Sayaç ve Utility6Arayüzler ve Soyut Sınıflar
Arayüzlere GirişArayüzleri UygulamaÇoklu Arayüz UygulamaArayüzlerde Default ve StaticSoyut Sınıflar ve ArayüzlerFonksiyonel ArayüzlerÖzet - Ödeme Sistemi9Generics
Generics'e GirişGeneric SınıflarGeneric MetotlarSınırlandırılmış Tip ParametreleriWildcard'lar (?, extends, super)Özet - Generic Container12Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıKompozit KalıbıYineleyici Kalıbı