SlideShare a Scribd company logo
1 of 24
Управляющие конструкции и
синтаксис языка Java
              Кленов Дмитрий, СГТУ, 24.09.2012
Общий вид класса
 class Имя_класса

     [extends Родительский_класс]

     [implements Интерфейс_1, ... , Интерфейс_n] {

      <объявление полей>

      <объявление методов>

      <объявление конструкторов>
 }
Общий вид класса
    В java разрешены любые неспециальные символы, в том числе из национальных
     алфавитов.

    Количество пробелов и переводов строк не является существенным.

    Язык java чувствителен к регистру символов.

    Имя класса принято начинать с заглавной буквы.

    Имя класса должно совпадать с именем .java файла, в котором этот класс объявлен.

    Имена классов, методов, конструкторов и переменных могут содержать буквы (в том
     числе из национальных алфавитов), цифры, символы ‘$’ и ‘_’. Начинаться имена
     должны с буквы или символов ‘$’ и ‘_’ .

     Нельзя использовать в качестве имени ключевые слова языка. Список ключевых слов
     http://en.wikipedia.org/wiki/List_of_Java_keywords.

    Объявления переменных, методов и конструкторов может идти в произвольном
     порядке.
Объявление полей класса

 модификаторы тип имя_поля [ = значение];



    В классе может объявляться любое количество полей.

    Имя поля принято начинать с маленькой буквы.

    Модификаторы характеризуют свойства данного поля.

    Присваивание значения является необязательным.
Объявление методов класса

 модификаторы тип имя _метода(тип_1 параметр_1,
                                .....
                            тип_n параметр_n)
   [throws Исключение_1, ... , Исключение_m] {

      < тело метода >

 }



    В классе может объявляться любое количество методов.

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

    Имя метода принято начинать с маленькой буквы.

    В некоторых случаях тело метода может отсутствовать.
Объявление конструкторов класса

 модификаторы Имя _класса(тип_1 параметр_1,
                                .....
                            тип_n параметр_n)
   [throws Исключение_1, ... , Исключение_m] {

      < тело конструктора >

 }

    Конструктор служит для создания объекта.

    В классе может объявляться любое количество конструкторов.

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

    Имя конструктора всегда совпадает с именем класса.

    Имя конструктора принято начинать с заглавной буквы.
Модификаторы
Пример класса
Базовые конструкции языка


  Комментарии
  Блоки кода
  Условия
  Циклы
  Блоки обработки исключений
Комментарии
  Однострочный    комметнарий
    // This is comment

  Многострочный    комментарий
   /* Multi-line comment */

  Документационный      комментарий
   /** Some javadoc */
Документационный комментарий

  Утилита  javadoc, поставляемая в комплекте
   с JDK позволяет генерировать HTML
   страницы из исходного кода.
  Внутри javadoc можно использовать теги,
   имеющие вид @tag.
  Каждый тег должен быть на отдельной
   строке.
  Теги можно применять ко всему классу, а
   также к отдельным полям и методам, в
   зависимости от тега.
Список javadoc тегов




 Про javadoc можно почитать здесь http://ru.wikipedia.org/wiki/Javadoc
Блоки кода

  Блоки кода используются в случае,
  когда нужно выполнить несколько
  инструкций в том месте, где
  ожидается одна инструкция.

  {
      <тело блока>
  }
Операторы условия
      Оператор                    Использование
 if              if (условие) statement;

                 if (условие) statement1;
                 else statement2;


 ?:              условие ? thenVal : elseVal;
 switch          switch (переменная) {
                   case val1: statement1; break;
                   case val2: statement2; break;
                   default: statementN;
                 }
Циклы
       Оператор                    Использование
 while            while (условие)
                   < оператор цикла>
 do               do
                    <оператор цикла>
                  while (условие продолжения);
 for              for (инициализация; условие; изменение)
                     < оператор цикла>
 foreach          for (переменная: массив)
                     < оператор цикла>
                  for (переменная: коллекция)
                     < оператор цикла>
