Kursusindhold
Java Udvidet
Java Udvidet
Hvad er en Klasse?
Klasse
En klasse er et grundlæggende begreb i OOP-programmering. Det refererer til en skabelon til at oprette objekter. En klasse består af felter (data) og metoder (adfærd). Lad os overveje klassen Dog
, hvor felterne (data) ville være information om hundens name
og age
, og metoden (adfærd) ville få hunden til at præsentere sig selv og sige sit navn:
Dog.java
class Dog { String name; int age; void introduce() { System.out.println("Woof, woof (which means 'My name is " + name + "!')."); } }
Lad os overveje, hvad der udgør data (felter), og hvad der repræsenterer adfærd (metoder):
Som vi kan se på diagrammet, har vi felter, der ikke er initialiseret inden for selve klassen, samt en metode, der endnu ikke kaldes nogen steder. Lad os oprette et objekt af Dog
-klassen i hovedklassen og initialisere dens felter:
Main.java
public class Main { public static void main(String[] args) { Dog dog = new Dog(); dog.name = "Brian"; dog.age = 13; } }
Vi har oprettet et objekt af klassen Dog
og navngivet det dog
.
Syntaksen for at oprette et objekt af en klasse er:
ClassName objectName = new ClassName();
Vi har også initialiseret objektets egenskaber ved at tildele værdier til felterne.
Vores hunds navn er Brian
, og alderen er 13
.
Syntaksen for at initialisere felterne i et objekt er:
objectName.fieldName = value;
Vi har nu et objekt af klassen Dog
med initialiserede felter.
Lad os nu kalde en metode fra vores Dog
-klasse:
Main.java
package com.example; class Dog { String name; int age; void introduce() { System.out.println("Woof, woof (which means 'My name is " + name + "!')."); } } public class Main { public static void main(String[] args) { Dog dog = new Dog(); dog.name = "Brian"; dog.age = 13; dog.introduce(); } }
Vi har med succes kaldt en metode fra Dog
-klassen ved at anvende denne metode på Dog
-objektet. Du har måske bemærket den samme syntaks, da vi tidligere kaldte metoder fra String
-klassen.
1. Hvordan deklareres en klasse?
2. Bør vi oprette en ny klasse inde i en anden klasse?
Tak for dine kommentarer!