Java – Accessor- en Mutator-methoden gebruiken

Ik ben bezig met een huiswerkopdracht. Ik weet niet hoe het moet.

De vraag is:

Maak een klas met de naam IDCard die de naam van een persoon, het ID-nummer,
en de naam van een bestand met de foto van de persoon. Schrijven
accessor- en mutatormethoden voor elk van deze velden. Voeg de . toe
volgende twee overbelaste constructors naar de klas:

public IDCard() public IDCard(String n, int ID, String bestandsnaam)

Test je programma door verschillende ojbects te maken met deze twee
constructors en printen hun waarden op de console met behulp van de
accessor- en mutatormethoden.

Ik heb dit tot nu toe herschreven:

public class IDCard {
String Name, FileName;
int ID;
public static void main(String[] args) {
}
public IDCard()
{
    this.Name = getName();
    this.FileName = getFileName();
    this.ID = getID();
}
public IDCard(String n, int ID, String filename)
{
}
public String getName()
{
    return "Jack Smith";
}
public String getFileName()
{
    return "Jack.jpg";
}
public int getID()
{
        return 555;
    }
}

Antwoord 1, autoriteit 100%

Laten we de basis doornemen:
“Accessor” en “Mutator” zijn slechts mooie namen voor een getter en een setter.
Een getter, “Accessor”, retourneert de variabele van een klasse of de waarde ervan. Een setter, “Mutator”, stelt een klasse variabele pointer of zijn waarde in.

Dus eerst moet je een klasse opzetten met enkele variabelen om het volgende te krijgen/in te stellen:

public class IDCard
{
    private String mName;
    private String mFileName;
    private int mID;
}

Maar oh nee! Als u deze klasse instantieert, zijn de standaardwaarden voor deze variabelen zinloos.
B.T.W. “instantiëren” is een mooi woord voor doen:

IDCard test = new IDCard();

Dus – laten we een standaardconstructor instellen, dit is de methode die wordt aangeroepen wanneer u een klasse “instantieert”.

public IDCard()
{
    mName = "";
    mFileName = "";
    mID = -1;
}

Maar wat als we de waarden weten die we onze variabelen willen geven? Laten we dus een andere constructor maken, een die parameters nodig heeft:

public IDCard(String name, int ID, String filename)
{
    mName = name;
    mID = ID;
    mFileName = filename;
}

Wauw, dit is leuk. Maar dom. Omdat we geen toegang hebben tot (= lezen) van de waarden van onze variabelen. Dus laten we een getter toevoegen, en nu we toch bezig zijn, ook een setter:

public String getName()
{
    return mName;
}
public void setName( String name )
{
    mName = name;
}

Leuk. Nu hebben we toegang tot mName. Voeg de rest van de accessors en mutators toe en je bent nu een gecertificeerde Java-newbie.
Veel succes.


Antwoord 2, autoriteit 9%

U moet de static uit uw accessor-methoden verwijderen – deze methoden moeten instantiemethoden zijn en toegang hebben tot de instantievariabelen

public class IDCard {
    public String name, fileName;
    public int id;
    public IDCard(final String name, final String fileName, final int id) {
        this.name = name;
        this.fileName = fileName
        this.id = id;
    }
    public String getName() {
        return name;
    }
}

U kunt een IDCard aanmaken en de accessor als volgt gebruiken:

final IDCard card = new IDCard();
card.getName();

Elke keer dat u new aanroept, wordt er een nieuwe instantie van de IDCard gemaakt en deze heeft zijn eigen kopieën van de 3 variabelen.

Als u het trefwoord static gebruikt, zijn die variabelen gemeenschappelijk voor elke instantie van IDCard.

Een paar dingen om in gedachten te houden:

  1. voeg geen nutteloze opmerkingen toe – ze voegen rommel in de code toe en niets anders.
  2. volgens naamgevingsconventies, gebruik kleine letters van variabelenamen – name niet name.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes