Zusammenfassung – Zähler & Utility
Teil des Abschnitts Objektorientierte Programmierung der Java-Journey von Coddy — Lektion 19 von 87.
Aufgabe
EinfachLassen Sie uns ein vollständiges System aufbauen, das eine Counter-Klasse zur Verfolgung von Instanzen mit einer MathUtils-Utility-Klasse kombiniert – und damit alles zusammenführt, was Sie über statische Variablen, statische Methoden, statische Blöcke und Konstanten gelernt haben.
Sie werden drei Dateien erstellen, um Ihren Code zu organisieren:
Counter.java: Erstellen Sie eine Klasse, die verfolgt, wie viele Instanzen erstellt wurden:- Eine private statische Variable, um die Gesamtzahl der Instanzen zu zählen
- Eine private Instanzvariable
id, die die eindeutige Kennung jedes Zählers speichert - Ein Konstruktor, der die Gesamtzahl erhöht und den aktuellen Zählerstand als ID dieser Instanz zuweist
- Eine Methode
getId(), die die eindeutige ID dieses Zählers zurückgibt - Eine statische Methode
getTotalCount(), die zurückgibt, wie viele Counter-Objekte erstellt wurden
MathUtils.java: Erstellen Sie eine Utility-Klasse mit ausschließlich statischen Mitgliedern (wird nie instanziiert):- Eine öffentliche Konstante
PImit dem Wert3.14159 - Eine öffentliche Konstante
HALFmit dem Wert0.5 - Eine statische Methode
square(int n), die n zum Quadrat zurückgibt - Eine statische Methode
cube(int n), die n hoch drei zurückgibt - Eine statische Methode
circleArea(double radius), die PI * radius * radius zurückgibt
- Eine öffentliche Konstante
Main.java: Demonstrieren Sie das Zusammenwirken beider Klassen. Sie erhalten zwei Eingaben: eine Zahl für mathematische Operationen und eine Anzahl, wie viele Counter-Objekte erstellt werden sollen. Geben Sie Folgendes aus:Square: [value]Cube: [value]Circle area (radius=[number]): [value](Fläche auf 2 Dezimalstellen formatiert)- Für jeden erstellten Counter geben Sie aus:
Counter [id] created - Schließlich:
Total counters: [count]
Sie erhalten zwei Eingaben: eine Zahl (int) für die mathematischen Berechnungen und eine Anzahl (int), wie viele Counter-Objekte erstellt werden sollen.
Denken Sie daran, auf statische Mitglieder über den Klassennamen zuzugreifen (wie MathUtils.PI und Counter.getTotalCount()) und String.format("%.2f", value) für die Formatierung von Dezimalwerten zu verwenden.
Probier es selbst
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: Verwende statische Methoden von MathUtils zum Berechnen und Ausgeben von:
// - Square: [value]
// - Cube: [value]
// - Circle area (radius=[number]): [value] (formatiert auf 2 Dezimalstellen)
// TODO: Erstelle 'count' Anzahl an Counter Objekten
// Gib für jeden erstellten Counter aus: Counter [id] created
// TODO: Gib die Gesamtzahl der erstellten Counter aus
// Total counters: [count]
}
}
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienEinführung in die OOPKlassen vs. ObjekteDas this-SchlüsselwortMethodenFelder (Attribute)Konstruktor-MethodeKonstruktor-ÜberladungRückblick – Einfacher Taschenrechner4Vererbung
Grundlagen der Vererbung (extends)Das super-SchlüsselwortMethoden überschreiben (@Override)Konstruktor-VerkettungDie Object-KlasseEinfache & mehrstufige VererbungWarum keine Mehrfachvererbung von KlassenZusammenfassung - Mitarbeiter-Hierarchie7Spezielle Methoden & Object-Klasse
toString()-Methodeequals() und hashCode()clone()-MethodecompareTo() und ComparableComparator-InterfaceZusammenfassung – Benutzerdefiniertes Sortieren2Zugriffsmodifikatoren & Kapselung
Überblick über ZugriffsebenenGetter- und Setter-MethodenInformation HidingDas final-SchlüsselwortRückblick – Bankkonto-Manager5Polymorphismus
Grundlagen der MethodenüberladungMethodenüberschreibung (Laufzeit)Upcasting und DowncastingDer instanceof-OperatorAbstrakte Klassen und MethodenZusammenfassung – Formenrechner8Fortgeschrittene OOP-Konzepte
Komposition vs. VererbungAggregation vs. KompositionInnere, geschachtelte & anonyme KlassenEnums und Enum-MethodenRecords (Java 16+)Sealed Classes (Java 17+)11Design Patterns Teil 1
Einführung in Design PatternsSingleton-PatternFactory-PatternBuilder-PatternObserver-PatternStrategy-Pattern14Abschlussherausforderungen
E-Learning-PlattformBanksystemSpielcharakter-EntwicklungFahrzeugvermietung3Klasseneigenschaften & Statische Member
Instanz- vs. statische VariablenStatische MethodenStatische BlöckeKonstanten (static final)Zusammenfassung – Zähler & Utility6Interfaces & Abstrakte Klassen
Einführung in InterfacesInterfaces implementierenImplementierung mehrerer InterfacesDefault- & statische Methoden in InterfacesAbstrakte Klassen vs. InterfacesFunktionale InterfacesZusammenfassung - Zahlungssystem