Чекор по чекор
Почетни чекори со 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
Објектно оријентирани концепти во Јава - Прв дел
Споредување на објекти

Некаде во претходните написи споменав дека во некој од наредните написи ќе објасниме како работат стринговите (Strings) во Јава. Конкретно требаше да објаснам како стринговите можат да бидат споредени (компарирани) за еднаквост во Јава програм.

Начините на споредување за еднаквост е уште една многу битна разлика помеѓу примитивните податочни типови и објектите во Јава. Погледни го следниов изворен код:

1  int a = 5;
2  int b = 5;
3  if (a == b) System.out.println("'a' i 'b' se enakvi!");

5  Drvo d1 = new Drvo();
6  d1.visina = 5;
7  Drvo d2 = new Drvo();
  koregirano na 11.02.2008: 8  d2.height = 5;

8  d2.visina = 5;
9  if (d1 == d2) System.out.println("'d1' i 'd2' se ednakvi!");

Примерот го открива различното однесување помеѓу примитивните податочни типови и објектите. Споредбата од линија 3 доаѓа до резултат дека „a“ и „b“ се навистина исти, од друга страна, без разлика на фактот дека висинате на двете дрва „d1“ и „d2“ се исти, во линијата број 9 тоа не е доволно за да објектите „d1“ и „d2“ резултираат со тоа дека се исти. За да две променливи кои содржат објекти бидат евалуирани како исти со користење на операторот „==“ и двете променливи мораат да покажуваат према еден ист објект! Во следниов пример променливите „d1“ и „d2“ ќе бидат евалуирани како исти:

1  Drvo d1 = new Drvo();
2  d1.visina = 5;
3  Drvo d2 = d1; // I dvete promenlivi referenciraat sprema isto Drvo
4  if (d1 == d2) System.out.println("'d1' i 'd2' se ednakvi!");

Но ваква форма на споредување и не е баш корисна, нели?

Знаеш дека Јава користи вградена класа наречена „String“ која ги претставува текстуалните низи од карактери. Горенаведениот проблем се појавува исто така кога сакаме да споредиме два стринга (Strings) за еднаквост. На пример, доколку сакаш да споредиш некој стринг кој е внесен од корисникот на програмот, со некоја лозинка за да би дозволил пристап до некој модул во програмот, сигурно ќе помислиш да ги споредиш лозинките на овој начин:

1  if (vnesenaLozinka == "tajna_lozinka") {
2    // Dozvoli pristap
3  } else {
4    System.out.println("Pristapot ne e dozvolen.");
5  }

Проблемот е тоа што, иако променливата „vnesenaLozinka“ ја содржи вредноста „tajna_lozinka“ сепак не е иста инстанца од класата String како вредноста со која се споредува, така да секогаш при евалуација на тој начин резултатот ќе биде неточен (False), односно пристапот ќе биде одбиен.

Решението е да се употреби методата „equals“ која е обезбедена од класата String наместо операторот „==“. Овој метод ти овозможува да споредиш два стринга за еднаквост во вистинска смисла на зборот. Еве едно примерче како би го искористиле „equals“ методот во погорниот пример:

1  if (vnesenaLozinka.equals("tajna_lozinka")) {
2    // Dozvoli pristap
3  } else {
4    System.out.println("Pristapot ne e dozvolen.");
5  }

Методот „equals“ е различен од другите споменати методи по тоа што овој метод прима влезен параметар. Наместо после името на методот „equals“ да дојдат празни загради „()“, овде помеѓу заградите имаме параметар од тип String. Како резултат овој метод враќа Boolean вредност (true или false) зависно од исходот од евалуацијата на вредностите.

Сите вградени класи од Јава го содржат методот „equals“ за да може објектот да се спореди со некој друг. Во вториот дел од овој напис ќе ти објаснам како да напишеш „equals“ метод за класите Drvo и Jabolknica.
страна број: 1 2 3 4 5 6 7 << претходна страна : : следна страна >> 
 
Коментирај
автор: Анонимус
Анонимните коментари ќе бидат објавувани веднаш после нивната проверка.
За да вашиот коментар биде веднаш валиден претходно пријавете се или креирајте свој профил


напишал: Анонимус (08.01.2008 15:30:28)
супер е
напишал: igor (08.01.2008 18:48:29)
благодарам, се трудиме да биде супер ;)
напишал: Анонимус (31.01.2008 23:46:34)
mesto hight vo 16.25.26.27 red treba da stoi visina
напишал: igor (01.02.2008 22:43:44)
благодарам за забелешката, корегирано!
напишал: jassum (10.02.2008 19:53:32)
Drvo d1 = new Drvo();
d1.visina = 5;
Visina d2 = new Drvo();
d2.height = 5;
if (d1 == d2) System.out.println("'d1' i 'd2' se ednakvi!");

}
Se ivinuvam ama ova kajmene vaka ne go bidva :) a neznam oti.
a vaka da:
Drvo d1 = new Drvo();
d1.visina = 5;
Drvo d2 = new Drvo();
d2.visina = 5;
if (d1.visina == d2.visina) System.out.println("'d1' i 'd2' se ednakvi!");

}
напишал: igor (12.02.2008 00:08:45)
фала на зебелешките, корегирано.

За другото гледам примети ;)
напишал: jassum (10.02.2008 19:57:45)
Treba izgleda poke da citam heheheh pozdrav pa poslem da se bunam :)
напишал: Анонимус (27.02.2008 14:38:48)
Bravo za avtorite . Dobro sto postoi vakva web strana
напишал: iarsov (27.06.2008 23:50:28)
сега сватив
во сто е штосот и кое од каде зима.
Браво одлична лекција.
Keep doing
напишал: Анонимус (09.11.2011 00:23:08)
Браво супер е странава,многу ми помогна ви благодарам.
пребарување
најди
 
Форум
 
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.
Сите други трговски марки се сопственост на нивните сопственици.