Блоки обработки исключений
try {
    <блок операторов>
} catch (Exception e1) {
    <обработка 1>
} catch (Exception e2) {
    <обработка 2>
} finally {
    <заключительные действия>
}
Типы данных

  Примитивные
    Логический (boolean).
    Символьный (char).
    Целочисленные (byte, short, int, long).
    Вещественные (float, double).
  Ссылочные
    Массивы.
    Классы.
    Интерфейсы.
Примитивные типы данных
  Нет  полноценных беззнаковых типов
   (за исключением char).
  Не могут использоваться в generics.
  Имеют ссылочные типы-обертки.
  Вещественные типы поддерживают
   режим совместимости со стандартом
   IEEE 754, запрещая повышенную
   точность в промежуточных
   результатах.
Диапазоны значений
примитивных типов.
Литералы
  Целочисленные    литералы имеют тип int. (1,
   0245, -0xfeed, 0b101001).
  Чтобы задать константу типа long,
   дописывается ‘L’ в конце. (109L).
  Вещественные литералы имеют тип double.
   (3.14, 1.2E-5).
  Для задания константы типа float
   используется ‘f’ в конце. (3.14f).
  Символьные константы - ‘Z’, ‘u1234’.
  Логические литералы - true и false.
Преобразование типов

  Преобразование     с расширением.

  Преобразование     с усечением.

  Boxing/Unboxing.
Базовые операции
Базовые операции (продолжение)
Вопросы?

More Related Content

What's hot

Java. Полиморфизм.
Java. Полиморфизм.Java. Полиморфизм.
Java. Полиморфизм.Unguryan Vitaliy
 
Java Core. Lecture# 3. Part# 1. Abstract classes.
Java Core. Lecture# 3. Part# 1. Abstract classes.Java Core. Lecture# 3. Part# 1. Abstract classes.
Java Core. Lecture# 3. Part# 1. Abstract classes.Anton Moiseenko
 
Java. Generic - шаблонные типы.
Java.  Generic - шаблонные типы.Java.  Generic - шаблонные типы.
Java. Generic - шаблонные типы.Unguryan Vitaliy
 
Java. Вложенные классы и интерфейсы.
Java. Вложенные классы и интерфейсы.Java. Вложенные классы и интерфейсы.
Java. Вложенные классы и интерфейсы.Unguryan Vitaliy
 
Java. Логические операторы, операторы ветвления.
Java. Логические операторы, операторы ветвления.Java. Логические операторы, операторы ветвления.
Java. Логические операторы, операторы ветвления.Unguryan Vitaliy
 
Лекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследованиеЛекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследованиеmetaform
 
Java Core. Lecture# 1. Intro
Java Core. Lecture# 1. IntroJava Core. Lecture# 1. Intro
Java Core. Lecture# 1. IntroAnton Moiseenko
 
Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.Anton Moiseenko
 
принципы ооп и программирование классов в C#
принципы ооп и программирование классов в C#принципы ооп и программирование классов в C#
принципы ооп и программирование классов в C#bolevik
 
Рефлексия в java
Рефлексия в javaРефлексия в java
Рефлексия в javaUnguryan Vitaliy
 
Java. Введение в коллекции. Классы обертки. Перечисленияю
Java. Введение в коллекции. Классы обертки.  ПеречисленияюJava. Введение в коллекции. Классы обертки.  Перечисленияю
Java. Введение в коллекции. Классы обертки. ПеречисленияюUnguryan Vitaliy
 

What's hot (13)

Java. Полиморфизм.
Java. Полиморфизм.Java. Полиморфизм.
Java. Полиморфизм.
 
Java Core. Lecture# 3. Part# 1. Abstract classes.
Java Core. Lecture# 3. Part# 1. Abstract classes.Java Core. Lecture# 3. Part# 1. Abstract classes.
Java Core. Lecture# 3. Part# 1. Abstract classes.
 
