logo

Accessor och mutator i Java

I objektorienterad programmering är inkapsling ett grundläggande begrepp som hänvisar till övningen att dölja implementeringsdetaljerna för ett objekt och tillhandahålla ett gränssnitt för att komma åt dess egenskaper och beteenden. Accessor- och mutatormetoder är två viktiga begrepp relaterade till inkapsling i Java.

Tillbehör

Accessormetoder, även kända som getter-metoder, är metoder som låter dig hämta värdet på ett objekts privata instansvariabler. Dessa metoder ger skrivskyddad åtkomst till objektets tillstånd. Genom att använda accessormetoder kan du säkerställa att objektets tillstånd inte ändras av misstag eller av uppsåt av extern kod.

Mutator

Mutatormetoder, även kända som settermetoder, är metoder som låter dig ändra värdet på ett objekts privata instansvariabler. Dessa metoder ger endast skrivåtkomst till objektets tillstånd. Genom att använda mutatormetoder kan du säkerställa att objektets tillstånd endast ändras genom ett kontrollerat gränssnitt.

Låt oss ta en titt på ett exempel för att förstå konceptet med accessor- och mutatormetoder i Java. Anta att vi har en klass som heter Person som har tre privata instansvariabler: namn, ålder och e-post. Vi vill ge tillgång till dessa variabler med hjälp av accessor- och mutatormetoder.

 public class Person { private String name; private int age; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } 

I det här exemplet har vi definierat tre accessormetoder: getName(), getAge() och getEmail(), och tre mutatormetoder: setName(), setAge() och setEmail(). Accessormetoderna returnerar värdet på motsvarande instansvariabel, medan mutatormetoderna ställer in värdet på motsvarande instansvariabel.

Namnkonvention

Namnkonventionen för accessor- och mutatormetoder är viktig i Java. Accessormetoder bör namnges som börjar med 'get' följt av variabelns namn, med den första bokstaven versal. Mutatormetoder bör namnges som börjar med 'set' följt av variabelns namn, med den första bokstaven versal. Denna namnkonvention gör det tydligt vad varje metod gör och gör koden mer läsbar och underhållbar.

Accessor- och mutatormetoder är en viktig del av inkapsling i Java. De låter dig kontrollera åtkomsten till ett objekts tillstånd, vilket säkerställer att det endast nås och modifieras via ett kontrollerat gränssnitt. Genom att följa namnkonventionen för accessor- och mutatormetoder kan vi göra din kod mer läsbar och underhållbar.

här är ett exempelprogram som visar användningen av accessor- och mutatormetoder i Java:

Person.java

 import java.util.Scanner; public class Person { private String name; private int age; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Person person = new Person(); System.out.print('Enter name: '); String name = scanner.nextLine(); person.setName(name); System.out.print('Enter age: '); int age = scanner.nextInt(); person.setAge(age); scanner.nextLine(); // Consume the newline character left by nextInt() System.out.print('Enter email: '); String email = scanner.nextLine(); person.setEmail(email); System.out.println('
Name: ' + person.getName()); System.out.println('Age: ' + person.getAge()); System.out.println('Email: ' + person.getEmail()); } } 

Produktion:

 Name: Manoj Age: 21 Email: [email protected] 

I det här exemplet skapar huvudmetoden en ny instans av klassen Person och använder mutatormetoderna (setName, setAge och setEmail) för att ställa in värdena för objektets privata instansvariabler. Sedan används accessormetoderna (getName, getAge och getEmail) för att hämta värdena för instansvariablerna och visa dem på konsolen.

Fördel med att använda Accessor och Mutator

Fördelen med att använda accessor- och mutatormetoder är att de tillåter oss att lägga till validering och annan bearbetningslogik till processen att hämta och ställa in ett objekts tillstånd. Du kan till exempel lägga till en valideringskontroll i metoden 'setAge(int age)' för att säkerställa att åldersvärdet ligger inom ett visst intervall, eller lägga till formateringslogik till 'getName()'-metoden för att använda den första bokstaven i personens namn.