JavaRush /Блоги Java /Random-TG /Интерфейс дар Java
vinsler
Сатҳи

Интерфейс дар Java

Дар гурӯҳ нашр шудааст
Ман достони бад ҳастам, агар ҳадафе надошта бошам, ки чизеро бо дархости мушаххас ба касе фаҳмонам, аз ин рӯ ман чизҳои оддиро мефаҳмам ва барои як чиз дар ин ҷо менависам. Ман ба намунаи таълими JavaRush пайравӣ намекунам, ки аввал савол медиҳам ва баъд ба шумо чӣ тавр бояд онро гӯям. Ман тарафдори он мебошам, ки аввал гуфтану баъд пурсидан, мисли гуфтан, аввал нишон додан ва баъд фаҳмондан.
Интерфейс дар Java - 1
BS: Амалҳо == рафтор, онҳоро ҳамчун синоним қабул кунед, амалҳо дурусттар фаҳмида мешаванд, он ҳамеша чизи фаъол аст ва рафтор метавонад чизе нишон надиҳад.

интерфейс - интерфейс

Ин чи аст? Намунаи рӯйхати интерфейс (бо генерикӣ):
public interface Store<T, ID> {
    void add(T t);
    void update(T t, ID i);
    void delete(ID i);
    T findOne(ID i);
    List<T> findAll();
}
Интерфейси умумӣ (аз CRUD: Эҷод, Хондан, Навсозӣ, Нест кардан). Парво накунед, ҳама чиз хеле оддӣ аст. Ин интерфейс маънои онро дорад, ки кор бо бисёр базаҳои маълумот ба принсипи зерин асос ёфтааст: шумо бояд сабтро илова кунед, сабтро нав кунед, ҳама сабтҳоро нест кунед ва пайдо кунед. Шумо инро 100 маротибаи дигар хоҳед дид ва шумо тақрибан ҳамон интерфейсро ҳамон миқдор маротиба нависед. Он оммавӣ аст, зеро он бояд аз ҷониби синф амалӣ карда шавад. Аз ҷониби синф амалӣ карда шудан чӣ маъно дорад ? Ҳама чиз хеле содда аст: он бояд тамоми усулҳои интерфейсро тавсиф кунад. Намунаи оддии татбиқ дар синф:
void add (T t) {
	bookstore.add(t);
}
Ба ҷои T t, як генералии муайян иваз карда мешавад. Хулоса, ин TYPE-и тағирёбанда аст, бинобар ин онро аксар вақт ҳамчун T = Навъ ифода мекунанд. Дар мисоли мо, биёед бигӯем, ки ин метавонад чунин бошад:
void add (Book book) {
	bookstore.add(book);
}
Табиист, ки ба ҷои китоби Китоб шумо метавонед ҳама гуна тағирёбандаеро, ки барои татбиқи шумо лозим аст, иваз кунед. Барои фаҳмидани он, шумо метавонед аз ҷиҳати назариявӣ тасаввур кунед, ки T = Объект аст ва азбаски ҳама чиз дар Java Объект аст, шумо инчунин метавонед ягон синф/тағйирёбандаҳои худро дар он ҷо муайян кунед. Ягона мушкилӣ дертар ба миён меояд - истисноҳо, агар синф сифр бошад ва ғайра. Ба ибораи худ, ин сохтори муайяни барномаест, ки муносибатҳои байни an objectҳоро тавассути тақсим кардани онҳо ба қисмҳои муайяни рафтор муайян мекунад. Мақсади интерфейс муайян кардани функсияҳо барои татбиқи синф мебошад. Яъне тавсифи имзоҳои методӣ. Дар дохor интерфейс номҳои усулҳое мавҷуданд, ки арзишҳоро бармегардонанд ва ворид мекунанд ва ҳамин тавр. Хуб, шумо ҳоло ҳам метавонед баъзе тағирёбандаҳоро дар он ҷо таъин кунед, аммо онҳо фавран ба ниҳоии статикии оммавӣ табдил меёбанд ва онҳоро аз ҳар қисми барнома дастрас кардан мумкин аст. Интерфейс амалҳоро тавсиф мекунад ва аз ин рӯ, ин амалҳо дар он мавҷуданд, яъне. функсияҳо ё усулҳо. Чаро ин зарур аст? Ин чиро содда мекунад ё кадом бартариятхо медихад? Оддӣ кардани тавсифи амал ва рафтор. Мо мегӯем, ки чӣ кор кунем, аммо ҳар як синф худаш чӣ тавр иҷро кардани онро амалӣ мекунад. Дар лоиҳаҳои калон вақтро сарфа кунед. Интерфейсҳо дар ҳолатҳое сохта мешаванд, ки мо медонем, ки мо бояд ягон вазифаро иҷро кунем, аммо тарзи иҷрои он метавонад фарқ кунад. Интерфейс номҳои амалҳоро тавсиф мекунад - ин танҳо самти баъзе абстраксия аст. Гарчанде ки интерфейсҳои бе усулҳо ва майдонҳо мавҷуданд, ба монанди нишонаҳо ба монанди Cloneable, Remote ва ғайра. Биёед мисоли дӯстдоштаи ҳама мошинро гирем. Интерфейси он амалҳои имконпазири мошин, гардиши руль ё самти ҳаракат, афзоиши суръат, бензини боқимонда ва ғайраро тавсиф мекунад. Яъне ҳамон амалҳое, ки комилан ҳар як мошин метавонад дошта бошад. Ба ибораи дигар, мо ба ҷангали таназзул ба пасттарин сатҳи офариниши аввалин мошин мефурӯшем ва бо мағзи худ мефаҳмем, ки он чӣ гуна офарида шудааст ва чӣ дошт. Табиист, ки мо инро ба таври абстрактй ва танхо барои амалхо тасвир мекунем. Аввалин мошин чӣ гуна буд? Оё руль вуҷуд дошт? Ин буд, ки маънои онро дорад, ки он ба ҷое мегашт, самти руль/ҳаракат. Оё чархҳо буданд? Бале, ин маънои онро дорад, ки ман бо суръат ронда будам, тағирёбии суръат. Ин тамоми интерфейс аст. Аммо дар маҷмӯъ, интерфейсҳо барои иҷрои баъзе амалҳои муайян сохта мешаванд. Онхое. мо барои барномаҳои мушаххастар аз ҳама чизи дигаре, ки шумо фикр карда метавонед, менависем. Аз ин рӯ, худи интерфейсҳо усулҳои равшантар ва мушаххасро дар бар мегиранд. Албатта, онҳо то ҳадди имкон абстрактӣ хоҳанд буд. Интерфейсҳо метавонанд ҳамчун синфҳо аз ҳамдигар мерос гирифта шаванд.
interface MyInterface extends NotMyinterface;
Интерфейсҳо дар синфҳо амалӣ карда мешаванд. Шумо метавонед интерфейсҳои зиёдеро, ки мехоҳед, татбиқ кунед. Баръакси мерос, танҳо аз як мерос мерос гиред.
class NewClass extends OldClass implements MyInterface, NotMyinterface;
Онхое. мо бо баъзе амалҳо баромадем, ба онҳо ном додем, маълумотро ворид кардем, маълумотро баргардонидем, ҳамаи инро дар интерфейс навиштем, баъд синф эҷод кардем ва интерфейси худро ба ин синф илова кардем, яъне. интерфейси моро дар ин синф амалӣ намуд. Ғайр аз он, ҳама усулҳо/функсияҳои дар интерфейс тавсифшуда бояд амалӣ дошта бошанд. Онро метавон мустақиман дар худи интерфейс тавассути илова кардани калимаи default пеш аз метод ва навиштани татбиқ бевосита дар метод, ба монанди синф анҷом дод. Ин бо versionи 8-и Java имконпазир гардид. Он инчунин метавонад дар синфе анҷом дода шавад, ки ин интерфейсро амалӣ мекунад. Хуб, мо интерфейсро навиштем, онро дар синф татбиқ кардем, татбиқро дар синф паҳн кардем, мо метавонем онро иҷро кунем ва озмоиш кунем. Шумо инчунин метавонед дар интерфейсҳо дар бораи:
  • Усулҳои статикӣ.
  • Усулҳои хусусӣ. (такрор рамзи)
  • Тағйирёбандаҳо/константҳо.
  • Интерфейсҳои дохилшуда.
Аммо ин корро дертар кардан беҳтар аст ва аз ҳад зиёд саратонро пур кардан низ зараровар аст. Саволи ҷолиб, Volvo чист? Синф ё интерфейс?
line1: Volvo v = new VolvoV2();
line2: Volvo v = new VolvoV3();
Илова ба интерфейсҳо, дар бораи синфҳо ва синфҳои абстрактӣ идома додан лозим аст. Шояд баъдтар, вақте ки ман чанд соати дигар озод мешавам. ))) PS: Бачаҳо, ман ҳама танқидро дар зери пост ё дар ПМ хоҳонам, ман комилан мефаҳмам, ки ҳама онро доранд))) ва ман ҳамеша ба шунидани он шавқ дорам, зеро ин як сабаби каме беҳтар шудан аст ва боз пеш рафтанро давом дода. Бо ин, ташаккури зиёд ва барори кор дар барномасозӣ. )))
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION