Select your language:

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

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

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

Ссылки:

кой послед овательности данных. То есть скобкиуказываютна принадлежность к методу или классу. На каждую открьшаюшую скобку обязательно должна быть закрывающая скобка. Чтобы не запутаться их обычно ставят на одном уровне в коде. А теперь давайте запишем тот же самый класс только уже на языке Java.

class Telefon {

и void on[) {

/ / тело метода on [ ) }

void off [ )

// тело метода off О

• }

}

Ключевое слово class в языке Java объявляет класс, далее идет название самого класса. В нашем случае это Telefon. Сразу пару слов касательно регистра записи. Почти во всех языках программирования важно сохранять запись названий в том регистре, в котором она была сделана. Если вы написали Telefon, то уже такое написание как telefon или TELefoN выдаст ошибку при компиляции. Как написали первоначально, так и надо писать дальше.

Зарезервированные или ключевые слова записываются в своем определенном регистре, и вы не можете их использовать, давая их названия методам, классам, объектам и так далее.

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

В теле класса Telefon имеются два метода: оп(. - включающий телефон и метод off () - вьшлючающий телефон. Оба метода имеют свои тела и в них по идее должен быть какой-то программный код, описывающий необходимые действия обоих методов. Для нас сейчас не важно как происходит реализация этих методов, первостепенное - это синтаксис языка Java.

Оба метода имеют круглые скобки on (), внутри которых могут быть записаны параметры, например on(int time) или on (int time, int timel) .Спомо-щью параметров происходит своего рода связь методов с внешним миром. Говорят, что метод on (int time) принимает параметр time. Для чего это нужно? Например, вы хотите, чтобы телефон включился в определенное время. Тогда целочисленное значение в параметре t ime будет передано в тело метода и на основе полученных данных произойдет включение телефона. Если скобки пусты, то метод не принимает никаких параметров.

1.3. /. Комментарии

В классе Telefon в телах обоих методов имеется запись после двух слешей: //. Такая запись обозначает комментарии, которые будут игнорироваться компиля-

Основы языка Java

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

Комментарии в Java могут быть трех видов, это: //, /*...* / и / **...*/. Комментарии, записанные с помощь оператора // должны располагаться в одной строке:

// Одна строка

I ! I Ошибка 1 На вторую строку переносить нельзя 1 // Первая строка // Вторая строка // ...

// Последняя строка

Комментарии, использующие оператор /*...* / могут находится на нескольких строках. В начале вашего комментария поставьте / *, а в конце, когда закончите комментировать код, поставьте оператор * /.

Последний вид комментария /**...*/ используется при документировании кода и также может располагаться на любом количестве строк.

1.3.2. Типы данных Java

Чтобы задать произвольное значение, в Java существуют типы данных. Как уже говорилось, Java - языктипиризированный, поэтому каждое значение имеет свой тип. В классе Telefon мы создали два метода. Оба метода не имели параметров, но когда приводился пример метода on (int time) с параметром time, говорилось о передаче значения в метод. Данное значение указывало на время, с помощью которого якобы должен включиться телефон. Спецификатор int как раз и определяет тип значения time. В Java 2 ME шесть типов данных. Посмотрите на табл. 1.1.

Таблица 1.1.

Тип_Назначение_ Размер в байтах \

byte маленькое целое ' 1

short короткое целое 2

int целое 4

long длинное целое 8

char символ. 2

boolean логический тип

Java 2 ME в отличие от Java 2 SE не поддерживает числа с дробной частью в связи с тем, что мобильные устройства имеют небольшие по объему ресурсы.

□ byte — маленькое целочисленное значение от -128 до 128;

□ short - короткое целое значение в диапазоне от -32768 до 32767;

□ int - содержит любое целочисленное значение от -2147483648 до

2147483647;

Q long - очень большое целочисленное значение, от -922337203685475808 до 9223372036854775807;

□ char - это символьная константа в формате Unicode. Диапазон данного формата от 0 до 65536, что равно 256 символам. Любой символ этого типа должен записываться в одинарных кавычках: 'G'; ■

□ boolean - логический тип, имеетвсего два значения: false - ложь и true -истина. Этот тип часто используется в циклах о которых чуть позже.. Смысл очень прост - если у вас в кармане есть деньги, предположительно это true, а если нет то false. Таким образом, если деньги имеются - идем в магазин за хлебом или пивом (нужное подчеркнуть), если нет денег -остаемся дома. То есть определяется логическая величина, способствующая выбору дальнейших действий вашей программы.

Чтобы объявить какое-то необходимое значение используется запись:

i.nt time;

long BigTime;

char word;

Оператор точка с запятой необходим после таких записей в конце строки. Можно совместить несколько одинаковых по типу объявлений через запятую:

mt time, timel, time2;

Теперь давайте, усовершенствуем наш класс Telefon, добавив в него несколько значений. Методы on ■) и off i нам больше не нужны, добавим методы поинтересней.

