Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

УНИВЕРЗИТЕТ „ Гоце Делчев “ – Штип

ВОЕНА АКАДЕМИЈА

,,Генерал Михаило Апостолски“ – Скопје

- придружна членка-

Getter и setter методи

Ментор: Изрботил:
д-р Југослав Ачкоски Пит.Исидора Алексовска
ред. Проф .потполковник бр. На индект 1475

Скопје, март 2024 годинa


Содржина
1. Што претставува Getter и setter методите ………………………………………… 2
2. Како се генерираат getter и setter методи автомацки во Eclipse …………………4
3. Зошто се користат getter и setter методите ………………………………………....5
4. Пример на програми кои содржат setter и getter методи ………………………….6
5. Заклучок ……………………………………………………………………………..11

1
Што претставува Getter и setter методите

Getter и setter методите во Java се методи кои се користат за да се добие и модификува


вредноста на приватната променлива на класата. Обично се дефинирани со синтаксата,
public String getValue() {return value;} додека setter методите се дефинирани со кодот, public
void setValue(String value) {this.value = value;}.

Getter и Setter методите овозможуваат да "добивате" и "поставувате" работи, односно


вредности на променливи на инстанца. Обично основната цел на Getter методот е да врати
како вредност за враќање на тоа што одредениот Getter треба да го добие. 1Тие се
фундаментален дел од објектно-ориентираното програмирање во Java, обезбедувајќи
начин за контрола на пристапот до класата. За секоја варијабла, get методот ја враќа
нејзината променлива додека со set методот и се доделува вредност. Секоја променлива во
класата има две методи: getter метод кој го враќа нејзината вредност и setter метод кој ја
поставува или ја обновува нејзината вредност. Затоа getters и setters се познати и како
accessors и mutators.

Getter (accessor) методи:

Getter методите се есенцијален дел од објектно-ориентираното програмирање, овозможува


контролиран пристап до променливвите во класите. Getter методите се користат за да се
добие вредноста на приватна променлива (атрибут) во класата. Овие методи се користат за
да се добие вредноста на одреден атрибут. Основната намена на Getter методите е да ги
изложи вредностите на приватните атрибути на начин што е безбеден и контролиран.

Преку Getter методите, може да се прочитаат вредности од објектите без да се изложат на


приватните променливи на директен пристап од надворешни класи. Ова допринесува во
принципот на енкапсулација, каде приватните делови на класата се скриени од
надворешниот свет.

1
Превод од Head First Java страна 79.

2
Setter (mutator) методи:

Setter методите се употребуваат за поставување нова вредност на приватните променливи


(атрибути) во класите. Овие методи обезбедуваат контролиран начин за промена на
состојбата на објектите, што дополнително ги заштитува приватните променливи.

Целта на Setter методите е да овозможат надворешниот свет да ја промени вредноста на


приватните атрибути, обезбедувајќи можност за валидација и контрола врз новите
вредности пред да се зачуваат.

1 public class Person {


2 private String name;
3
4 // Getter метод
5 public String getName() {
6 return name;
7 }
8
9 // Setter метод
10 public void setName(String name) {
11 this.name = name;
12 }
13 }

Преку Getter методите, објектите можат да ги изложат своите приватни атрибути на начин
што е безбеден и контролиран, што ги прави достапни за пристап од страна на други класи
или делови од апликацијата. Ова го овозможува почитувањето на принципите на
енкапсулација и сигурноста на податоците, бидејќи надворешниот свет не може директно
да пристапи до приватните атрибути на објектите. Слично, Setter методите обезбедуваат
контрола врз промената на вредностите на приватните атрибути обезбедувајќи можност за
валидација и обработка на влезните податоци. За да резимираме, треба да се овозможи
одбраната за потребата на setter методи за секој getter. Класите треба да бидат
непроменливи освен ако нема многу добри причини да се направат променливи.

3
Непроменливите класи обезбедуваат многу предности, а единствената недостаток е
потенцијалот за проблеми со перформанси во одредени околности.2

Како се генерираат getter и setter методи автомацки во Eclipse

1. Се селектира атрибутот за кој треба да се генерира getter и setter методи и е се


избира "Source" од менито-слика 1 ;
2. Се избира "Generate Getters and Setters"-слика 2;
3. Eclipse ќе отвори дијалог каде што може да се избереат атрибутите за кои може да
се генерира getter и setter методи;
4. Се избираат атрибутите и се клика на "Generate";