Java. Методы
Java. Методы Java. Методы
Java. Методы
 
Java. Generic - шаблонные типы.
Java.  Generic - шаблонные типы.Java.  Generic - шаблонные типы.
Java. Generic - шаблонные типы.
 
Java. Вложенные классы и интерфейсы.
Java. Вложенные классы и интерфейсы.Java. Вложенные классы и интерфейсы.
Java. Вложенные классы и интерфейсы.
 
Java. Логические операторы, операторы ветвления.
Java. Логические операторы, операторы ветвления.Java. Логические операторы, операторы ветвления.
Java. Логические операторы, операторы ветвления.
 
Лекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследованиеЛекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследование
 
Stream API
Stream APIStream API
Stream API
 
Java Core. Lecture# 1. Intro
Java Core. Lecture# 1. IntroJava Core. Lecture# 1. Intro
Java Core. Lecture# 1. Intro
 
Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.
 
принципы ооп и программирование классов в C#
принципы ооп и программирование классов в C#принципы ооп и программирование классов в C#
принципы ооп и программирование классов в C#
 
Рефлексия в java
Рефлексия в javaРефлексия в java
Рефлексия в java
 
Java. Введение в коллекции. Классы обертки. Перечисленияю
Java. Введение в коллекции. Классы обертки.  ПеречисленияюJava. Введение в коллекции. Классы обертки.  Перечисленияю
Java. Введение в коллекции. Классы обертки. Перечисленияю
 

Viewers also liked

Metropolitan sidney EBM Goiânia
Metropolitan sidney EBM GoiâniaMetropolitan sidney EBM Goiânia
Metropolitan sidney EBM GoiâniaPedro Oliveira
 
Metropolitan sidney-goiania-ebm
Metropolitan sidney-goiania-ebmMetropolitan sidney-goiania-ebm
Metropolitan sidney-goiania-ebmPedro Oliveira
 
Lineas de productos de software y metodo watch
Lineas de productos de software y metodo watchLineas de productos de software y metodo watch
Lineas de productos de software y metodo watchCarlos Mujica Gutierrez
 
Sales and marketing_terminology
Sales and marketing_terminologySales and marketing_terminology
Sales and marketing_terminologyYogesh Patel
 
Matematica programa de bacalaureat 2013
Matematica programa de bacalaureat 2013Matematica programa de bacalaureat 2013
Matematica programa de bacalaureat 2013Dyanna19
 
Business of graphic design
Business of graphic designBusiness of graphic design
Business of graphic designcymo62
 

Viewers also liked (10)

Metropolitan sidney EBM Goiânia
Metropolitan sidney EBM GoiâniaMetropolitan sidney EBM Goiânia
Metropolitan sidney EBM Goiânia
 
3rd unit
3rd unit3rd unit
3rd unit
 
Metropolitan sidney-goiania-ebm
Metropolitan sidney-goiania-ebmMetropolitan sidney-goiania-ebm
Metropolitan sidney-goiania-ebm
 
CHRISLIAODESIGN
CHRISLIAODESIGNCHRISLIAODESIGN
CHRISLIAODESIGN
 
Lineas de productos de software y metodo watch
Lineas de productos de software y metodo watchLineas de productos de software y metodo watch
Lineas de productos de software y metodo watch
 
Su dien li
Su dien liSu dien li
Su dien li
 
Sales and marketing_terminology
Sales and marketing_terminologySales and marketing_terminology
Sales and marketing_terminology
 
Matematica programa de bacalaureat 2013
Matematica programa de bacalaureat 2013Matematica programa de bacalaureat 2013
Matematica programa de bacalaureat 2013
 
K2 stress-system
K2 stress-systemK2 stress-system
K2 stress-system
 
Business of graphic design
Business of graphic designBusiness of graphic design
Business of graphic design
 