class Telefon {

//S - площадь дисплея //w - высота дисплея / /п - ширина дисплея int w, h, S;

//метод вычисляющий площадь дисплея

vordArea ()

{

S = w*h;

} }

Итак, мы имеем три переменные S, wnh, отвечающие, соответственно, за площадь, высоту и ширину дисплея в пикселях. Метод Area I) вычисляет площадь экрана телефона в пикселях. Операция бесполезная, но очень показательная и простая в понимании. Тело метода Area (] обрело себя и имеет вид S = w*h. Мы просто перемножаем высоту на ширину и присваиваем или как еще говорят, сохраняем результат в переменной S. Сейчас мы подошли вплотную к операторам языкатауа, с помощью которых можно совершать всевозможные операции.

1.3.3. Операторы

Операторы языка Java имеют различные назначения. Существуют арифметические операторы, операторы инкремента идекре мента, логические операторы и операторы отношения.

Арифметические операторы очень просты и аналогичны операторам умножения «*», деления.«/», сложения и вычитания •*-» используемые в математике. Существует оператор деления по модулю «%» и слегка запутанная на первый взгляд ситуация с оператором равно Оператор равно в языках программирования называется оператором присваивания:

int х = 3

Здесь вы переменной х присваиваете значение 3. А оператор «равно» в языках программирования соответствует записи двух подряд операторов «равно»: ♦==». Рассмотрим на примере, что могут делать различные арифметические операторы.

int х, у, z;

х = 5;

У = 3;

z = 0;

Z = X + у;

В данном случае z будет иметь значение уже суммы х и у, то есть 8. х = z*x,-

Переменная х имела значение 5, но после такой записи предыдущее значение теряется и записывается произведение z *х (8*5), что равно 40. Теперь, если мы продолжим дальше наш код, то переменные будут иметь такой вид:

// х = 40; // У = 3; // . z = 8 ,-

Это обязательно необходимо иметь в виду.

Что касается оператора деления, то поскольку Java 2 ME не поддерживает дробных чисел, то результат такого деления:

X = Z/y;

что равносильно записи:

х = 8/3;

будет равен 2. Дробная часть просто отбрасывается, то же самое происходит при использовании оператор деления по модулю

Операторы сложения и вычитания имеют те же назначения что и в математике. Отрицательные числа также родственны.

Операторы отношения позволяют проверить равенство обеих частей выражения. Имеется оператор равенства «==», операторы меньше •*», меньше или равно «=►, атак же оператор отрицания ■* ! =».

9 == 10;

Это выражение не верно, девять не равно десяти, поэтому его значение этого выражения равно false.

9 != 10; .

Здесь же, наоборот, оператор отрицания указывает на неравенство выражения, и значение будет равно true.

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

Операторы декремента * —» и инкремента весьма специфичны, но

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

int х = 5 ; Х++;

// Здесь х уже равен б

Операция декремента уменьшает переменную на единицу.

int х = S / х-;

//х равен 4

Операции инкремента и декремента могут быть пост и префиксными:

int х = 5; int у = 0; У = х++;

В последней строке кода сначала значение х присваивается у, это значение 5, и только потом переменная х увеличивается на еденицу. Получается что:

х = б, у = 5

Префиксный инкремент имеет вид:

int х = 3 ; int у = 0; ■ У = ++х;

И в этом случае, сначала переменная х увеличивается на один, а потом присваивает уже увеличенное значение у.

Основы языка Jcvo

Существует два логических оператора. Оператор «И», обозначающийся значками «&&» и оператор «ИЛИ», обозначенный в виде двух прямых слешей «||». Н апример, имеется выражение:

А*Б && В*С;

В том случае, если только обе части выражения истинны, значение выражения считается истинным. Если одна из частей неверна, то значение всего выражения будет ложным.

В противовес оператору имеется оператор « I I *, не напрасно имеющий название «ИЛИ».

А*Е | | В*С;

Если любая из частей выражения истинна, то и все выражение считается истинным. Оба оператора можно комбинировать в одном выражении, например:

А*В | I В*С && C*D | I В*А;

С помощью этого выражения я вас ввел, как мне кажется, в затруднение, неправда ли? Дело в том, что в Java, как и в математике существует приоритет или так называемая иерархия операторов, с помощью которой определяется какой из операторов главнее, а, следовательно, и проверяется первым. Рассмотрим с помощью списка приоритет всех операторов языка Java:

