Java er et objektorientert programmering ( OOP ) språk . Objektorientert kode er organisert ved hjelp av en konstruksjon som kalles en "class ", som fungerer som en blåkopi for å skape et "objekt ". Et objekt er en samling av egenskaper ( medlem variabler ) og atferd (metoder ) . Vanligvis medlem variabler er private, og kan nås bare av objektet som inneholder dem . "Get " og " set " metoder , også kalt " getters " og " settere , " er spesielle metoder som samhandler med private medlem variabler . Funksjon
Getters og settere , eller " aksessoregenskaper " metoder, gir tilgang til et objekts egenskaper . En get metoden returnerer verdien av en eiendom holdt av et objekt . En get metoden har en avkastning typen som samsvarer med typen tilhørende medlem variabel . Get metoder vanligvis ikke tar noen parametere . Et sett metoden har en " tomrom " return type og tar en parameter med hensyn til type tilordne assosiert medlem variabel .
Konvensjoner
tilgangsmetodene brukes av eksterne objekter , og dermed blir erklært som "offentlig" ( eksternt synlig) metoder. Den aksepterte konvensjon er å navngi få og angi metoder for den tilhørende medlem variabel ( for eksempel " finnNavn " og " setName ", forbundet med den variable "navn" ) , med prefiks "få" eller " sett ". Ikke alle medlem variabler kan ha knyttet tilgangsmetodene . Disse metodene er skrevet bare for verdier som må nås eksternt.
Formål
Begrense tilgangen til et objekts medlem variabler er en del av en praksis som kalles " innkapsling. " Innkapsling compartmentalizes komponentene i et objekt , gjemmer gjennomføringen ( internt arbeid ) på objektet som ikke trenger å være synlige eksternt , og beskytte interne data fra ukontrollert modifisering. Tilgangsmetodene kan utføre beregninger, validering, eller andre tiltak som ville være omgås ved å medlem variabler direkte tilgjengelig .
Fordelene
Beskytte medlem variabler som bruker tilgangsmetodene lar programmerere å enkelt endre den interne koden uten å endre måten klassen brukes av andre. Dette unngår krever kode endringer gjennom et program når en enkelt klasse er endret . Getters kan utføre beregninger og handlinger som kreves for å produsere en verdi , minimere mengden av ekstern kode som kreves for å bruke verdien . Settere kan utføre validering , forebygge feil forårsaket av medlem variabler blir satt til ugyldige verdier.
Hensyn
Legge tilgangsmetodene til en klasse bør gjøres konservativt. Kun medlem variabler som krever ekstern tilgang bør ha tilgangsmetodene . Egenskaper som bør bare endres av internt arbeid trenger ikke settere . Egenskaper som ikke har noen ekstern relevans bør ikke ha getters . Denne praksisen reduserer eksponeringen av et objekt implementering , og beskytter eiendommer fra modifikasjon som kunne introdusere run- time feil . Jo færre offentlige metoder det er, jo mer vedlikeholdsvennlig koden vil bli.