Similar to 03_JavaBasicConstructionsAndDatatypes

Java. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторыJava. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторыUnguryan Vitaliy
 
javascript
javascriptjavascript
javascriptsovest
 
javascript_part1
javascript_part1javascript_part1
javascript_part1sovest
 
Погружение в Dart
Погружение в DartПогружение в Dart
Погружение в DartSergey Penkovsky
 
обработка исключений в Java
обработка исключений в Javaобработка исключений в Java
обработка исключений в Javametaform
 
углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]Technopark
 
C++ осень 2013 лекция 5
C++ осень 2013 лекция 5C++ осень 2013 лекция 5
C++ осень 2013 лекция 5Technopark
 
C++ осень 2012 лекция 6
C++ осень 2012 лекция 6C++ осень 2012 лекция 6
C++ осень 2012 лекция 6Technopark
 
Coding Standards
Coding StandardsCoding Standards
Coding Standardsroadhump
 
C++ осень 2012 лекция 3
C++ осень 2012 лекция 3C++ осень 2012 лекция 3
C++ осень 2012 лекция 3Technopark
 
Android - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsAndroid - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsNoveo
 
Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)Alex Ott
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Javametaform
 
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про GenericsКурс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics7bits
 

Similar to 03_JavaBasicConstructionsAndDatatypes (20)

Java. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторыJava. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторы
 
javascript
javascriptjavascript
javascript
 
javascript_part1
javascript_part1javascript_part1
javascript_part1
 
Погружение в Dart
Погружение в DartПогружение в Dart
Погружение в Dart
 
обработка исключений в Java
обработка исключений в Javaобработка исключений в Java
обработка исключений в Java
 
углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]
 
C++ осень 2013 лекция 5
C++ осень 2013 лекция 5C++ осень 2013 лекция 5
C++ осень 2013 лекция 5
 
Обзор Ruby
Обзор RubyОбзор Ruby
Обзор Ruby
 
Step 2
Step 2Step 2
Step 2
 
Step 3.2
Step 3.2Step 3.2
Step 3.2
 
C++ осень 2012 лекция 6
C++ осень 2012 лекция 6C++ осень 2012 лекция 6
C++ осень 2012 лекция 6
 
Coding Standards
Coding StandardsCoding Standards
Coding Standards
 
C++ осень 2012 лекция 3
C++ осень 2012 лекция 3C++ осень 2012 лекция 3
C++ осень 2012 лекция 3
 
Android - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsAndroid - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, generics
 
Классы и объекты С#
Классы и объекты С#Классы и объекты С#
Классы и объекты С#
 
Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)
 
02 if for
02 if for02 if for
02 if for
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
 
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про GenericsКурс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
 
Scala lecture #4
Scala lecture #4Scala lecture #4
Scala lecture #4
 

