Java -klassemethoden
Java-klassemethoden
Je hebt uit het hoofdstuk Java-methoden geleerd dat methoden binnen een klasse worden gedeclareerd en dat ze worden gebruikt om bepaalde acties uit te voeren:
Voorbeeld
Maak een methode myMethod()
met de naam Main:
public class Main {
static void myMethod() {
System.out.println("Hello World!");
}
}
myMethod()
drukt een tekst af (de actie), wanneer deze wordt
aangeroepen . Om een methode aan te roepen, schrijft u de naam van de methode gevolgd door twee haakjes () en een puntkomma ;
Voorbeeld
Binnen main
, bel
myMethod()
:
public class Main {
static void myMethod() {
System.out.println("Hello World!");
}
public static void main(String[] args) {
myMethod();
}
}
// Outputs "Hello World!"
Statisch versus niet-statisch
U zult vaak Java-programma's zien die ofwel static
of public
attributen en methoden hebben.
In het bovenstaande voorbeeld hebben we een static
methode gemaakt, wat betekent dat deze toegankelijk is zonder een object van de klasse te maken, in tegenstelling tot public
, die alleen toegankelijk is voor objecten:
Voorbeeld
Een voorbeeld om de verschillen tussen static
en public
methoden aan te tonen :
public class Main {
// Static method
static void myStaticMethod() {
System.out.println("Static methods can be called without creating objects");
}
// Public method
public void myPublicMethod() {
System.out.println("Public methods must be called by creating objects");
}
// Main method
public static void main(String[] args) {
myStaticMethod(); // Call the static method
// myPublicMethod(); This would compile an error
Main myObj = new Main(); // Create an object of Main
myObj.myPublicMethod(); // Call the public method on the object
}
}
Opmerking: u leert meer over deze trefwoorden (modifiers genoemd) in het hoofdstuk Java-modifiers .
Toegangsmethoden met een object
Voorbeeld
Maak een Car-object met de naam myCar
. Roep de fullThrottle()
en speed()
methoden op het myCar
object aan en voer het programma uit:
// Create a Main class
public class Main {
// Create a fullThrottle() method
public void fullThrottle() {
System.out.println("The car is going as fast as it can!");
}
// Create a speed() method and add a parameter
public void speed(int maxSpeed) {
System.out.println("Max speed is: " + maxSpeed);
}
// Inside main, call the methods on the myCar object
public static void main(String[] args) {
Main myCar = new Main(); // Create a myCar object
myCar.fullThrottle(); // Call the fullThrottle() method
myCar.speed(200); // Call the speed() method
}
}
// The car is going as fast as it can!
// Max speed is: 200
Voorbeeld uitgelegd
1) We hebben een aangepaste Main
klasse gemaakt met het class
trefwoord.
2) We hebben de fullThrottle()
en
speed()
methoden in de Main
klas gemaakt.
3) De fullThrottle()
methode en de
speed()
methode zullen wat tekst afdrukken wanneer ze worden aangeroepen.
4) De speed()
methode accepteert een int
parameter genaamd
maxSpeed
- we zullen deze gebruiken in 8) .
5) Om de Main
klasse en zijn methoden te gebruiken, moeten we een object van de
Main
klasse maken.
6) Ga dan naar de main()
methode, waarvan je nu weet dat het een ingebouwde Java-methode is die je programma uitvoert (elke code in main wordt uitgevoerd).
7) Door het new
trefwoord te gebruiken hebben we een object gemaakt met de naam
myCar
.
8) Vervolgens roepen we de fullThrottle()
en
speed()
methoden op het
myCar
object aan en voeren het programma uit met de naam van het object ( myCar
), gevolgd door een punt ( .
), gevolgd door de naam van de methode ( fullThrottle();
en
speed(200);
). Merk op dat we een int
parameter van 200 binnen de
speed()
methode toevoegen.
Onthoud dat..
De punt ( .
) wordt gebruikt om toegang te krijgen tot de attributen en methoden van het object.
Om een methode in Java aan te roepen, schrijft u de naam van de methode gevolgd door een reeks haakjes () , gevolgd door een puntkomma ( ;
).
Een klasse moet een overeenkomende bestandsnaam hebben ( Main
en
Main.java ).
Meerdere klassen gebruiken
Zoals we in het hoofdstuk Classes hebben gespecificeerd , is het een goede gewoonte om een object van een klasse te maken en dit in een andere klasse te openen.
Onthoud dat de naam van het java-bestand moet overeenkomen met de klassenaam. In dit voorbeeld hebben we twee bestanden in dezelfde map gemaakt:
- Main.java
- tweede.java
Main.java
public class Main {
public void fullThrottle() {
System.out.println("The car is going as fast as it can!");
}
public void speed(int maxSpeed) {
System.out.println("Max speed is: " + maxSpeed);
}
}
tweede.java
class Second {
public static void main(String[] args) {
Main myCar = new Main(); // Create a myCar object
myCar.fullThrottle(); // Call the fullThrottle() method
myCar.speed(200); // Call the speed() method
}
}
Wanneer beide bestanden zijn gecompileerd:
C:\Users\Your Name>javac Main.java
C:\Users\Your Name>javac Second.java
Voer het bestand Second.java uit:
C:\Users\Your Name>java Second
En de uitvoer zal zijn:
The car is going as fast as it can!
Max speed is: 200