Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
арапайым түрлер және операцияларПоиск на нашем сайте Дәріс №4. Java бағдарламасындағы файлдар. Бағдарлама формасын құру. Файлдармен жұмыс: құру, өңдеу. swing және awt пакеттері. Java тіліндегі файл құрылымы былай жазылады.
Басқа екі ереже.
Осыдан көретініміз егер проектіде бірнеше ашық кластар бар болса, онда олар әртүрлі файлдарда болуы керек. Интерфейстер Класс өшімшесінен extends сөзінен кейін тек бір ғана аталық класс атын жазу керек. Интерфейстің (interface), кластан айырмашылығы әдістің тек тұрақтылары мен тақырыбынан тұрады. Интерфейстер кластар сияқты пакеттер мен ішкі пакеттерге таратылады және class-файлдарында компиляцияланады. Интерфейс жазылуы interface сөзінен басталады алдында public модификаторы тұруы мүмкін, бұл оның барлық жерде мүмкін болатынын білдіреді. Егер public модификаторы болмаса ол тек өз пакетінде ғана көрінеді. Interface сөзінен кейін оның аты; сосын extends сөзінен кейін үтір арқылы бөлініп жоғарғы интерфейстер тізімі жазылады. Фигуралық жақшаларға әдістің тұрақтылары мен тақырыбы жазылады. Мысалы, автомобилдер иерархиясы: interface Automobile{ . . . } interface Car extends Automobile{ . . . } interface Truck extends Automobile{ . . . } interface Pickup extends Car, Truck{ . . . } Интерфейсті емес, оның таратылуын (implementation) беру керек. Интерфейс таратылуы дегеніміз — бір немесе бірнеше интерфейстер әдістері жазылған класс. Автомобилдер иерархиясын тарату мысалы: interface Automobile{ . . . } interface Car extends Automobile! . . . } class Truck implements Automobile! . . . } class Pickup extends Truck implements Car{ . . . } немесе: interface Automobile{ . . . } interface Car extends Automobile{ . . . } interface Truck extends Automobile{ . . . } class Pickup implements Car, Truck{ . . . } Интерфейстер таратылуы толық болмауы, кейбір интерфейс әдістері жазылған, ал кейбіреуі жазылмаған болады. Бұндай таратылулар— абстрактілі класс болады. Оларды abstract модификаторымен белгілеу керек. Интерфейстерге сілтеулер жасауға болады. Бұндай сілтеулер интерфейс таратылуында ғана көрсетіледі. Бұл арқылы полиморфизмді ұйымдастыру әдісін аламыз. 15 - листинг интерфейс көмегімен 9 - листингтегі үй жануарларының хорын жинауға болатынын көрсетеді. Листинг 15. Полиморфизмді ұйымдастыруда интерфейсті қолдану interface Voice{ void voice(); } class Dog implements Voice{ public void voice(){ System.out.println("Gav-gav!"); } } class Cat implements Voice{ public void voice(){ System.out.println("Miaou!"); } } class Cow implements Voice{ public void voice(){ System.out.println("Mu-u-u!"); } } public class Chorus{ public static void main(String[ ] args){ Voiced singer = new Voice[3]; singer[0] = new Dog(); singer[1] = new Cat(); singer[2] = new Cow(); for(int i = 0; i < singer.length; i++) singer[i].voice(); } } Бұл листингте жазылған абстракты Pet класы орнына voice интерфейсі қолданылады. Интерфейстер таратылуының әдістері ашық болуы керек, public, себебі анықтау кезінде тек үлкейте аламыз, ал интерфейстер әдістері әрқашанда ашық. Интерфейстердің тұрақтыны анықтауы 16 - листингте көрсетілген. Листинг 16. Светофорды басқару жүйесі interface Lights{ int RED = 0; int YELLOW = 1; int GREEN = 2; int ERROR = -1; } class Timer implements Lights{ private int delay; private static int light = RED; Timer(int sec)(delay = 1000 * sec;} public int shift(){ int count = (light++) % 3; try{ switch(count){ case RED: Thread.sleep(delay); break; case YELLOW: Thread.sleep(delay/3); break; case GREEN: Thread.sleep(delay/2); break; } }catch(Exception e){return ERROR;} return count; } } class TrafficRegulator{ private static Timer t = new Timer(1); public static void main(String[] args){ for (int k = -0; k < 10; k++) switch(t.shift()){ case Lights.RED: System.out.println("Stop!"); break; case Lights.YELLOW: System.out.println("Wait!"); break; case Lights.GREEN: System.out.println("Go!"); break; case Lights.ERROR: System.err.println("Time Error"); break; default: System.err.println("Unknown light."); return; } } }Мұнда Lights интерфейсінде, барлық проект үшін тұрақтылар анықталған. Timer класы интерфейсті таратады және тұрақтыларды өзінікі сияқты қолданады. Shift әдісі светофорға түріне байланысты ауыстыру дыбысын береді. Кідіртуді Thread класының sleep() әдісі орындайды (миллисекунд).
Design patterns Бізге метеорологиялық станцияны автоматтандыру керек болсын. Бұнда әртүрлі датчиктер мәліметтері немесе, басқаша айтқанда, температураны, қысымды, сулы екенін, компьютерге цифрлық түрде түскен жел жылдамдығын тексерушілер керек. Ол өңделеді: аймақтар бойынша мәндері есептелінеді, көп күнгі тексерістен кейін ертеңгі күн ауа райы жағдайы жасалады, яғни аймақтың метеорологиялық суреті - модель құрылады. Содан кейін әртүрлі каналдарға беріледі: монитор экранына, желіге таратылады. Ол әртүрлі түрмен сандар колонкасы, графиктер, диаграммалар түрінде көрінеді. Бұндай жүйені автоматтандыруды проектілеу үш бөлімнен тұрады.
Бұл схема 80-ші жылдарда [XX ғасыр] Smalltalk тілінде шыққан және MVG (Model-View-Controller) атын алған. Класты жазу керек, ол тек бір ғана дана болады, бірақ осыны басқа кластар объектілері қолдану керек. Бұл үшін Singleton схемасын пайдаланамыз. Дәріс№ 5 Примитивті деректер түрлері және операторлармен жұмыс жасау. Булев (логикалық) түр. Логическалық операторлар. Бүтін түрлер, айнымалылар, тұрақтылар. Нақты түрлер және Math класы. Жинау (boxing) және шашу (unboxing). Санау түрлері (enum). Java тілінде берілгендердің түрлері екі топқа бөлінеді: қарапайым түрлер (primitive types) және сілтелінген түрлер (reference types). Сілтелінген түрлер массивтер (arrays), массалар (classes) және интерфейстер (interfaces) болып бөлінеді. Қарапайым 8 түр бар. Олар логикалық (кейде булев деп атайды) түрі boolean және сандық (numeric) болып бөлінеді. Сандық түрлерге бүтін integеr және нақты (floating-point) түрлері жатады. Бүтін түр бесеу, олар: byte , short , int , long , char . int түрінде берілген белгілерді кез келген жерде қолдануға болады. Мысалы арифметикалық есептеуде былай жазсақ 2 + 'ж' , онда екі санына 'ж' әріпінің Unicode '\u04i6' коды қосылады. Нәтижесінде ондық форматта 1048 санын береді. Ал 2 + "Ж" нәтижесі "2ж" тең болады. Нақты түрлер: float және double . Ескерту Java тілінде түрлер қатаң қолданы (strongly typed language). Сурет 2. Java тіліндегі деректер түрлері
|
||
|
Последнее изменение этой страницы: 2024-07-06; просмотров: 52; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.007 с.) |