03_JavaBasicConstructionsAndDatatypes

  • 1. Управляющие конструкции и синтаксис языка Java Кленов Дмитрий, СГТУ, 24.09.2012
  • 2. Общий вид класса class Имя_класса [extends Родительский_класс] [implements Интерфейс_1, ... , Интерфейс_n] { <объявление полей> <объявление методов> <объявление конструкторов> }
  • 3. Общий вид класса  В java разрешены любые неспециальные символы, в том числе из национальных алфавитов.  Количество пробелов и переводов строк не является существенным.  Язык java чувствителен к регистру символов.  Имя класса принято начинать с заглавной буквы.  Имя класса должно совпадать с именем .java файла, в котором этот класс объявлен.  Имена классов, методов, конструкторов и переменных могут содержать буквы (в том числе из национальных алфавитов), цифры, символы ‘$’ и ‘_’. Начинаться имена должны с буквы или символов ‘$’ и ‘_’ .  Нельзя использовать в качестве имени ключевые слова языка. Список ключевых слов http://en.wikipedia.org/wiki/List_of_Java_keywords.  Объявления переменных, методов и конструкторов может идти в произвольном порядке.
  • 4. Объявление полей класса модификаторы тип имя_поля [ = значение];  В классе может объявляться любое количество полей.  Имя поля принято начинать с маленькой буквы.  Модификаторы характеризуют свойства данного поля.  Присваивание значения является необязательным.
  • 5. Объявление методов класса модификаторы тип имя _метода(тип_1 параметр_1, ..... тип_n параметр_n) [throws Исключение_1, ... , Исключение_m] { < тело метода > }  В классе может объявляться любое количество методов.  Круглые скобки после имени метода обязательны, даже если у метода нет параметров.  Имя метода принято начинать с маленькой буквы.  В некоторых случаях тело метода может отсутствовать.
  • 6. Объявление конструкторов класса модификаторы Имя _класса(тип_1 параметр_1, ..... тип_n параметр_n) [throws Исключение_1, ... , Исключение_m] { < тело конструктора > }  Конструктор служит для создания объекта.  В классе может объявляться любое количество конструкторов.  Круглые скобки после имени конструктора обязательны, даже если у конструктора нет параметров.  Имя конструктора всегда совпадает с именем класса.  Имя конструктора принято начинать с заглавной буквы.
  • 9. Базовые конструкции языка  Комментарии  Блоки кода  Условия  Циклы  Блоки обработки исключений
  • 10. Комментарии  Однострочный комметнарий // This is comment  Многострочный комментарий /* Multi-line comment */  Документационный комментарий /** Some javadoc */
  • 11. Документационный комментарий  Утилита javadoc, поставляемая в комплекте с JDK позволяет генерировать HTML страницы из исходного кода.  Внутри javadoc можно использовать теги, имеющие вид @tag.  Каждый тег должен быть на отдельной строке.  Теги можно применять ко всему классу, а также к отдельным полям и методам, в зависимости от тега.
  • 12. Список javadoc тегов Про javadoc можно почитать здесь http://ru.wikipedia.org/wiki/Javadoc
  • 13. Блоки кода  Блоки кода используются в случае, когда нужно выполнить несколько инструкций в том месте, где ожидается одна инструкция. { <тело блока> }
  • 14. Операторы условия Оператор Использование if if (условие) statement; if (условие) statement1; else statement2; ?: условие ? thenVal : elseVal; switch switch (переменная) { case val1: statement1; break; case val2: statement2; break; default: statementN; }
  • 15. Циклы Оператор Использование while while (условие) < оператор цикла> do do <оператор цикла> while (условие продолжения); for for (инициализация; условие; изменение) < оператор цикла> foreach for (переменная: массив) < оператор цикла> for (переменная: коллекция) < оператор цикла>
  • 16. Блоки обработки исключений try { <блок операторов> } catch (Exception e1) { <обработка 1> } catch (Exception e2) { <обработка 2> } finally { <заключительные действия> }
  • 17. Типы данных  Примитивные  Логический (boolean).  Символьный (char).  Целочисленные (byte, short, int, long).  Вещественные (float, double).  Ссылочные  Массивы.  Классы.  Интерфейсы.
  • 18. Примитивные типы данных  Нет полноценных беззнаковых типов (за исключением char).  Не могут использоваться в generics.  Имеют ссылочные типы-обертки.  Вещественные типы поддерживают режим совместимости со стандартом IEEE 754, запрещая повышенную точность в промежуточных результатах.
  • 20. Литералы  Целочисленные литералы имеют тип int. (1, 0245, -0xfeed, 0b101001).  Чтобы задать константу типа long, дописывается ‘L’ в конце. (109L).  Вещественные литералы имеют тип double. (3.14, 1.2E-5).  Для задания константы типа float используется ‘f’ в конце. (3.14f).  Символьные константы - ‘Z’, ‘u1234’.  Логические литералы - true и false.
  • 21. Преобразование типов  Преобразование с расширением.  Преобразование с усечением.  Boxing/Unboxing.