Чекор по чекор
Почетни чекори со Java
Објектно оријентирани концепти во Јава - Прв дел
Објектно оријентирани концепти во Јава - Втор дел
Објектно оријентирани концепти во Јава - Трет дел
Јава сервлети - Прв дел
Единствен Јава објект (singleton)
Најчести 10 грешки што ги прават Java програмерите
повеќе...
Што е тоа ...
... IDE
... Tomcat
... објект?
... класа?
... наследување?
... интерфејс?
... наследување? (прашања и одговори)
повеќе...
За загревање
Нов проект во Eclipse?
Примитивни податочни типови
Променливи
Оператори
Доделувачки, аритметички и Unary оператори
Оператори за еднаквост, релации и услови
Изрази, искази и блокови
повеќе...
Како да ...
... конвертирам java.sql.Timestamp во java.util.Date
... зададам формат на датум
... ковертирам „long“ во HEX и обратно
... прочитам датотека и променам стринг
... креирам ZIP датотека
... поврзам Apache и Tomcat користејќи mod_jk
... пратам недефиниран број на атрибути до некоја метода
повеќе...
Java преку примери
new Socket(String addr,int port)
new URL(String address)
new URL(String protocol, String host, int port, String file)
CommPort: getInputStream()
CommPortIdentifier: getPortIdentifiers()
Statement: executeQuery(String sql)
Statement: getMaxRows()
повеќе...
Грешка
Нов напис
Рубрика:
Наслов:
  
  

страна број:123
Објектно оријентирани концепти во Јава - Втор дел
Контрола на пристап до променливи

Како што веќе видовме секоја класа може да се декларира како „public“ за истата да биде достапна од друг пакет. Исто така и до членовите на класите (се мисли на особеностите и методите) може да се има контрола на пристапот. Како и класите така и членовите имаа вообичаено подесување за пристапот до нив кое е подесено да до истите може да се пристапи само од истиот пакет. На пример:

int vkupnoJabolka = 0;

boolean skiniJabolko(int brojNaJabolka) {
    ...
    ...
}


Иако класата е декларирана како „public“, до вредноста на променливат „vkupnoJabolka“ може да се пристапи за читање или модификација само од код/класи кои се во ист пакет. Исто така методот „skiniJabolko“ може да биде повикан од код/класи кои се во истиот пакет како и класата „Jabolknica“.

Како и класите така и особеностите и методите можат да бидат декларирани како „public“:

public int vkupnoJabolka = 0;

public boolean skiniJabolko(int brojNaJabolka) {
    ...
    ...
}

Во ваков случај било од каде може да се пристапи и модифицира „public“ особеноста или да се повика „public“ методата.

Особеностите и методите имаат уште два начина на контрола на пристап кои класите ги немаат. Првиот е „private“:

private int vkupnoJabolka = 0;

private boolean skiniJabolko(int brojNaJabolka) {
    ...
    ...
}

Во овој случај само кодот од истата класа може да пристапи до приватните (private) особености и методи. Доколку сакаш да зачуваш информација која е корисна само за објектот и неговите методи тогаш сигурни ќе сакаш да го ограничиш пристапот на другите класи до тоа парче од код (како што ќе видиме понатака тоа е дел од добар дизајн на класи!).

Последниот начин на контрола на пристап до особеностите и методите на една класа е „protected“:

protected int vkupnoJabolka = 0;

protected boolean skiniJabolko(int brojNaJabolka) {
    ...
    ...
}

Слично како и вообичаениот начин на контрола на пристап, така и „protected“ недозволува пристап до особеностите и методите од некој друг пакет, но исто така воведува и еден исклучок. Сите подкласи од моменталната класа (класите кои ја наследуваат оваа класа) можат да пристапат до особеностите и методите, иако се во различен пакет!

За да се направи разлика во која ситуација, кој начин на контрола ќе се употреби бара малку искуство. Знам дека во почеток е искушение се да ставиш „public“ за да се поштедиш од мислење понатака дали некоја особеност (или метода) е пристапна од друга класа, друга пакет итн. Секако дека и тој пристап ќе работи, но тоа дефинитивно не е во начелата на објектно орјентираното програмирање. Кодот (класите) кои ќе бидат користени на други места, во други проекти ќе биде во корист доколку е што порестрективно дизајниран, односно да се дозволи пристап исклучиво до она што на другиот програмер ќе му биде од основна корист. Еден пример за ова што го зборувам во последниов пасус следи на наредната страна.
страна број: 1 2 3 4 << претходна страна : : следна страна >> 
 
Коментирај
автор: Анонимус
Анонимните коментари ќе бидат објавувани веднаш после нивната проверка.
За да вашиот коментар биде веднаш валиден претходно пријавете се или креирајте свој профил


напишал: Анонимус (02.03.2009 13:12:10)
Idajava za vakov portal vi e super. I moze da se nauci osnovata na java programiranjeto. Od mene edinstvena zabeleska e sto ne postoi forum. Mislam deka bi bilo super da se razmenuvaat znaenja pomegu korisnicite.
напишал: igor (03.04.2009 15:28:18)
Благодарам, што се однесува до форумот, го има ... http://forum.java.com.mk

поздрав
напишал: Анонимус (29.06.2011 14:25:44)
>> Енкапсулација во слободен превод би значело дека внатрешната поставеност (репрезентација) на објектот е одвоена од интерфејсот кој се презенетира кон другите објекти во твојот програм

Одделувањето на интерфејсот од имплементацијата се нарекува implementation hiding (криење на имплементацијата). За таа цел се користат спецификаторите за пристап, private, public, protected (ако не се искористи ниеден од нив, тогаш се работи за package-access). Додека пакувањето на податоците и методите во рамките на класата, во комбинација со implementation hiding, се нарекува енкапсулација (затварање, зачаурување на класата). Резулатот е податочен тип, класа со свои карактеристики и однесувања.
пребарување
најди
 
Форум
 
JugMK
GetJava Download Button
http://www.eclipse.org
 
 
 
 
Copyrights © 2006 - 2017 by Java.com.mk
Права и правила за користење на java.com.mk
Контакт адреса:
contact AT java.com.mk
Powered by Supernova v.0.70 beta
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc.
Сите други трговски марки се сопственост на нивните сопственици.