АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Object классы

Читайте также:
  1. Biglnteger Классы
  2. Object pascal тілі
  3. Predicative Constructions that Function as Objects
  4. Types of Objects
  5. Абстрактные классы и чистые виртуальные функции. Виртуальные деструкторы. Дружественные функции. Дружественные классы.
  6. В России есть и свои таланты по данному направлению, которые наиболее узнаваемы и мастер-классы которых ждут с нетерпением, такие, как
  7. Классы fstream, ofstream, ifstream.
  8. Классы istream, ostream, iostream и _withassign. Предопределенные потоковые объекты. Флаги статуса ошибок потоков, функции для флагов ошибок.
  9. Классы безопасности
  10. Классы бинарных соединений от типа неметалла
  11. Классы зон взрывопожароопасности электрооборудования

Pet класс сипаттамасы кезінде voice() әдісінде ешқандай пайдалы алгоритм бере алмаймыз, өйткені барлық аңдарда әртүрлі дыбыстарда болғандықтан. Мұндай жағдайда, әдісті бос әріппен және жақша ішіне үтір арқылы параметрлер типін жазамыз. Бұл әдіс абстрактілі (abstract) болады, ол үшін компиляторға (abstract) модификаторын көрсету керек.

Егер класста тым болмаса, бір абстрактілі класс болса, олардың көшірмесін құру, ал типті оларды қолдану мүмкін емес. Бұл класс абстрактілі (abstract) болады, ол үшін компиляторға (abstract) модификаторын көрсету керек. Абстрактілі класстарды қалай қолдану керек? Абстрактілі әдістер қайта анықталған ішкі классты абстрактілі класстарға не үшін керек?

Қажетті класстарда толық анықталған әдістермен оларды абстрактілі класстарға мұра етпей жазған жақсы емес пе? Жауап беру үшін тағы 2.2 листингті қарастырамыз.

singer[] массив элементтері Dog, Cat, cow ішкі класстарына сілтеме жасайды, бірақ бәрібір бұл айнымалылар типі Pet және олар тек Pet супер класында сипатталатын жолдар мен әдістерге сілтеме жасайды. Ішкі класстағы қосымша жолдар олар үшін қол жетерліксіз.

 

Назар аударыңыз.

Мысалы: Dog классының жолында singer[0] классын жазып көріңіз. Бірақ компилятор мұндай сілтемені ұйымдастыра алмайтыны туралы айтады. Сондықтан бірнеше ішкі кластарда ұйымдастырылатын әдістерді, супер классқа енгізу керек, ал егер онда оны ұйымдастыруға болмайтын болса, онда абстрактілі класстар, класстар иерархиясының төбесінде топтастырылады.

Арасына ештеңке жазбай {} жақша қойып, бос әдісті ұйымдастыруға болады, мысалы: void voice(){} толық бағалы әдіс алынады. Бірақ, бұл класстың құрылымын шатастыратын жасанды шешім иерархияны нақты класспен біріктіруге болады.

2. Практикалық бөлім

2.1 Eclipse ортасымен есеп шығару

 

Eclipse – ашық шығыс кодын өңдеушілердің бірлестігі. Жобалары өңделетін ашық платформаны құрастыру мақсатында жасалған. Eclipse қоры (Eclipse Foundation) – бұл комерциялық емес қолдаушылардың бірлестігі, олар ашық шығыс кодын өңдеушілердің бірлестігін және бір-бірін толтыратын өнімдермен сервистердің “экосистемасын” ары қарай өркендетуге ықпал етеді.

Eclipse жобасы IBM коспаниясында 2001 жылдың қарашасында жасалған. Eclipse қоры тәуелсіз комерциялық емес мекеме ретінде 2004 жылдың қаңтарында жасалды. Қазіргі уақытта Eclipse бірлестігі бірнеше жеке тұлғадан және мекемеден тұрады және олар программалық қамтамасыздандыру индустриясын ұсынады.

Eclipse қоры Eclipse- тің ағымдағы өңдеулерін бағыттайды және бақылайды. Қор бірлестікке қызмет етеді, бірақ коммитер деп аталатын ашық шығыс кодын өңдеушілер, яғни Eclipse жобасымен жұмыс істейтіндер, осы штатқа енбейді.

Енді, Eclipse-тің теоретикалық, тарихтық және саясаттық аспектілерінен кейін өнімнің өзін қарастырайық.

 

   

 

Eclipse жұмыс аймағы

 

Eclipse-ті іске қосқаннан кейін жұмыс аймағында көрініс беті ашылады. (сурет 2.1). Eclipse-ті қолданушы көру бетіне көшу үшін бірнеше мүмкіндіктері бар. Әрі қарай функциялары туралы ақпарат алуға, кейбір мысалдарын көріп танысуға болады (сурет 2.1).

 

 

Сурет 2.1. Eclipse ортасының көрінісі

 

Сурет 2.2. Eclipse көру беті

 