Eclipse автоматски ќе ги генерира getter и setter методите за избраните атрибути во класата.


На сликата 4 може да се види како изгледа класа со генерирани getter и setter и методи.

Слика 1

2
Превод од Effective Java by Joshua Bloch стр.312

4
Слика 2

Слика 3

Слика 4

Зошто се користат getter и setter методите

Getter и setter методите овозможуваат контрола на важните променливи односно на


нивниот пристап и ажурирање во код. Пример со setter метод:

1 public void setNumber(int number) {

5
2 if (number < 1 || number > 10) {
3 System.out.println("Invalid number!");
4 }
5 this.number = number;
6}

Со користење на методот setNumber, вредноста на бројот секогаш е помеѓу 1 и 10. Ова е


многу подобро од директното ажурирање на променливата number.Методите може дa се
користат и во енкапсулацијата што претставува криење на деталите на имплементацијата
на објектот и ограничување на пристапот до приватните делови од надворешниот свет.
Getter и setter методите овозможуваат контрола до пристапот на приватните атрибути на
класата. Тие го прават пристапот кон атрибутите контролиран и дозволуваат само
дефинирани операции да се извршуваат врз нив. Со користење на овие методи имаа
поголема контрола врз начинот на модификација на податоците и нивното користење. Ова
ги зголемува безбедноста и флексибилноста на апликацијата и овозможува поефикасно
менаџирање на податоците. Исто така овие функции го овозможуваат креирањето на
3
стабилна апликација со помалку грешки и лесно одржување. Главната предност на
користење на енкапсулација е сигурноста на податоците, екапсулацијата го штити објектот
од несакан пристап овозможува пристап до ниво но без откривање на комплексните детали
под ова ниво ги намалува човечките грешки ја прави апликацијата полесна за разбирање.

Setter методите овозможуваат имплементација на логика за валидација или други


проверки пред да се дозволи модификација на атрибутите. Ова овозможува подобра
контрола врз интегритетот на податоците. Исто така даваат и флексибилност за менување
на податоците без менување на интерфејсите на класите. Ова го прави кодот подржлив на
промени и поедноставува одржувањето на апликацијата во долгорочен период.

Getter и setter методите пред се обезбедуваат сигурност на приватните податоци. Со


правење на приватните атрибути и обезбедување на јавни getter и setter методи, се
ограничува пристапот и модификацијата на податоците само преку контролирани патишта.

3
Превод од Chapter 4 Classes and Methods стр.26

6
Пример на програми кои содржат setter и getter методи :

Пример 1.

1 public class Person {


2 private String name;
3 private int age;
4
5 // Getter method for the name attribute
6 public String getName() {
7 return name;
8 }
9
10 // Setter method for the name attribute
11 public void setName(String name) {
12 this.name = name;
13 }
14
15 // Getter method for the age attribute
16 public int getAge() {
17 return age;
18 }
19
20 // Setter method for the age attribute
21 public void setAge(int age) {
22 this.age = age;
23 }
24 }

Класата Person со две приватни атрибути:name и age, се дефинираат getter методи


(getName() and getAge()) за да се вратат вредностите на овие атрибути. Дефинираме setter
методи setName(String name) and setAge(int age) за да се постават вредностите на овие
атрибути.

Пример.2

7
1 public class Person {
2 private String name;
3 public String getName() {
4 return name;
5 }
6
7 public void setName(String name) {
8 this.name = name;
9 }
10
11 public static void main(String[] args) {
12 Person person = new Person();
13 person.setName("Maja");
14 System.out.println("Person name: " + person.getName());
15 }
16 }

Објаснување:

1. Креирање на класа Person:

Во класата Person имам приватен атрибут name, кој се чува како стринг. Овој атрибут е
приватен што значи дека не може да биде директно пристапен од други класи. Затоа за
пристап и модификација на овој атрибут мора да се користат getter и setter методи.

2. Генерирање на Getter и Setter методите:

За атрибутот name има генерирани getter и setter методи (getName() и setName()). Getter
методот (getName()) овозможуваат да се добие вредноста на name. Setter методот
(setName()) ни овозможува поставување на новата вредност на name. Во main методот, се
креира нов објект од класата Person со помош на new Person(). Потоа се користат setter
методот (setName("Maja")) за да се постават вредност на name атрибутот на објектот на
"Maja". На крај со користење на getter методот (getName()) се добива вредноста на name
атрибутот и се печати.

