Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Пакеттер және интерфейстерПоиск на нашем сайте Дәріс №14 Кірістірілген кластар. Кірістірілген (nested) кластар және интерфейстер. Ішкі (inner) кластар. Локальдың (local) кластар. Анонимдік (anonimous) кластар және оқиғаларды өңдеу. Пакеттер және интерфейстер Java API стандартты кітапханасына жүздеген кластар кіреді. Әрбір программист жұмыс істеу кезінде оншақты өз класын қосады. Кластардың көп болуы ыңғайсыздық тудырады. Кластарды кітапханаға қосу бұрыннан қабылданған. Бірақ кластар кітапханасы стандарттан басқасы тіл бөлігі болып есептелінбейді. Java құрастырушылар тілге қосымша құрылғы — пакеттерді (packages) қосты. Java-ның барлық кластары пакеттерге таратылады. Пакеттер кластардан басқа интерфейстер мен ішкі пакеттерден (subpackages) тұрады. Бұл құрылым файлдық жүйеде көрінеді. Барлық қосымшалары class болатын файлдар файлдық жүйе каталогында сақталады. Әрбір пакеттің аймақтық аты (namespace) болады. Егер әртүрлі пакеттегі бірдей аттары бар кластарды қолдансақ, онда класс аты пакет аты арқылы анықталады: пакет.класс. Бұл кластың толық атын (fully qualified name) білдіреді. Пакеттер мен ішкі пакеттер Пакет құру үшін Java-файлдың бірінші жолына package ат жолын жазу керек, мысалы: package mypack; Көрсетілген ат mypack арқылы пакет құрылады және осы файлдағы барлық кластар mypack пакетіне орналасады. Ішкі пакетті құру үшін бірінші пакет атын көрсету керек, мысалы subpack атты ішкі пакет құру; package mypack.subpack; Ішкі пакет ішінен тағы да ішкі пакет құруға болады package mypack.subpack.sub; және т. с. с.Үлкен проектілерді пакеттерде сақтау керек.Класс мүшелеріне мүмкіндік Бізде екі пакетке орналасқан 5 класс болсын.
Сурет 7. Кластарды пакеттерге тарату Base.java файлында үш класс бар: inpi, Base және Derivedpi. Бұл кластар p1 пакетінде орналасқан. Base класында мүмкін айнымалылардың 4 түрі анықталған, ал inp1 және Derivedp1 кластарының f( ) әдісінде барлық Base класының өрістеріне мүмкіндік жасалған. Келеңсіз жағдайлар түсініктемелермен берілген. Түсініктемелерде компилятор хабарламасы жазылған. 13 - листингте осы файл көрсетілген. Листинг 13.Base.java файлындағы р1 пакеті package p1; class Inp1{ public void f () { Base b = new Base(); // b.priv = 1; // "priv has private access in p1.Base" b.pack = 1; b.prot = 1; b.publ = 1; } } public class Base{ private int priv = 0; int pack = 0; protected int prot = 0; public int publ = 0; } class Derivedpi extends Base{ public void f(Base a) { // a.priv = 1; // "priv hds private access in pi.Base" a.pack = 1; a.prot = 1; a.publ = 1; // priv = 1; // "priv has private access in pi.Base" pack = 1; prot = 1; publ = 1; } } 13 - листингтен көретініміз басқа класс өрісі private пакетке мүмкін емес, себебі олар жабық. Inp2.java файлында екі класс: inp2 және Derivedp2 берілген, бұлар base класының кеңейтілулері. Бұл кластар р2 пакетінде орналасқан. Бұл кластар да вазе класы өрісіне байланыс орнатуға тырысқан. Мүмкін емес байланыстар компилятор түсініктемесінде көрсетілген. 14-листингте осы файл құрамы көрсетілген. Листинг 14.Inp2.java файлы р2 пакеті түсініктемесімен package p2; import pl.Base; class Inp2{ public static void main(String[] args){ Base b = new Base(); // b.priv = 1; // "priv has private access in pl.Base" // b.pack = 1; // "pack is not public in pl.Base; // cannot be accessed from outside package" // b.prot = 1; //„"prot has protected access in pi.Base" b.publ = 1; } } class Derivedp2 extends Base{ public void, f (Base a){ // a.priv = 1; // "priv has private access in. p1.Base" // a.pack = 1; // "pack, is not public in pi.Base; cannot //be accessed from outside package" // a.prot = 1; // "prot has protected access in p1.Base" a.publ = 1; // priv = 1; // "priv has private access in pi.Base" // pack = 1; // "pack is not public in pi.Base; cannot // be accessed from outside package" prot = 1; publ = 1; super.prot = 1; } } Мұнда басқа пакете қатынас жоғарғы дәрежеде шектелген. Тәуелсіз кластан тек ашық, public, басқа пакеттің класс өрісіне қатынас жасауға болады. Ішкі кластарға қорғалған, protected, өрістеріне жоғарғы класс даналары арқылы ғана байланыс орнатуға болады. Бұлардың бәрі тек өрістерге ғана емес әдістерге де қатысты. Кесте 5. Кластың өрісі мен әдісіне мүмкіндігі
Класс Пакет Ішкі кластар пакеті Барлық кластар private +
"package" + +
protected
+ + * public + + + + protected – басқа пакеттегі өрістер мен әдістерге мүмкіндігіндегі ерекшелігі жұлдызшамен белгіленген.
|
||
|
Последнее изменение этой страницы: 2024-07-06; просмотров: 50; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.004 с.) |