Select your language:

Home Главная | Registration Регистрация | Login Вход

Menu Меню сайта
Statistics Статистика

Total online: Онлайн всего: 1
Guests: Гостей: 1
Members: Пользователей: 0
Study entry Форма входа
Логин:
Пароль:
Забыл пароль | Регистрация

Ссылки:

Объекты классов

тор класса Telefon для инициализации высоты и ширины дисплея. Метод

ДГР-Э ( \ X'TTQf"T'Q Фо1 £bfr\T\ TJTТТTlJfТТ(ТAT TTTmTTTQTTT. QlTlQUQ Г'ПVnQТ-ГГГГГ ТТПТТ\71ТАТТТТТ.ТТТ ЛА_

£ UVU \ / 1U1UVVU ■!> V* fclv^V^AJ. _UJ_>_I_ J__11W Aj\Lt' J. J. LJ L\-' ■ I l^i ^ ■ > J_' 4.1 _11_ 4.1 j W/LJ^UlLyi/L A.L\-' J 1_ Ji J_t' J. J__l l__l_>_l_l 1. J_' f

зультат в переменной s. После этого идет класс RunTeleion с методом main (), являющийся входной точкой для всей программы. Как только написанное приложение начнет работать, программа найдет метод main () и начнет выполнять содержимое программы.

В первой строке кода метода main{) происходит создание объекта класса Telefon со значениями ширины — 70 и высоты - 90 для экрана телефона. Вторая строка кода вызывает метод Area (), вычисляющий площадь дисплея. Метод Area () нельзя просто так вызвать в программе, он должен ссылаться на объект класса Telefon. Запись object .Агеа() как раз и указывает на то, что объект классаТе1е£опвызываетметодАгеа() - Если имеется несколько объектов класса Telefon, то есть несколько различных телефонов, тогда вызов метода Area () должен происходить для каждого из объектов класса Telefon, например:

objectl.AreaO ; object2.Area(}; object3.Area();

Для каждого из объектов класса Telefon будет вычисляться только своя площадь экрана. Давайте рассмотрим еще более сложную программу, создав несколько объектов класса Telefon, азаодно используем другую схемуработы метода Are а () воспользовавшись ключевым словом return.

class Telefon {

int w, h, s, n;

// конструктор Telefon (int a, int b) {

w = a; h = b;

}

/ / вычисляет площадь дисплея int Area ( )

return w*h;

} }

// class RunTelefon может находится в файле RunTelefon.j ava