Eclipse-тің жұмыс аймағы бірнеше панелден тұрады. Ол көрініс деп аталады. Мысалы, навигациялық немесе схемалық көрініс. Мұндай көрініс жинағы перспективалық деп аталады. Көп таралған перспективаплардың бірі-ресурстық перспектива, оны базалы жинақ көрінісі ретінде- проектіні басқару және көру, сонымен қатар файлдық проектіні редактілеу үшін қайталанады.

Eclipse-тің көмегімен біз Java да жаңа проект құрамыз. Ол үшін: File > New > Java Project-ті таңдап (Файл > Новый > Проект Java) Elvira - енгіземіз содан соң Finish басамыз.

"Java" да экранды өзімізге ұнағандай өзгертуге болады.Ол үшін Window > Open Perspective > Java (Окно > Открыть Перспективу > Java) қадамдарын немесе жаңа терезе ашып: Window > New Window (Окно > Новое Окно) және жаңа перспектива таңдау керек.

 

 

   

 

Java Development Tools (JDT)

 

Java ортасында қолдану үшін қосымшаны орындаймыз. Java перспективасында орналасып папкадағы оң жақ батырманы басу арқылы

"StackExample" (src) жобасын және New > Class (Новый > Класс) таңдаймыз, 2.4-ші суретте көрсетілгендей. Көрсетілген диалогтық терезеде класс аты ретінде StackExample енгіземіз. Төмендегі жазбада Which method stubs would you like to create? (Какие заглушки методов вы желаете создать?) белгілейміз public static void main (String[] args) және Finish шертеміз.

 

 

Сурет 2.3 Java перспективасындағы жаңа проект құрылуы.

 

Сурет 2.4 Java перспективасындағы жаңа класс құрылуы.

 

 

Eclipse-те бағдарламалық есеп шығару

 

Төменде стек жасайтын программаның мысалы көрсетілген, оған бірнеше Integer объект типін енгізеді, содан кейін шығарады. Stack — Vector классының ішкі классы, қарапайым механизм типін "соңғысы кірді – біріншісі шықты" (" последний вошел - первый вышел") жасайды (LIFO).

Бағдарлама 1.Stack — Vector классының ішкі классы

Программа листингі:

 

import java.util.Stack;

import java.util.EmptyStackException;

class StackExample

{

static void showpush(Stack st, int a)

{

st.push( new Integer(a));

System. out. println("push(" + a + ")");

System. out. println("stack: " + st);

}

static void showpop(Stack st)

{

System. out. print("pop -> ");

Integer a = (Integer) st.pop();

System. out. println(a);

System. out. println("stack: " + st);

}

public static void main(String args[])

{

Stack st = new Stack ();

System. out. println("stack: " + st);

showpush (st, 42);

showpush (st, 66);

showpush (st, 99);

showpop (st);

showpop (st);

showpop (st);

Try

{

showpop (st);

}

catch (EmptyStackException e)

{

System. out. println("empty stack");

}

}

}

 

Есепті программаға салып тексереміз.

Java тілінде жалпы көрінісі:

 

 

Шыққан нәтиже:

 

stack: []

push(42)

stack: [42]

push(66)

stack: [42, 66]

push(99)

stack: [42, 66, 99]

pop -> 99

stack: [42, 66]

pop -> 66

stack: [42]

pop -> 42

stack: []

pop -> empty stack

 

Бағдарлама 2.

Программа листингі:

 

public class NumberTest {

public static void main(String[] args){

 

int i = 2;

 

short sh = 3;

 

double d = 4;

 

Integer kl = new Integer(55);

 

Integer k2 = new Integer(100);

 

Double dl = new Double(3.14);

 

try {

 

i = Integer. parseInt (args[2]);

 

sh = Short. parseShort (args[3]);

 

d = Double. parseDouble (args[4]);

 

dl = new Double(args[1]);

 

kl = new Integer(args[0]);

 

} catch (Exception e){}

 

double x = 1.0/0.0;

 

System. out. println("i = " + i);

 

System. out. println("sh - " + sh);

 

System. out. println("d. = " + d);

 

System. out. println("kl.intValue() = " + kl.intValue());

 

System. out. println("dl.intValue() = " + dl.intValue());

 

System. out. println("kl > k2? " + kl.compareTo(k2));

 

System. out. println ("x = " + x);

 

System. out. println("x isNaN? " + Double. isNaN (x));

 

System. out. println("x islnfinite? " + Double. isInfinite (x));

 

System. out. println("x == Infinity? " +

 

(x == Double. POSITIVE_INFINITY));

 

System. out. println("d = " + Double. doubleToLongBits (d));

 

System. out. println("i = " + Integer. toBinaryString (i));

 

System. out. println("i = " + Integer. toHexString (i));

 

System. out. println("i = " + Integer. toOctalString (i)); } }

 

Есепті программаға салып тексереміз.

Java тілінде жалпы көрінісі:

 

 

 

