Mutatormetode i Java

Mutatormetode i Java
I den engelske ordboken, å mutere midler til å ha en ny form. Og så betyr en mutator, men ikke funnet i den engelske ordboken, noe som forårsaker en endring til en ny form. En privat variabel er et felt eller en eiendom i en klasse i Java. Det er ingen forhåndsdefinert metode som heter mutator i Java. I stedet er en mutator en metode i en klasse, og denne metoden er ment å endre verdien av en privat variabel i klassen. Etter stevne skal programmereren begynne metodenavnet med "Set". Så metoden kan være noe som setage (), setPrice (), setName (), etc.

Forskjell mellom privat og offentlig variabel

En privat variabel kan bare sees av medlemmer (egenskaper og metoder) i klassedefinisjonen. Det kan ikke sees med kode utenfor klassedefinisjonen. På den annen side kan en offentlig variabel sees ved kode utenfor klassedefinisjonen. Kode utenfor klassen kan bare endre den offentlige variabelen til en klasse ved å tilordne en ny verdi ved å bruke klassenavnet hvis metoden er statisk eller bruke objektnavnet hvis metoden ikke er statisk. Med en offentlig variabel er ikke følelsen av mutasjon egentlig der. Men når en klasse endrer sin egen verdi, som ikke kan endres utenfra, kalles det transformasjon - som har en bedre følelse av mutasjon.

Mutatorillustrasjon

Ikke hver klasse trenger en mutator. Imidlertid, når en mutator er nødvendig for en privat variabel (egenskap), bør mutatormetoden som er medlem av klassen, begynne med "sett". Programmereren definerer deretter mutatormetoden.

Ethvert objekt i en butikk kan defineres av en klasse. En god kopp i en butikk for eksempel, kan defineres av en klasse. Som et minimum vil klassen ha en eiendom som er prisen på koppen, en mutatormetode og en tilbehørsmetode. Accessor -metoden er en metode for å lese verdien av eiendommen. Etter konvensjonen skal tilbehørsmetoden begynne med "få". I dette tilfellet ville det være getPrice (). La eiendommen med navnsprisen være privat. Hvis prisen er offentlig, vil det ikke være behov for mutator og tilbehør, da verdien kan settes eller ble (les) offentlig.

Følgende klassedefinisjon er for en kopp (en ekstra eiendom (felt) for valuta legges til):

Klassekopp
Privat dobbel pris = 2.0;
privat karaktervaluta = '$';
public void setPrice (dobbel dbl)
Pris = dbl;

public double getPrice ()
Returpris;

Mutator setPrice () er offentlig, slik at den kan nås med kode utenfor klassen. Å gjøre mutatoren offentlig betyr ikke å offentliggjøre den tilsvarende eiendommen. Den tilsvarende egenskapen må være privat. Mutatoren her har argumentet DBL som er den nye prisen. Når markedsforholdene endres, endres også prisen i butikken. Hvis prisen var offentlig, ville det ikke være behov for mutator setprice (), da det ville være mulig for kode utenfor klassen å endre prisen. Siden SetPrice er medlem av klassen, kan den se verdien av den private eiendomsprisen. Kode utenfor klassen kan imidlertid ikke se eiendommen. Dette er av design.

Accsessor GetPrice () er offentlig, slik at den kan nås med kode utenfor klassen. Det har ingen argumenter. Hvis prisen var offentlig, ville det ikke være behov for tilbehøret getPrice (), da det ville være mulig for kode utenfor klassen å lese prisen. Siden GetPrice er medlem av klassen, kan den se verdien av den private eiendomsprisen. Kode utenfor klassen kan imidlertid ikke se eiendommen. Dette er av design.

En mutator setcurrency () og en tilbehør getCurrency () kan på samme måte skrives for den private variable valutaen.

Følgende hovedklasse og hovedmetode får tilgang til den private variable prisen, muterer variabelen og får deretter tilgang til variabelen igjen; Alle disse etter å ha startet klassen:

public class theclass
public static void main (String [] args)
Kopp kopp1 = ny kopp ();
dobbel førsteprice = cup1.getPrice ();
System.ute.trykk (FirstPrice); System.ute.skrive ut(", ");
Cup1.SetPrice (3.0);
dobbel secondprice = cup1.getPrice ();
System.ute.trykk (SecondPrice);
System.ute.println ();

Utgangen er:

2.0, 3.0

Det første kodesegmentet i hovedmetoden instantierer Cup -objektet (CUP1) og får tilgang til den private eiendomsprisen gjennom Accessor GetPrice () og CUP1. Den skriver deretter ut denne første prisen med komma og plass.

Det andre kodesegmentet er et one -linjekodesegment. Det muterer den private eiendomsprisen gjennom mutator setprice () og cup1. Det tredje kodesegmentet leser og skriver ut den nye prisen.

Validering

Brukeren av programmet skal visstnok sette den nye prisen som en dobbel. Men hva om han legger inn noen annen datatype? Den nye prisen bør valideres hvis den virkelig er en dobbel. Linjekoden for denne saken skal vises slik:

Boolean BL = DBL -forekomst av dobbelt;

Operatøren, forekomst av Returns True, hvis dens venstre operand er en forekomst av riktig operand; falsk ellers.

Med validering skal definisjonen av mutatormetode være:

public void setPrice (dobbel dbl)
if (dbl forekomst av dobbelt)
Pris = dbl;
ellers
System.ute.Println ("Ny pris kunne ikke settes!");

Det vil si at hvis inngangen DBL er av typen dobbel, endres prisen. Hvis det ikke er det, utstedes en feilmelding, og programmet fortsetter. Merk at 'D' for dobbelt i dette kodesegmentet er 'D' og ikke 'D'.

En lignende kode for å sjekke om valutaen er et tegn kan skrives som følger:

public void setCurrency (karakter ch)
if (CH forekomst av karakter)
valuta = '€';
ellers
System.ute.Println ("Ny valuta er ikke et tegn!");

Det vil si at hvis inngangen CH er av typekarakter, endres valutaen fra $ til '€'. Hvis det ikke er det, utstedes en feilmelding, og programmet fortsetter. Merk at 'C' for karakter i dette kodesegmentet er 'C' og ikke 'C'.

Konklusjon

Det er ingen forhåndsdefinert metode som mutator i Java. En mutator er kodet av programmereren. En mutator er bare en kodet (offentlig) metode som endrer den private verdien av et felt (egenskap) av en klasse. På den annen side er en tilbehør bare en kodet (offentlig) metode som leser ut den private verdien av et felt (eiendom) av en klasse.

Takk for at du leste gjennom artikkelen vår. Legg igjen en kommentar om tankene dine og les gjennom andre artikler om Linuxhint.com som passer best til ideene du leter etter.