сlas s RunTele fon {

public static void main (String [] args) {

// создадим объект Siemens

Telefon Siemens = new Telefon (101, 80);

// создадим объект nokia

Telefon nokia = new Telefon (128, 128);

// сохраним полученную площадь в s

s = Siemens,Area();

// сохраним полученную площадь в п

n = nokia.Area О ;

В реализации класса Telefon изменился только метод Area (), использовалось ключевое слово return. С его помощью результат умножения высоты на ■ширину, то есть результат работы всего метода возвращается для дальнейшего использования в коде программы. А в рабочем цикле программы в методе main (), этот результат сохраняется в двух переменных s и N для каждого из объектов класса Telefon. В данном случае площадь экрана для объекта Siemens равна 101x80=8080, а для объекта nokia 128x128=16384 и оба результата хранятся в различных переменных.

У вас наверно сразу возникает вопрос, а как увидеть получившийся результат? Действительно, просчитать значение не составляет труда, но хотелось бы увидеть полученный результат на дисплее. Для этого в Java существует встроенный метод println(). Чтобы увидеть на экране результат работы метода Are а (), нужно добавить вызов метода р rint In ().

s = Siemens .Area () ;

System, out .println ("Площадьэкрана Siemens" + s) ; n = nokia. Area ()

System.out-println ("Площадь экрана nokia" + n) ;

Метод print (), как уже говорилось, встроенный и принадлежит классу System, поэтому такая запись, out - это поток ввода, связывающий программу с консолью. Реально в программировании телефонов метод println (} используется, как правило, в диагностических целях, но как логическое завершение примера подойдет. С помощью кавычек ограничивается количество выводимого на экран текста, это необходимое условие. Запись, + s, применяет операцию конкатенации на основе оператора +, с помощью которого на экр ан выводится значение переменной s, то есть целочисленное значение равное площади экрана.

Резюмируя объектно-ориентированное программирование, можно с уверенностью заявить - это не сложно, не страшно, достаточно понятно и, что самое главное, просто в использовании. Создав необходимый класс, объявив объект и воспользовавшись методами созданного класса, вы получаете неограниченные возможности в программировании приложений. Но главное - большое количество необходимых классов и методов уже созданы за вас и собраны в специальные библиотеки, о которых мы поговорим в конце этой главы. Вам же остается только воспользоваться этими готовыми классами, создавая свои объекты этих классов.

}

1.6. Условные операторы

Когда мы создавали и использовали класс. RunTelefon, с методом main (), я говорил, что программа выполняет прописанный код строка за строкой и это действительно так. В небольших программах, таких, как мы создали, этого вполне достаточно, но в действительно огромных программах такой подход не логичен. Нельзя «прыгать» по программе, надо идти от строки к строке. Но если все же требуется перейти в программе к какому-то методу или месту программы, что тогда? Для этого в языке Java существуют условные операторы.

Рассмотрим ситуацию, которая более наглядно объяснит смысл операторов. ■ Допустим, вы дома, у вас нет хлеба и надо сбегать в булочную за углом. Прежде чем идти в булочную вы обязательно проверите, есть ли у вас деньги на покупку хлеба и только потом отправитесь в магазин за хлебом. Здесь имеет место предусловие наличия денег, выполнение которого приводит вас либо к походу за хлебом, либо к соседу за деньгами. В том случае, если не рассматривать это предусловие, то вы бы вышли и пошли в магазин, а уже придя, стали бы искать по карманам. Вот для этого и существуют условные операторы. В языке Java имеется несколько условных операторов. Первый из них: if/else - представляющий собой такую сдвоенную конструкцию. Синтаксический шаблон условного оператора if/else выглядит следующим образом:

if (условие) {

// действие №1

{

// действие №2 }

Переводя эту конструкцию на русский язык, можно сказать: если (if) некое условие верно, то перейти кдействию №1, аиначе (else) выполнить действие №2. Такая сдвоенная конструкция if/else может быть не обязательна, иногда достаточно лишь записи оператора if. Можно использовать вложенные операторы if/else, например:

if (условие 1 )

{ •

1 if (условие 2) {

Здесь проверяется первое условие и если оно верное, то происходит переход к следующему оператору if, если и это условие верное, то выполняются дей-

else

}

}

ствия и во втором и в первом условном операторе. Если же условие во втором операторе if не верно, то выполняются действия только первого оператора if. Условные операторы в программировании на Java используются постоянно и важно понимать их общий принцип работы.

1.7. Управляющий оператор

В языке Java существует управляющий оператор switch, который можно в принципе отнести к условным операторам. Он тоже основан на неких условиях, но предоставляет многовариантное ветвление для выбора пути заданных действий. Посмотрите на синтаксический шаблон этого оператора:

switch (условие)

case 1 :

// действие 1

break;

case 2 :

// действие 2

break;

case 20: // действие 20 break; default -.

/ / действие по умолчанию break;

Вся конструкция оператора switch основана на метках case, имеющих целочисленные значения. Когда условие, проверяющееся оператором switch совпадает с одним из значений метки case, то последующие за меткой действия будут выполнены. Если ни одно из условий не совпало с меткой case, то будут выполнены действия, следующие заметкой default. Оператор break, использующийся в конце всех действий для каждой метки очень важен. Когда условие совпадет с одной из меток и начнется выполнение указанных действий для этой метки, то выходной точкой служит оператор break. Если вы случайно забудете поставить оператор break, то ваша программа начнет выполнять следующую метку, сведя тем самым ваши усилия по выбору заданных действий на ноль. Никогда не забывайте ставить оператор break для каждой из меток!

1.8. Циклы

Вы задумывались когда-нибудь над тем, зачем вообще существуют программы? Если упростить и обобщить ответ на этот вопрос, то выяснится, что программы необходимы для автоматизации рабочего процесса, увеличения скорости вы-

Циклы

полняемой работы, избавления человека от тысяч монотонных действий и так далее. Сейчас мы как раз и остановимся на повторяющихся друг за другом Действиях.

Цикл - это последовательное выполнение повторяющихся действий на основе заданного предусловия. Например, нужно переставить сто ящиков из одного угла в другой. Если это каким-то образом записать на языке Java (к сожалению, переставить за вас ящики Java не сможет), то получится запись в сто строк наподобие этой:

1) взять ящик №1 и поставитв другой угол;

2) взять ящик №2 и поставить другой угол;

3) взять ящик №3 и поставить другой угол; ...

