Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 1 Основы программирования на языке Java Алгоритмические средства Java.

Slides:



Advertisements
Similar presentations
STRING AN EXAMPLE OF REFERENCE DATA TYPE. 2 Primitive Data Types  The eight Java primitive data types are:  byte  short  int  long  float  double.
Advertisements

IntroductionIntroduction  Computer program: an ordered sequence of statements whose objective is to accomplish a task.  Programming: process of planning.
Скриптовые языки на примере Perl. Языки программирования Скриптовые Программа (или ее бай-код) интерпретируется Зачастую более высокий уровень абстрагирования.
ООП Классы – 2. Ссылки Ссылка – еще одно имя объекта. Используйте ссылки вместо указателя. Это более безопасно. Complex c(10,10); Complex c2& = c; c2+=10;
Особенности Java. Блок static static { } Создание и уничтожение объектов  new – создание объекта  finalyze()
Язык JavaScript Скриптовый язык для выполнения на html-страницах.
Introduction to Computers and Programming Lecture 7:
PHP как язык программирования. Типы данных логические величины int, integer – целые числа real, double, float – вещественные числа string – строки array.
Computer Science A 15: 17/4. Today Overview of java How to decribe programming languages Main message: The core of java is small Even a small language.
Java.1 CSE4100 The Java Language Grammar
Синтаксис языка Java.
Язык Java. JSP..
Формы в HTML. Элемент FORM Элемент уровня «блок» Управляющие элементы Просто текст Атрибуты: action – url обработчика method – post или get enctype –
Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 1 Основы программирования на языке Java Обработка исключений.
COMP 14: Intro. to Intro. to Programming May 23, 2000 Nick Vallidis.
Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 1 Основы программирования на языке Java Средства ООП Java.
Обработка исключений в C# Единая техника обнаружения ошибок времени выполнения и передачи информации о них.
JAVA PROGRAMMING PART II.
Prepared by Uzma Hashmi Instructor Information Uzma Hashmi Office: B# 7/ R# address: Group Addresses Post message:
Introduction to Programming Prof. Rommel Anthony Palomino Department of Computer Science and Information Technology Spring 2011.
1 Identifiers  Identifiers are the words a programmer uses in a program  An identifier can be made up of letters, digits, the underscore character (
General Features of Java Programming Language Variables and Data Types Operators Expressions Control Flow Statements.
System development with Java Lecture 2. Rina Errors A program can have three types of errors: Syntax and semantic errors – called.
C-Language Keywords(C99)
Introduction to Programming David Goldschmidt, Ph.D. Computer Science The College of Saint Rose Java Fundamentals (Comments, Variables, etc.)
The Java Programming Language
JAVA Tokens. Introduction A token is an individual element in a program. More than one token can appear in a single line separated by white spaces.
C Derived Languages C is the base upon which many build C++ conventions also influence others *SmallTalk is where most OOP comes Java and Javascript have.
Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.
Chapter 2: Java Fundamentals
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2552 Keyword & Data Type มหาวิทยาลัยเนชั่น.
An Introduction to Java – Part 1 Dylan Boltz. What is Java?  An object-oriented programming language  Developed and released by Sun in 1995  Designed.
 Character set is a set of valid characters that a language can recognise.  A character represents any letter, digit or any other sign  Java uses the.
Rina System development with Java Instructor: Rina Zviel-Girshin Lecture 2.
Java The Java programming language was created by Sun Microsystems, Inc. It was introduced in 1995 and it's popularity has grown quickly since A programming.
1 Programming Java Java Basics. 2 Java Program Java Application Program Application Program written in general programming language Applet Program running.
Introduction to Java Lecture Notes 3. Variables l A variable is a name for a location in memory used to hold a value. In Java data declaration is identical.
Java Overview. Comments in a Java Program Comments can be single line comments like C++ Example: //This is a Java Comment Comments can be spread over.
Saint Petersburg, 2011 Java Lecture Generics. Quiz ArrayList lst = new ArrayList(); Collection c = lst; lst.add("one"); lst.add(“two"); lst.add(“three");
Основы языка. 1.Переменные 2.Операторы 3.Примитивные типы 4.Массивы 5.Выражения 6.Блоки 7.Управление циклами.
Applied Computing Technology Laboratory QuickStart Java Learning to Program in Java Dr. Tom Way October 21, 2005.
Java Language Basics By Keywords Keywords of Java are given below – abstract continue for new switch assert *** default goto * package.
 In the java programming language, a keyword is one of 50 reserved words which have a predefined meaning in the language; because of this,
Java Basics. Tokens: 1.Keywords int test12 = 10, i; int TEst12 = 20; Int keyword is used to declare integer variables All Key words are lower case java.
1 Lecture # 2. * Introducing Programming with an Example * Identifiers, Variables, and Constants * Primitive Data Types * Byte, short, int, long, float,
© 2011 Pearson Education, publishing as Addison-Wesley Chapter 1: Computer Systems Presentation slides for Java Software Solutions for AP* Computer Science.
Object Oriented Programming Lecture 2: BallWorld.
Introduction to Java Programming by Laurie Murphy Revised 09/08/2016.
1 Programming Languages and Java Programming languages Java language The basic program Java syntax.
C++ Lesson 1.
Working with Java.
The Java Language Grammar sun. com/docs/books/jls/index
Chapter No. : 1 Introduction to Java.
Lecture 2: Data Types, Variables, Operators, and Expressions
University of Central Florida COP 3330 Object Oriented Programming
Object-Oriented Programming
Starting JavaProgramming
null, true, and false are also reserved.
Introduction to Java Programming
An Introduction to Java – Part I, language basics
An overview of Java, Data types and variables
Instructor: Alexander Stoytchev
Chapter 1: Computer Systems
Units with – James tedder
Units with – James tedder
JavaScript Reserved Words
Module 2 - Part 1 Variables, Assignment, and Data Types
Instructor: Alexander Stoytchev
Chap 2. Identifiers, Keywords, and Types
Agenda Types and identifiers Practice Assignment Keywords in Java
Presentation transcript:

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 1 Основы программирования на языке Java Алгоритмические средства Java

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 2 Лексическая структура программы  Текст единицы компиляции состоит из символов Unicode (используется версия  Первичная трансляция (обработка) исходного включает следующие этапы: 1)расширение escape-последовательностей вида \uXXXX, где X – шестнадцатеричные символы 2)трансляция потока полученного на шаге 1 в последовательность входных символов и терминаторов строки (LF, CR) 3)трансляция потока полученного на шаге 2 в последовательность входных элементов, которая, после удаления комментариев и пробелов состоит из лексем и терминальных символов грамматики

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 3 Escape последовательности unicode UnicodeInputCharacter: UnicodeEscape RawInputCharacter UnicodeEscape: \ UnicodeMarker HexDigit HexDigit HexDigit HexDigit UnicodeMarker: u UnicodeMarker u RawInputCharacter: any Unicode character HexDigit: one of a b c d e f A B C D E F Учитывается “четность” количества символов ‘\’, и номер прохода: “\\u2297=\u2297” транслируется в “ \ u = “ “\u005Cu005A” транслируется в “ \ u A”, но не в “z”

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 4 Специальные символы LineTerminator: the ASCII LF character, also known as "newline" the ASCII CR character, also known as "return" the ASCII CR character followed by the ASCII LF character InputCharacter: UnicodeInputCharacter but not CR or LF WhiteSpace: the ASCII SP character, also known as "space" the ASCII HT character, also known as "horizontal tab" the ASCII FF character, also known as "form feed" LineTerminator

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 5 Последовательность входных элементов Input: InputElements opt Sub opt InputElements: InputElement InputElements InputElement InputElement: WhiteSpace Comment Token Token: Identifier Keyword Literal Separator Operator Sub: the ASCII SUB character, also known as "control-Z"

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 6 Комментарии в тексте программы /** многострочный документирующий комментарий java */ /* традиционный многострочный комментарий в стиле C */ // традиционный комментарий в стиле C++  Комментарии не могут быть вложенными.  символы /* и */ не имеют специального значения в комментариях, начинающихся с символов //.  символы // не имеют специального значения в комментариях, начинающихся с символов /* или /**. /* Данный комментарий /* // /** оканчивается здесь: */

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 7 Идентификаторы Identifier: IdentifierChars but not a Keyword or BooleanLiteral or NullLiteral IdentifierChars: JavaLetter IdentifierChars JavaLetterOrDigit JavaLetter: any Unicode character that is a Java letter JavaLetterOrDigit: any Unicode character that is a Java letter-or-digit Символы Java включают в себя ASCII символы A-Z (\u0041-\u005A), a-z (\u0061-\u007A), _ (\u005F), $ (\u0024) Цифры Java включают цифры ASCII 0-9 (\u0030-\u0039)

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 8 Идентификаторы  Два идентификатора совпадают только если совпадают Unicode коды всех символов из которых они состоят  Символы в идентификаторе могут иметь одинаковое начертание, но различаться по кодам:  LATIN CAPITAL LETTER A (A, \u0041) и GREEK CAPITAL LETTER ALPHA (A, \u0391)  LATIN SMALL LETTER A (a, \u0061), and CYRILLIC SMALL LETTER A (a, \u0430)  Примеры допустимых идентификаторов: String i3 MAX_VALUE isLetterOrDigit

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 9 Ключевые слова Keyword: one of abstractdefaultifprivatethis boolean doimplementsprotectedthrow breakdouble importpublicthrows byteelseinstanceofreturntransient caseextendsintshort try catchfinalinterfacestaticvoid char finally longstrictfpvolatile class float native super while const for new switch continue goto package synchronizedassertenum Слова goto и const зарезервированы. Ключевое слово assert введено в JDK 1.4, enum – в JDK 1.5 true, false и null технически являются литерными константами

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 10 Литерные константы (literals) Literal: IntegerLiteral FloatingPointLiteral BooleanLiteral CharacterLiteral StringLiteral NullLiteral литерные константы типа int (диапазон от –2 31 до 2 31 ): xDadaCafe x00FF00FF литерные константы типа long (диапазон от –2 63 до 2 63 ): 0l 0777L 0x L L 0xC0B0L

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 11 Литерные константы литерные константы типа float: 1e1f 2.f.3f 0f 3.14f e+23f литерные константы типа double: 1e e-9d 1e137 символьные литерные константы: 'a' '%' '\t' '\\' '\'' '\u03a9' '\uFFFF' '\177' ' ' для LF и CR необходимо использовать ‘\n’ и ‘\r’ строковые литерные константы: "" // пустая строка "\"" // строка содержащая символ " "This is a string" // строка из 16 символов "This is a " +// константное выражение, сформированное "two-line string" // из двух строковых литералов

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 12 Строковые литералы и объекты String package test; class Test { public static void main(String[] args) { String hello = "Hello", lo = "lo"; System.out.print((hello == "Hello") + " "); System.out.print((Other.hello == hello) + " "); System.out.print((other.Other.hello == hello) + " "); System.out.print((hello == ("Hel"+"lo")) + " "); System.out.print((hello == ("Hel"+lo)) + " "); System.out.println(hello == ("Hel"+lo).intern()); } } class Other { static final String hello = "Hello"; } package other; public class Other { public final static String hello = "Hello"; }

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 13 Разделители и операторы Separator: one of ( ) { } [ ] ;,. Operator: one of => = !=&& || * / & | ^ % > >>> += -= *= /= &= |= ^= %= >= >>>= n>>>s - right-shift s bit positions with zero-extension: if (n >= 0) n>>>s == n>>s if (n >>s == (n>>s)+(s<<~s), причем ~s = 31-s для int и 63-s для long также, отметим что: “bob” + true == “bob true”

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 14 Типы и значения выражений Type: PrimitiveType ReferenceType PrimitiveType: NumericType boolean NumericType: IntegralType FloatingPointType IntegralType: one of byte short int long char FloatingPointType: one of float double ReferenceType: ClassOrInterfaceType ArrayType ClassOrInterfaceType: ClassType InterfaceType ClassType: TypeName InterfaceType: TypeName ArrayType: Type [ ]

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 15 Диапазоны значений Значения интегрального типа являются целыми числами следующих диапазонов:  Для byte, от -128 до 127, включительно  Для short, от до 32767, включительно  Для int, от до , включительно  Для long, от до , включительно  Для char, от '\u0000' до '\uffff' включтельно, т.е., от 0 до Для типов с плавающей точкой диапазоны значений регулируются стандартом ANSI/IEEE Standard Существуют специальные значения Float.NaN и Double.NaN

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 16 Типы значений в выражениях  При вычислении выражений аргументы оператора приводятся к одному типу, при этом более простой тип приводится к более сложному путем продвижения (byte- > short -> int ->long; float -> double; int->float или double): short c = 456; double d = 3.f / 2 + (c );  Будьте осторожны при вычислениях с плавающей точкой: double d = 31/5 + 6 * ( 1 / 5); // d == 6.0 !!!!!! double d = ((double)31)/5 + 6 * (1. / 5); // d == Ok  Будьте осторожны при вычислениях близких к границам значений с плавающей точкой (positive and negative zero, positive and negative infinity)  Будьте осторожны при вычислениях в которых часть выражения может достичь значения NaN.

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 17 Потеря информации при преобразованиях  Сужающие преобразования происходят при необходимости присвоения переменной более узкого типа значения выражения более широкого типа:  byte в char  short в byte или char  char в byte или short  int в byte, short, или char  long в byte, short, char, или int  float в byte, short, char, int, или long  double в byte, short, char, int, long, или float short s = 1000 * 100; // > result: int i = ((int) ( L * 5)) / 100;

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 18 Вызов методов пусть задан класс: public class MyClass { public static void staticMethodName() {…} public void methodName() {…} }  Вызов метода класса (статического): ClassName.staticMethodName();  Вызов метода экземпляра (объекта): ClassName obj = new ClassName(); // создание объекта obj.methodName(); // вызов метода используя ссылку  У объекта можно вызвать статический метод: obj.staticMethodName(); //вызов статического метода

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 19 Блоки кода  Блоки кода служат для группировки нескольких операторов (statement) и используются для задания тел классов, методов, блоков статической и динамической инициализации, областей перехвата исключений, блоков синхронизации, а также для задания частей сложных операторов (ветвления, выбора, цикла)  Начало и конец блока задается разделителями { }  Блоки могут содержать:  объявления и инициализаторы локальных переменных  объявления локальных типов (классов и интерфейсов)  выражения и операторы языка  вложенные блоки  Область видимости локальных переменных ограничена пределами блока

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 20 Блоки (грамматика) Block: { BlockStatements opt } BlockStatements: BlockStatement BlockStatements BlockStatement BlockStatement: LocalVariableDeclarationStatement ClassDeclaration Statement LocalVariableDeclarationStatement: LocalVariableDeclaration ; LocalVariableDeclaration: final opt Type VariableDeclarators VariableDeclarators: VariableDeclarator VariableDeclarators, VariableDeclarator VariableDeclarator: VariableDeclaratorId VariableDeclaratorId =VariableInitializer VariableDeclaratorId: Identifier VariableDeclaratorId [ ] VariableInitializer: Expression ArrayInitializer

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 21 Оператор выбора if  Служит для задания альтернативных веток исполнения кода: public static int abs (int value) { if (value >= 0) return value; //может стоять блок { } else return –value; //может стоять блок { } }  Условное выражение в скобках всегда должно иметь тип boolean  Вложенный оператор if: if (i == 10) { if (j < 20) a = b; if (k >100) c = d; //этот оператор if else a = c; //связан с этим оператором else } else a = d; //а этот else относится к if (i == 10)

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 22 Цепочка if-else-if if ( условие ) оператор; else if (условие) оператор; else if (условие) оператор;. else оператор; int month = 4; String season; if (month==12 || month ==1 || month == 2) season = “зимний”; else if (month >=3 && month <=5 ) season = “весенний”; else if (month > 5 && month < 9) season = “летний”; else if (month > 8 && month < 12) season = “осенний”; else season = “неправильно заданный”; System.out.println(“Апрель - ”+season + “месяц.”);

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 23 Оператор выбора switch  switch лучшая альтернатива if-else-if если нужна проверка на конкретные значения switch ( выражение ) { case значение1: // последовательность операторов break; case значение2: //последовательность операторов break; … case значениеN: //последовательность операторов break; default: //последовательность операторов по умолчанию }

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 24 Итерационный оператор while  Используется для повторения действий пока выполняется условие  Может быть прерван оператором break;  Может быть продолжен оператором continue; while (условие) { //тело цикла } //пример: int n = 10; while ( n > 0) { n--; System.out.println(“шаг ” + n); if (n == 5) continue; if (n == 3) break; }

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 25 Итерационный оператор do - while  Если нужно выполнить тело цикла хотя бы раз вне зависимости от результата проверки условия, то можно воспользоваться конструкцией do – while: do { //последовательность операторов } while (условие);

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 26 Итерационный оператор for  Используется для объединения условия, инициализации и операции над переменными цикла for (ининциализация; условие; итерация) { //тело цикла } //пример: for (int i = 0; i < 10; i++) { System.out.println(“шаг ”+i); }  Как и любой другой цикл, цикл for можно прервать с помощью оператора break и продолжить с помощью continue

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 27 Использование меток  Метка имеет видимость только внутри непосредственно объемлющего ее блока  Метки могут используются для выхода из глубоко вложенных циклов void doSomething () { first: for(int i = 0; i < 10; i++) { second: for (int j = 0; j < 10; j++) { if( j == 5 ) break second; if( i == 6 ) break first; }

Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 28 Последовательность исполнения  Программа выполняется последовательно оператор за оператором (statement)  Операторы могут содержать в себе другие операторы, а также выражения  Операторы могут завершаться нормально, а могут быть прерваны:  break; break label opt ;- прерывание цикла или switch  continue; continue label opt ; - продолжение цикла  return; return value opt ; - возврат из метода  throw … - явный выброс исключения  а также выброс исключения в процессе вычисления выражения или выполнения оператора