[Ь ., О ,

• § ~, + + , - -, + (унарный) , - (унарный) , new, *, /, %, + .

~ -I. '•"/ л, I ,

&&, II ,

= , +=, -=.. *=, /=, %=, \=! «=.- »=.- >»=.

Не со всеми операторами вы еще знакомы, поэтому пугаться не стоит. Ассоциативность операторов в списке следует слева на право и сверху вниз. То есть все, что находится левее и выше - старше по званию и главнее.

1.3.4. Метод main

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

классов может быть любое количество. Каждый из классов принято хранить в своем отдельном файле с расширением *.java. Например, Telefon.java. Все методы находящиеся в классе Telefon, которые вы опишете для данного класса, обязаны производить определенные действия с объектом этого класса, иначе, зачем нужны эти методы. Реализация методов как уже говорилось, происходит непосредственно в создаваемом классе. Но возникает вопрос, где и как, происходит вызов необходимых по ситуации методов или создание объектов используемого класса. В языке Java для этих целей суще ствует метод main С), который подобно строительной площадке собирает на своей платформе по частям объекты, методы, строя при этом функциональность всей программы.

public class. RunTelefon ■ {

public static void main( String [] args) {

// Работа программы

Пока не обращайте внимания на ключевые слова public nstatic-o них чуть позже. Создав класс RunTelef on и определив в его теле метод main {) мы теперь имеем возможность пользоваться классом Telefon и его не особо богатой функциональностью. Объединив эти два класса в один файл, либо записав каждый по отдельности, вы получите работоспособную программу. Класс Telefon содержит основные данные и методы, а класс RunTelefon берет на себя роль мотора. Внутри класса RunTelef оппроисходит создание объектов класса, в данном случае класса Telefon и вызовы соответствующих методов этого класса. Например:

class Telefon {

// переменные int w, h, s; .// метод void Area С) {

S = w*h; }

}

■ class RunTelefon

public static void main (String args [ ] ) {

/* создание объектов и вызовы метода Area О */ }

}

Основы языка Java

Поскольку вы пока не умеете создавать объекты классов и вызывать методы, -тело класса RunTelefon пустое. Прежде чем идти дальше, необходимо познакомиться с ключевыми словами public, private и protected, а так же научиться создавать конструкторы классов.

1.3.5. Закрытые и открытые члены классов

Ключевое слово public, объявленное перед методом main ()„ показывает на то, что метод main () считается открытым или в любом классе метод main

По умолчанию, если вы не используете ключевые слова, Java назначает всем членам класса спецификатор public. Метод main (), всегда должен вызываться с ключевым словом public, чтобы для всех классов программы метод main () был доступен. Как только программа начнет работать, первым делом она ищет метод main () и постепенно, шаг за шагом, а точнее, строка за строкой, выполняет все предписанные действия в методе main О .

1.4. Конструктор

Каждый класс обязан содержать конструктор. Конструктор - это тот же самый метод, но имеющий название класса, например:

class Telefon {

Telefon(); // конструктор int w, h, s; // переменные void Area (); // метод

Конструктор позволяет инициализировать создаваемые объекты данного класса с заданными значениями. Каждый класс имеет конструктор, и если вы явно не записали строку кода (как в нашем случае Telefon()), Java автоматически создаст его за вас, такой конструктор носит название конструктора по умолчанию.

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

class Telefon {

int w, h, s;

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

w = a; h = b;

>

void Area ( ) / / площадь телефона • {

S = w*h;

} }

При создании объекта (об этом чуть позже), вы можете указать необходимые значения для параметров аиЬ, например :а = 70,b = 100. Эти заданные числа автоматически присвоятся переменным w и h при создании объекта класса Telefon. Тем самым произойдет инициализация объекта с необходимыми значениями.

Количество конструкторов в классе ограничивается только вашей фантазией и здравым смыслом. Например, можно создать два конструктора классу Telefon:

Telefon (int a, int b) ; Telefon (char a, char b) ;

В этом случае при создании объекта по переданным параметрам конструктору класса, компилятор выберет сам необходимый конструктор и создаст заданный объект.

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

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

Telefon object;

Точно так же как создается переменная int а, создается и объект класса. Такая запись создаст пустой объект класса, инициализирующийся значением null. Конечно, это еще не полноценный объект, а всего лишь ссылка на данный класс. Чтобы создать полноценный класс, нужно воспользоваться ключевым словом new, с помощью которого происходит выделение области памяти для содержания создаваемого объекта.

Telefon object;

object = new Telefon();

Основы языка Java

или

Telefon object = new Telefon();

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

Теперь давайте рассмотрим пример посложнее. Создадим класс с конструктором для инициализации высоты и ширины дисплея и в методе main () создадим объект класса Telefon, вычислив при этом площадь экрана абстрактного телефона.

class Telefon {

int w, h, s;

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

t

w = a; h = Ь;

// метод, вычисляющий площадь экрана void Area ( ) {

S = w*h;

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

public static void main (String args[]) {

// создаем объект класса Telefon

Telefon object = new Telefon (70, 90),// вычисляем площадь дисплея

object.AreaO ;

}

}

Разберем весь пример более подробно. Итак, мы создаем класс Telefon с тремя переменными: w, пи s, в которых впоследствии будут храниться, соответственно, ширина, высота и площадь дисплея телефона. Далее создаем конструк-

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