100) взять ящик №100 и поставить другой угол;

Сто строк кода - это уже много, но бывает и тысяча. Для этих целей, а именно - упрощения записи повторяющихся действий и служат циклы.

Существует три оператора представляющих циклы в языке Java - это while, do/white и f dr. Каждый из операторов необходим в своей ситуации, но все же чаще всего используется оператор for. Рассмотрим по порядку каждый из операторов.

1.8.1. Оператор while

Синтаксическая запись onepaTopawhi 1 е выглядит следующим образом:

whi1е (условие) {

// действия . }

Также имеет место выполнение определенного предусловия, но в отличие от оператора i f/el se, данная конструкция построена на циклах проверки условия. Когда программа доходит до оператора while, если предложенное условие истинно, происходит выполнение всех действий в блоке из фигурных скобок {...}. После выполнения этих действий, снова происходит очередная проверка условий после оператора while и если условие опять истинно, происходит повторное выполнение действий в блоке. Действия в блоке выполняются до тех пор, пока условие не станет ложным, тогда происходит выход из цикла while. В основном все циклы управляются при. помощи так называемых счетчиков. Рассмотрим не большой пример:

int i. = 0;

while (i 1Q) {

// действия

Сначала переменной i присваивается значение 0, далее происходит проверка условия i

int i = 10; while (i>0)

{

// действия

i, ■

1-;

}

Те же действия, но уже в обратную сторону. Но все-таки чаще всего используется оператор декремента.

В цикле while имеется возможность использования булевых переменных, содержащих значения falsermntrue. После оператора while происходит проверка предусловия, то можно воспользоваться булевой переменной, например:

boolean i = true; while (i)

{

// действия }

Переменная! истинна, ей присвоено значение true, поэтому происходитвы-полнение цикла whi 1 е. Единственное о чем необходимо позаботиться - это о выходе из такого цикла, поскольку переменная i истинна, то цикл while будет выполняться бесконечно и такие циклы носят названия бесконечных циклов.

Напоследок хочу еще обратить ваше внимание на оператор равно ==. Если записать цикл таким образом:

int i = О while (i — 5)

{■

// действия

i++;

}

То получится вполне работоспособный цикл, а вот если вы ошибетесь или по привычке воспользуетесь классическим вариантом оператора равно =, использующимся в математике, то у вас будет проблема в виде бесконечного цикла.

int i = О while (i = 5)

259

// действия

i + +,-

}

В предусловии происходит присвоение переменной i значения 5, а оттого, что это действие не запрещено, то произойдет выполнение блока цикла. В конце которого значение i увеличится на один, но в предусловии после оператора whi 1е, переменной i новь будет присвоено значение пять — это пример простого бесконечного цикла и как следствие, классическая ошибка, случающаяся с начинающими программистами.

1.8.2. Цикл do/while

Только что рассмотренный нами цикл while при определенных условиях может и Ht заработать. Например, если условие будет изначально ложно, то цикл не выполнится ни разу. Программа, дойдя до строки кода с оператором while, проверит условие и если оно будет равно false, проигнорирует весь цикл и перейдет к коду, следующему сразу за циклом whi 1 е. Но иногда возникает необходимость в выполнении цикла по крайней мере один раз. Для этих целей в Java существуетцикл do/whi 1 е. Запись и создания цикла do/whi 1 е осуществляется следующим образом:

do * * {

♦ /А действия }while (условие)

Между операторами do и while существует тело цикла, которое будет выполняться до тех пор, пока постусловие, следующее за оператором while, не будет ложно. Тело цикла выполнится, по меньшей мере, один раз, после чего будет произведена проверка условия. Цикл do/while используется не часто, но порой, оказывается незаменим.

\

1.8.3. Цикл for

Это самый распространенный цикл, используемый в программировании, основанный на управлении счетчиком. Смысл работы цикла i • г схож с рассмотренными выше циклами whil е и do/while. Посмотрите, как вьплядитцйкл for:

for (int i = 0; i {

// действие }

После ключевого слова for, следует условие выполнения цикла. Само же условие объединяет в себе три этапа по инициализации счетчика: i = 0, провер-

ка условия i a.' Далее программа переходит в тело цикла. По окончанию всех действий в цикле for, происходит обращение к третьему этапу цикла: i++, увеличивая счетчик на единицу. После чего сразу же происходит переход ко второму этапу - проверке переменной i

Так же как и в цикле whi 1 е возможно использ ование операторадекремента, например:

for (int i = 10; i > 0; i-) {

//действие

}

Используя любую выбранную конструкцию цикла, вы получаете очень мощный, инструмент программирования, избавляющий вас от написания большого количества строк кода.

1.9. Массивы

Счет часто в программировании встречается большое количество однотипных данных. Для того чтобы не объявлять, скажем, сто переменных, существуют массивы данных. Массив - это набор однотипных значений. В языке Java для создания массивов предусмотрена специальная запись:

int[]M;

С помощью такой записи создается пустая переменная, содержащая определенный массив данных. Объявление массива происходит так же как и объявление объекта класса. Необходимо воспользоваться ключевым словом new чтобы выделить память массиву и явно инициализировать его с количеством элементов. Например:

int[ ]М = new int [20] ;

В этой строке кода был создан целочисленный массив из двадцати элементов. К каждому из элементов массива можно обратиться при помощи индекса М [п], для сохранения либо изъятия значения заданного элемента.

М[0] = 3; М[1] = 5; М[2] =20;

Индекс любого созданного массива всегда начинается с 0, об этом нужно помнить. Чтобы инициализировать массив данных, например из пятидесяти эле-

ментов, должно потребоваться пятьдесят строк кода, но в нашем распоряжении имеется цикл for, прекрасно справляющийся с этой задачей.

int[]M = new int[50];

for (int i = 0; i

M[i] = i;

}

В этом примере происходит инициализация каждого элемента массива от О до 49, соответственно, такими же значениями. Можно инициализировать массив другим способом, без ключевого слова new.

int[]M = {0Р 1, 2, 3, 4}

В этом случае каждый элемент массива инициализируется пятью числами от О до 4. Все вышеперечисленные примеры создавали простой одномерный массив данных, но иногда приходится представлять данные в виде парных значений. Например, координаты по X и по Y в системе координат. Для этого в Java существуют многомерные массивы данных.

int stroka = 10;

int stolbec = 10;

int[][]M = new[stroka][stolbec];

Многомерные массивы представлены в виде таблицы. Чтобы получить доступ к заданному элементу массива, нужно указать в- какой строке и в каком столбце находится элемент массива. Точно так же в высшей математике происходит работа с матрицами. Многомерный массив данных можно инициализировать с помощью фигурных скобок:

int[] []М = {

{5? 3, 8), {7, 12, 16}, {9, 12, 14}

}

Инициализация массива данных при помощи цикла f огнемного сложнее, но очень эффективная и используется постоянно. Например, у вас есть большой массив данных, который требуется обнулить. Вот как будет выглядеть запись для этого массива данных:

int[] []М = new int[100] [50] ;

for (int i = 0; i

Многомерные массивы позволяют хранить большое количество данных при минимуме записанного кода, сохраняя при этом его понятность и читабельность.

«■■■III»

1.10. Наследование

В языке Java имеетсятермин наследование. Это очень мощный инструмент, без которого не обходится ни одна профессионально написанная программа. Каждый из вас, читающий эти строки обязательно хочет стать профессиональным программистом, поэтому стоит подробно рассмотреть механизм наследования.

Наследование - это механизм, позволяющий наследовать от вышестоящего в иерархии класса все его возможности. Что значит класс, стоящий выше в иерархии? В языке Java существует термин суперкласс и подкласс. Например, имеется некий класс Siemens:

class Siemens {

int -w, h; . int Area С >

{

return w*h;

Чтобы создатьподкласс класса Siemens, не обходимо воспользоватьсяклю-чевым словом extends:

class SiemensM55 extends Siemens

. Класс SiemensM55 является подклассом класса Siemens, в свою очередь класс Siemens является Суперклассом для класса SiemensM55. Класс Sie-mensM5S наследует все члены своего суперкласса Siemens и имеет возможность доступа к ним при одном условии: все члены суперкласса S i emen s г к которым вы впоследствии захотите получить доступ, должны быть объявлены со спецификатором public. Поскольку мы не определяли вообгце никакого спецификатора, а это по умолчанию равно ключевому слову public, то подкласс SiemensM55, будет иметь доступ ко всем членам своего суперкласса Siemens. Вы можете воспользоваться методом Area () и переменными w и h. Вам не нужно переопределять переменные и метод суперкласса Siemens, но вы можете добавлять дополнительные переменные и методыдля подкласса SiemensM55, реализующие свои специфические действиядля этого подкласса.

Давайте рассмотрим небольшой пример по созданию суперкласса и подкласса. Как вы уже, наверное, догадались, я воспользовался маркой телефона Siemens М55 для названия подкласса. Чтобы не обижать других производителей телефонов, рассмотрим пример для Nokia.

// суперкласс Nokia class Nokia ■

{

// члены класса }

Для перехода к следующей странице статьи перейдите по вы подающему меню
Basket Корзина
Your basket is empty Ваша корзина пуста
'); $(el).append(g); $(g).show(); } _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'clear'}}); return false; } function removeBasket(id){ if(lock_buttons) return false; else lock_buttons = 1; $('#basket-item-'+id+' .sb-func').removeClass('remove').addClass('myWinLoadS').attr('title',''); _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'del', 'id':id}}); return false; } function add2Basket(id,pref){ if(lock_buttons) return false; else lock_buttons = 1; var opt = new Array(); $('#b'+pref+'-'+id+'-basket').attr('disabled','disabled'); $('#'+pref+'-'+id+'-basket').removeClass('done').removeClass('err').removeClass('add').addClass('wait').attr('title',''); $('#'+pref+'-'+id+'-options').find('input:checked, select').each(function(){ opt.push(this.id.split('-')[3]+'-'+this.value);}); _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').attr('value')}}); return false; } function buyNow(id,pref){ if(lock_buttons) return false; else lock_buttons = 1; var opt = new Array(); $('#b'+pref+'-'+id+'-buynow').attr('disabled','disabled'); $('#'+pref+'-'+id+'-buynow').removeClass('done').removeClass('err').removeClass('now').addClass('wait').attr('title',''); $('#'+pref+'-'+id+'-options').find('input:checked, select').each(function(){ opt.push(this.id.split('-')[3]+'-'+this.value);}); _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').attr('value'), 'now':1}}); return false; } //-->
Search Поиск
Calendar Календарь
«  March Март 2011  »
Mon Пн Tues Вт Wed Ср Thurs Чт Fri Пт Sat Сб Sun Вс
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archive records Архив записей

Ссылки:

Rambler's Top100 Все для дома - Бытовая техника, опубликовать информацию о фирме
QLE 88x31

раскрутка сайта в интернете Рейтинг сайтов Товары / Услуги

Copyright MyCorp © 2011 Создать сайт бесплатно

Copyright MyCorp © 2011