8
Употреба на Setter методот: Во овој пример, користењето на setter методот овозможува да
поставување на вредноста на name атрибутот на објектот на "Maja".

Пример 2.

Пополни ги празните места во следнава програма и што ке се испечати на крајот на


програмата ?

1 public class Person {


2 _______ String name;
3
4 public String getName() {
5 return name;
6 }
7
8 public void setName(String name) {
9 this.name =______;
10 }
11
12 public static void main(String[] args) {
13 Person person = __________();
14 person.setName("John");
15 System.out.println("Hello, " + person.getName() + "!");
16 ;
17 ;

Одговор:

На празните места треба да стои private, name, new Person.На крајот на програмат ке
се испечати John.

Пример.3

9
Да се напише програма која ќе овозможи внесување на информации за лица, вклучувајќи
го нивното име и адреса (улицата, градот и поштенскиот код). Програмата нека вклучува
две класи: Person и Address. Класата Person нека има атрибут за име и атрибут за адреса,
која е објект од класата Address. Класата Address има атрибути за улица, град и поштенски
код. Одговор

1
public class Person {
2 private String name;
3 private Address address;
4
5 public String getName() {
6 return name;
7 }
8
9 public void setName(String name) {
this.name = name;
10
}
11
12 public Address getAddress() {
13 return address;
14 }
15
16 public void setAddress(Address address) {
17 this.address = address;
18 }
19

10
20
21 public static void main(String[] args) {
22 // Креирање на објект од класата Person
23 Person person = new Person();
24 // Поставување на име
25 person.setName("John");
26
27 // Креирање на објект од класата Address
28 Address address = new Address();
// Поставување на податоци за адресата
29
address.setCity("New York");
30 address.setStreet("123 Main Street");
31 address.setZipCode("10001");
32
33 // Поставување на адреса на лицето
34 person.setAddress(address);
35 System.out.println("Person name: " + person.getName());
36 System.out.println("Person address: " +
37 person.getAddress().getStreet() + ", " + person.getAddress().getCity() +
", " + person.getAddress().getZipCode());
38
} }
39

Објаснување

Класата Person претставува лице со име и адреса, каде што адресата е објект
од класата Address. Во класата Person има атрибути за името на лицето и
неговата адреса (name и address). За секој од овие атрибути, има соодветни getter
и setter методи за да може да se пристапи.

Прво се креира објект од класата Person со new Person(). Потоа, се користи


setter методот setName("John") за да се постави името на лицето на "John". Се
креира нов објект од класата Address со new Address(). Се користат setter
методите за да се постават податоците за адресата: setCity("New York") за
поставување на градот на "New York", setStreet("123 Main Street") за поставување
на улицата на "123 Main Street", setZipCode("10001") за поставување на
поштенскиот код на "10001". Се поставува адресата на лицето со
setAddress(address). На крај, се печатат информациите за лицето и неговата
адреса со System.out.println.

11
Заклучок

Getter и setter во Java се од суштинско значење при имплементација на енкапсулацијата,


основен принцип на објектно-ориентираното програмирање. Енкапсулацијата се однесува
на практиката на криење на внатрешната состојба на објектот и изложување само на она
што е потребно на надворешниот свет. Ова овозможува да се контролира пристапот до
податоците и поведението на објектот, правејќи го полесен за одржување и модифицирање
кодот со текот на времето.

Getter и setter во Java се користат за да обезбедат пристап до приватните податоци на


објектот. Getter методот ја добива вредноста на приватната инстанца променлива, додека
setter методот ја поставува вредноста на таа променлива. Со користење на getter и setter во
Java, можете да се контролира како другите делови од кодот интерактираат со податоците
на објектот. На пример, може да се наметне ограничувања на вредностите кои може да се
постават, да се валидираат податоците пред да се постават, и да се покренат акции кога
податоците се ажурираат.

12
КОРИСТЕНА ЛИТЕРАТУРА

1. Chapter 4 Classes and Methods - https://web.engr.oregonstate.edu/


2. Head First Java
3. Web-страна free code camp
4. Effective Java by Joshua Bloch

13

You might also like