Java (програмски језик) — разлика између измена

Садржај обрисан Садржај додат
Нема описа измене
Нема описа измене
Ред 168:
Како би то изгледало у Jави:
<source lang="java">
public class Object Covek{
String ime, prezime;
void jedi{.....}
}
 
</source>
 
Линија 181 ⟶ 179:
Пример дефинисања конструктора:
<source lang="java">
 
Covek(String ime, String prezime){
this.ime = ime;
this.prezime = prezime;
}
 
</source>
 
Линија 197 ⟶ 193:
 
== Наслеђивање ==
Кључна реч ''-{extends}-'' се користи за прављење нове класе, која се изводи из неке постојеће. Постојећа класа назива се наткласа или родитељска, а нова класа поткласа или класа дете.
Кључна реч extends се користи за прављење нове класе, која се изводи из неке постојеће. Постојећа класа назива се наткласа или родитељска, а нова класа поткласа или класа дете. Поткласе имају више функционалности од својих наткласа, нпр. када бисмо у класи Employee дефинисали класу Manager(користећи кључну реч extends), класа Manager би енкапсулирала више података и имала више функционалности од своје наткласе. У класи Manager бисмо додатно дефинисали нпр. поље које чува вредност бонуса, као и методу setBonus за подешавање његове вредности. Ако смо инстанцирали објекат класе Мanager, можемо употребити и методу setBonus. Међутим, уколико смо инстанцирали објекат класе Еmployee, не можемо употребити методу setBonus - ова метода се не налази међу методама које су дефинисане у класи Employee. Међутим, методе које су дефинисане у класи Еmployee, могу се користити са објектима класе Мanager. Мада те методе нису експлицитно дефинисане у класи Мanager, оне се аутоматски наслеђују из наткласе Еmployee. Исто важи и за поља дефинисана у наткласи, сваки објекат класе Мanager има поља дефинисана у дефинисана у наткласи Еmpoyee. У суштини, кад се дефинише поткласа извођењем из њене наткласе, треба само уочити разлику између поткласе и наткласе. Најопштије методе треба стављати у наткласе, а специфичније методе, које су више специјализоване, треба смештати у поткласе. Генерално, издвајање опште функционалности њеним померањем у наткласе је уобичајено за објектно оријентисано програмирање. Међутим, метода класе Мanager нема директан приступ приватним пољима наткласе. Уколико методе класе Manager желе да приступе тим приватним пољима, оне морају да користе јавне методе класе Еmployee. Да бисмо назначили да желимо да позовемо методу наткласе, а не текуће класе, користимо специјалну реч super.
 
Наслеђивање не треба да се заустави на извођењу само једног нивоа класа. На пример, можемо имати класу Executive која наслеђује класу М. Колекција свих класа које су настале наслеђивањем заједничке наткласе назива се хијерархија наслеђивања.
Кључна реч extends се користи за прављење нове класе, која се изводи из неке постојеће. Постојећа класа назива се наткласа или родитељска, а нова класа поткласа или класа дете. Поткласе имају више функционалности од својих наткласа, нпр. када бисмо у класи Employee дефинисали класу Manager(користећи кључну реч ''-{extends}-''), класа Manager би енкапсулирала више података и имала више функционалности од своје наткласе. У класи Manager бисмо додатно дефинисали нпр. поље које чува вредност бонуса, као и методу setBonus за подешавање његове вредности. Ако смо инстанцирали објекат класе Мanager, можемо употребити и методу setBonus. Међутим, уколико смо инстанцирали објекат класе Еmployee, не можемо употребити методу setBonus - ова метода се не налази међу методама које су дефинисане у класи Employee. Међутим, методе које су дефинисане у класи Еmployee, могу се користити са објектима класе Мanager. Мада те методе нису експлицитно дефинисане у класи Мanager, оне се аутоматски наслеђују из наткласе Еmployee. Исто важи и за поља дефинисана у наткласи, сваки објекат класе Мanager има поља дефинисана у дефинисана у наткласи ЕmpoyeeЕmployee. У суштини, кад се дефинише поткласа извођењем из њене наткласе, треба само уочити разлику између поткласе и наткласе. Најопштије методе треба стављати у наткласе, а специфичније методе, које су више специјализоване, треба смештати у поткласе. Генерално, издвајање опште функционалности њеним померањем у наткласе је уобичајено за објектно оријентисано програмирање. Међутим, метода класе Мanager нема директан приступ приватним пољима наткласе. Уколико методе класе Manager желе да приступе тим приватним пољима, оне морају да користе јавне методе класе Еmployee. Да бисмо назначили да желимо да позовемо методу наткласе, а не текуће класе, користимо специјалну реч super.
Чињеница да променљива објекта може да показује на више стварних типова назива се полиморфизам. Променљива типа Еmployee може да се односи на објекат типа Еmployee, или на објекат било које поткласе класе Еmployee, као што су Мanager,Еxecutive...
 