Шыққан нәтиже:

 

i = 2

sh - 3

d. = 4.0

kl.intValue() = 55

dl.intValue() = 3

kl > k2? -1

x = Infinity

x isNaN? false

x islnfinite? true

x == Infinity? true

d = 4616189618054758400

i = 10

i = 2

i = 2

 

 

Бағдарлама 3. Қатарлармен жұмыс

 

public class strings {

public static String compare(String s1, String s2){

String s3="";

if (s1.equals(s2)){

s3="Строки \""+s1+"\" и \""+s2+"\" равны";

} else {

s3="Строки \""+s1+"\" и \""+s2+"\" не равны";

}

return s3;

}

public static String add(String s1, String s2){

System. out. print ("\nРезультат сложения строк \""+s1+"\"и"+"\""+s2+"\": ");

s1+=" "+s2;

return s1;

}

public static void main(String[] args) {

System. out. println(compare ("АБВГ","АБВ"));

System. out. print(compare ("АБВ","АБВ"));

System. out. print(add ("Hello","World"));

}

}

 

 

Қосымшада екі тәсіл бар, олар екі қатарда бір – бірімен салыстырады және байланыстырады. Бірінші тәсіл compare() екі қатарды салыстырады және нәтижесін консольға шығарды.Салыстыру (04) қатарындағы equals() функциясы арқылы жасалады. Егер қатарлар сәйкес келсе, онда бұл функция true мағынасын қайтарады. Егер қатарлар тең болса, онда (05) қатарына хабарлама келеді немесе (07) –ге. Конструкция да s3 (05, 07) қатарларында Escape - символы қолданылған.

Екінші тәсілде қатарлар арасында қарапайым байланыс «+» (13) операциясы арқылы жасалады.

 

Есепті программаға салып тексереміз.

Java тілінде жалпы көрінісі:

 

 

 

 

Шыққан нәтиже:

 

Строки "АБВГ" и "АБВ" не равны

Строки "АБВ" и "АБВ" равны

Результат сложения строк "Hello"и"World": Hello World

 

 

Қортынды

 

Сонымен қорыта келе, класс сипаттамасы class сөзімен басталып соңынан класс атауы жазылады. Code Conventions келісімі бойынша класстың атауын бас әріппен жазу ұсынылған. Class сөзінің алдында класс модификаторын жазуға болады. Бұл сөздердің бірі public, abstract, final. Күрделі класстар атауының алдында, сонымен қатар модификаторлар protecter, private, static қоюға болады. Модификаторларды тілді оқып үйрену барысында енгізіледі.

Класс денесі кез-келген ретте жазылатын жолдар, күрделі класстар, интерфейстер жақшаға алынады. Жолдарды сипаттау кезінде оның типі, сосын бос орын арқылы атауы және белгісінен кейін тұрақты өрнек арқылы бастапқы мәнін жазуға болады.

Алғаш машиналық кодта жазылған ең қарапайым программа мүлде түсініксіз жүздеген қатардан тұрды. Программалауды жеңілдету және жылдамдығын арттыру үшін жоғарғы деңгейдегі тілдер FORTRAN, Algol, Java т.б ойлап табылды. Жоғарғы деңгейде жазылған программалар түсінікті және қысқа болады. Бірақ заман күрделі есептерді шығаруды қажетт етті, программаның мөлшері өссе түсті.

 

 

Пайдаланған әдебиеттер:

 

1. Барнет Э. Eclipse IDE Карманный справочник: Пер. с англ. —

М.:КУДИЦ-ОБРАЗ, 2006. — 160 с.

2. Хабибуллин И. Ш.Самоучитель Java 2. — СПб.: БХВ-Петербург,

2007. — 720 с.

3. Шилдт Г.Полный справочник по Java. — М.: Вильямс, 2007. —

1040 с.

4. Ноутон П., Шилдт Г. Java 2. — CПб:, BНV-Санкт-Петербург,

2008. — 1072 с.

5. Монахов В.В.Материалы курсов, разработанных в рамках про-

граммы Sun Microsystems Teaching Grants в 2006 году — « Язык про-

граммирования Java». СПбГУ, 2006.

6. Материалы интернет-сайта http://ru.sun.com

7. Фишер Т.Java. Карманный справочник. — М.: Вильямс, 2008. —

224 с.

8. Хемраджани А. Гибкая разработка приложений на Java с помо-

щью Spring, Hibernate и Eclipse. — М.: Вильямс, 2008. — 352 с.

9. Хабибуллин И. Ш. Самоучитель Java 2. — СПб.: БХВ-Петербург,

2007. — 720 с.

10. Шилдт Г. Swing. Руководство для начинающих. — М.: Ви-

льямс, 2007. — 704 с.

11. Барнет Э. Eclipse IDE Карманный справочник: Пер. с англ. —

М.:КУДИЦ-ОБРАЗ, 2006. — 160 с.77

 


1 | 2 | 3 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.026 сек.)