Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java klassen en objecten: een praktische gids

Java-klassen en objecten

Ontdek hoe Java's klasse- en objectmodel real-world concepten omzet in herbruikbare code.

Java is fundamenteel object-georiënteerd. Het breekt complexe problemen op in beheersbare, zelfstandige entiteiten – objecten – elk met state en behavior.

Een object kan alles zijn wat data (state) vasthoudt en acties (behavior) biedt. Bijvoorbeeld, een fiets heeft:

  • States: idle, eerste versnelling, etc.
  • Behaviors: remmen, versnellen, etc.

Voordat we in objecten duiken, laten we de blauwdruk verkennen die ze definieert: een klasse.


Java-klasse

Een klasse is de sjabloon waaruit objecten geïnstantieerd worden. Denk eraan als een huis-tekening die verdiepingen, deuren en ramen specificert. Meerdere huizen kunnen gebouwd worden vanaf dezelfde tekening, net als veel objecten vanuit een enkele klasse gecreëerd kunnen worden.


Een klasse aanmaken in Java

Definieer een klasse met het class-keyword:

class ClassName {
    // velden
    // methodes
}

Velden (variabelen) houden de state van een object, methodes encapsuleren het behavior.

  • Velden slaan data op.
  • Methodes voeren operaties uit.

Voorbeeld: een Bicycle-klasse.

class Bicycle {
    // state
    private int gear = 5;
    // behavior
    public void braking() {
        System.out.println("Remmen werkt");
    }
}

Hier is Bicycle een prototype. Meerdere fiets-instanties kunnen aangemaakt worden, elk met dezelfde structuur maar onafhankelijke data.

Let op: private en public zijn access-modifiers die zichtbaarheid controleren. Meer details: Java access modifiers.


Java-objecten

Een object is een instantie van een klasse. Bijvoorbeeld, Bicycle is de klasse, en MountainBicycle, SportsBicycle, TouringBicycle, etc., zijn distincte objecten afgeleid van die klasse.

Een object aanmaken in Java

Instantieer een object met het new-keyword en de constructor van de klasse:

className object = new className();
// Voor Bicycle
Bicycle sportsBicycle = new Bicycle();
Bicycle touringBicycle = new Bicycle();

Constructors zijn speciale methodes die de klassenaam delen. Voor verder lezen: Java Constructors.

Namen als sportsBicycle en touringBicycle dienen als referenties naar hun respectievelijke instanties.

Meerdere instanties van dezelfde klasse kunnen coexisteren zonder elkaar te beïnvloeden.

Let op: Klassevelden en methodes worden gezamenlijk members genoemd.


Leden van een klasse benaderen

Gebruik de dot-operator met een objectreferentie om de members te bereiken:

class Bicycle {
    int gear = 5;
    void braking() {
        // ...
    }
}
Bicycle sportsBicycle = new Bicycle();
sportsBicycle.gear;
sportsBicycle.braking();

Hier benadert sportsBicycle het gear-veld en roept de braking()-methode aan.

  • sportsBicycle.gear – leest de gear-waarde.
  • sportsBicycle.braking() – roept de rem-routine aan.

In het volgende hoofdstuk verkennen we Java-methodes in de diepte.

Hieronder is een compleet voorbeeld dat deze concepten verbindt.


Voorbeeld: Java-klasse en objecten

class Lamp {
    // Houdt bij of de lamp brandt
    boolean isOn;
    void turnOn() {
        isOn = true;
        System.out.println("Licht aan? " + isOn);
    }
    void turnOff() {
        isOn = false;
        System.out.println("Licht aan? " + isOn);
    }
}

class Main {
    public static void main(String[] args) {
        Lamp led = new Lamp();
        Lamp halogen = new Lamp();
        led.turnOn();
        halogen.turnOff();
    }
}

Output:

Licht aan? true
Licht aan? false

In dit programma definieert Lamp een instance-variabele isOn en twee methodes die het manipuleren. De Main-klasse creëert twee lamp-objecten – led en halogen – en roept hun methodes onafhankelijk aan.

Elk object houdt zijn eigen kopie van isOn, zodat operaties op de ene lamp de andere niet beïnvloeden.


Voorbeeld: Objecten aanmaken binnen dezelfde klasse

Objecten kunnen ook geïnstantieerd worden binnen dezelfde klasse die ze definieert. Zo werkt het:

class Lamp {
    boolean isOn;
    void turnOn() {
        isOn = true;
        System.out.println("Licht aan? " + isOn);
    }
    public static void main(String[] args) {
        Lamp led = new Lamp();
        led.turnOn();
    }
}

Output

Licht aan? true

Dit patroon is handig voor kleine demonstraties of utility-klassen waar de hoofllogica binnen dezelfde klasse zit.

Java

  1. C++ klassen & objecten: praktische gids voor object-georiënteerd programmeren
  2. Java-variabelen en literals: een uitgebreide gids
  3. Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
  4. Java instanceof operator: een uitgebreide gids
  5. Java abstracte klassen en methoden: een uitgebreide gids
  6. Java geneste en inner classes meesteren: typen, voorbeelden en best practices
  7. Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
  8. Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
  9. Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
  10. Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
  11. Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden