Kursinnehåll
Java Fördjupad
Java Fördjupad
Vad är en klass?
Klass
En klass är ett grundläggande begrepp inom OOP-programmering. Det avser en mall för att skapa objekt. En klass består av fält (data) och metoder (beteende). Låt oss betrakta klassen Dog
, där fälten (data) skulle vara information om hundens name
och age
, och metoden (beteende) skulle få hunden att presentera sig själv och säga sitt namn:
Dog.java
class Dog { String name; int age; void introduce() { System.out.println("Woof, woof (which means 'My name is " + name + "!')."); } }
Låt oss överväga vad som utgör data (fält) och vad som representerar beteende (metoder):
Som vi kan se från diagrammet har vi fält som inte är initierade inom själva klassen, samt en metod som ännu inte anropas någonstans. Låt oss skapa ett objekt av klassen Dog
i huvudklassen och initiera dess fält:
Main.java
public class Main { public static void main(String[] args) { Dog dog = new Dog(); dog.name = "Brian"; dog.age = 13; } }
Vi skapade ett objekt av klassen Dog
och namngav det dog
.
Syntaxen för att skapa ett objekt av en klass är:
ClassName objectName = new ClassName();
Vi initierade även objektets egenskaper genom att tilldela värden till fälten.
Vår hunds namn är Brian
, och åldern är 13
.
Syntaxen för att initiera fält i ett objekt är:
objectName.fieldName = value;
Nu har vi alltså ett objekt av klassen Dog
med initierade fält.
Nu ska vi anropa en metod från vår Dog
-klass:
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 anropade framgångsrikt en metod från klassen Dog
genom att använda den metoden på Dog
-objektet. Du kanske har lagt märke till samma syntax när vi tidigare anropade metoder från klassen String
.
1. Hur deklarerar man en klass?
2. Ska vi skapa en ny klass inuti en annan klass?
Tack för dina kommentarer!