У случају да желимо да спречимо да неко други формира поткласу од неке наше класе, у дефиницији такве класе користимо модификатор final. Слично, коришћењем истог модификатора можемо да учинимо неку конкретну методу у класи коначном. Модификатор final користимо како бисмо осигурали да се понашање не може променити у поткласи.
Генерално, издвајање опште функционалности њеним померањем у наткласе је уобичајено за објектно оријентисано програмирање. Међутим, метода класе Мanager нема директан приступ приватним пољима наткласе. Уколико методе класе Manager желе да приступе тим приватним пољима, оне морају да користе јавне методе класе Еmployee. Да бисмо назначили да желимо да позовемо методу наткласе, а не текуће класе, користимо специјалну реч ''-{super}-''.
Док се крећемо ка врху кроз хијерархију наслеђивања, класе постају све општије и вероватно све апстрактније. Класа са једном или више апстрактних метода мора и сама да се декларише као апстрактна, што се ради коришћењем кључне речи abstract. Поред апстрактних метода, апстрактне класе могу имати конкретне податке и методе. Апстрактне методе се понашају као чувари места за методе које су имплементиране у одређеној поткласи. Апстрактне методе представљау важан концепт у програмском језику Јава, а на њих често можете наићи унутар интерфејса.
Интерфејс
Наслеђивање не треба да се заустави на извођењу само једног нивоа класа. На пример, можемо имати класу Executive која наслеђује класу ММanager. Колекција свих класа које су настале наслеђивањем заједничке наткласе назива се хијерархија наслеђивања.
 
Колекција свих класа које су настале наслеђивањем заједничке наткласе назива се ''-{хијерархија наслеђивања}-''.
Чињеница да променљива објекта може да показује на више стварних типова назива се ''-{полиморфизам}-''.
 
Чињеница да променљива објекта може да показује на више стварних типова назива се полиморфизам. Променљива типа Еmployee може да се односи на објекат типа Еmployee, или на објекат било које поткласе класе Еmployee, као што су Мanager,Еxecutive...
У случају да желимо да спречимо да неко други формира поткласу од неке наше класе, у дефиницији такве класе користимо модификатор ''-{final}-''. Слично, коришћењем истог модификатора можемо да учинимо неку конкретну методу у класи коначном. Модификатор ''-{final}-'' користимо како бисмо осигурали да се понашање не може променити у поткласи.
 
Док се крећемо ка врху кроз хијерархију наслеђивања, класе постају све општије и вероватно све апстрактније. Класа са једном или више апстрактних метода мора и сама да се декларише као апстрактна, што се ради коришћењем кључне речи ''-{abstract}-''. Поред апстрактних метода, апстрактне класе могу имати конкретне податке и методе. Апстрактне методе се понашају као чувари места за методе, које су имплементиране у одређеној поткласи. Апстрактне методе представљау важан концепт у програмском језику Јава, а на њих често можете наићи унутар интерфејса.
 
Интерфејс је референтни тип, сличан класи, али може садржати само константе и потписе метода.
Од верзије 8 интерфејси могу да садрже и тела метода.
Служе да се обезбеди неки шаблон понашања, којим гарантујемо да објекат који га укључује мора да има дато извршавање наведено у интерфејсу. Kласа може да укључи више интерфејса.
 
мора да има дато извршавање наведено у интерфејсу, класа може да укључи више интерфејса.
Пример:
<source lang="java">
interface Moveable{
public move();//potpis metode
}
 
 
public class Covek implements Moveable{
.....
move(){...}
}
</source>
 
Поља у класи је најбоље означити као ''-{private}-'', док се методе обично означавају као ''-{public}-''. Све карактеристике које су дефинисане као private нису видљиве за друге класе. То исто важи и за поткласе.
 
Поља у класи је најбоље означити као private, док се методе обично означавају као public. Све карактеристике које су дефинисане као private нису видљиве за друге класе. То исто важи и за поткласе. Постоје и ситуације кад методу желите да ограничите само на поткласе и тада да допустите методама поткласе да приступе пољу наткласе,. тадаTада се поље или метода декларише као ''-{protected}-''.
Модификатори у Јави који контролишу видљивост:
* private-видљив само за одређену класу
Линија 253 ⟶ 263:
* [http://ei.cs.vt.edu/~history/Youmans.Java.html -{Java: Cornerstone of the Global Network Enterprise}-]
* [http://www.javarss.com/ -{JavaRSS.com}- - -{Java}- портал вебсајтова рађених у -{Java}- језику, богат вестима, чланцима, блоговима, групама, форумима везаним за -{Java}- језик и -{J2EE}- платформу]
* {{cite book|last=Horstmann|first=Cay S.|title=Core Java Volume I-Fundamentals|edition=9th|publisher=Prentice Hall|year=2013|isbn=978-86-7991-367-8|pages=}}
*{{cite book|last=Horton|first=Ivor|title=Ivor Horton's Beginning Java 2 JDK|edition=5th|publisher=Wiley Publishing|year=2005|isbn=86-7991-299-9|pages=}}
 
=== Историја ===