40
Основы Java Сергей Немчинский, foxmindEd, 2016 Переменные, циклы, условные операторы или как вообще писать программу

основы Java переменные, циклы

Embed Size (px)

Citation preview

Page 1: основы Java   переменные, циклы

Основы Java

Сергей Немчинский, foxmindEd, 2016

Переменные, циклы, условные операторы или как вообще писать программу

Page 2: основы Java   переменные, циклы
Page 3: основы Java   переменные, циклы

Hello World!

class HelloWorld { public static void main(String[] args) {

System.out.println("Hello World!"); }

}

Page 4: основы Java   переменные, циклы

Переменные

Что такое переменная Тип переменной

Примитивные типы Ссылочные типы

Описание переменной тип имя [ = значение];

Присвоение значения

Page 5: основы Java   переменные, циклы

Примитивные типы

Целочисленные типы

Тип Размер (бит) Диапазон

byte 8 бит от -128 до 127short 16 бит от -32768 до 32767char 16 бит от 0 до 65535

int 32 бит от -2147483648 до 2147483647

long 64 бит от -9223372036854775808 до 9223372036854775807

Page 6: основы Java   переменные, циклы

Целочисленные типыpublic class IntegralTypes {

public static void main(String[] args) { byte b = 228; // Вот тут будет ошибка, т.к. у нас диапазон от -128 до 127! short s = 1337; int i = 1488; long l = 2147483648L; // Постфикс l или L обозначает литералы типа long System.out.println(i); System.out.println(b); System.out.println(s); System.out.println(l); }

}

Page 7: основы Java   переменные, циклы

Целочисленные типыpublic class Characters {

public static void main(String[] args) { char a = 'a', b, c = 'c'; b = (char) ((a + c) / 2); // Можно складывать, вычитать, делить и умножать // Но из-за особенностей арифметики Java результат // приходится приводить к типу char явно System.out.println(b); // Выведет символ 'b'

} }

Page 8: основы Java   переменные, циклы

Типы с плавающей точкой

Тип Размер (бит) Диапазонfloat 32 от -1.4e-45f до 3.4e+38fdouble 64 от -4.9e-324 до 1.7е+308

Page 9: основы Java   переменные, циклы

Типы с плавающей точкойpublic class FloatingPointTypes {

public static void main(String[] args) {double a, b = 4.12; a = 22.1 + b; float pi = 3.14f; // При использовании типа float // требуется указывать суффикс f или F // так как дробные литералы типа // double float anotherPi = (float) 3.14; // Можно привести явно double c = 27; double d = pi * c; System.out.println(d); }

}

Page 10: основы Java   переменные, циклы

Логический тип

Тип Размер (бит) Значение

boolean1 (в массивах), 32 (не в массивах используется int)

true (истина) или false (ложь)

Page 11: основы Java   переменные, циклы

Ссылочные данныеpublic class Strings {

public static void main(String[] args) { String a = "Hello", b = "World"; System.out.println(a + " " + b); // Здесь + означает объединение (конкатенацию) строк // Пробел не вставляется автоматически

// Строки конкатенируются слева направо, надо помнить это когда соединяешь строку и примитив String c = 2 + 2 + ""; // "4" String d = "" + 2 + 2; // "22" d = "" + (2 + 2); // а теперь d тоже "4" String foo = "a string"; String bar = "a string"; // bar будет указывать на тот же объект что и foo String baz = new String("a string"); // Чтобы гарантированно создать новую строку надо вызвать конструктор System.out.println("foo == bar ? " + (foo == bar)); // == сравнивает ссылки на объекты System.out.println("foo равен bar ? " + (foo.equals(bar))); // Метод equals служит для проверки двух объектов на равенство System.out.println("foo == baz ? " + (foo == baz)); System.out.println("foo равен baz ? " + (foo.equals(baz)));

}}

Page 12: основы Java   переменные, циклы

Обертки Тип Класс-обертка

byte Byte

short Short

int Integer

long Long

char Character

float Float

double Double

Page 13: основы Java   переменные, циклы

Обертки int i; Integer boxed; // Обычное создание объекта

boxed = new Integer(i); // Фабричный метод boxed = Integer.valueOf(i); // Автоматическая упаковка, компилятор // просто вставит вызов Integer.valueOf boxed = i;

Page 14: основы Java   переменные, циклы

Переменные

Инициализация переменных Константы, модификатор final

Page 15: основы Java   переменные, циклы

Операции

Арифметические операции Инкремент и декремент Операции отношения Логические операции Поразрядные операции Класс Math Приоритет операций

Page 16: основы Java   переменные, циклы

Арифметические операцииint a1 = 3 + 4; // результат равен 7int a2 = 10 - 7; //результат равен 3int a3 = 10 * 5; //результат равен 50double a4 = 14.0 / 5.0; //результат равен 2.8double a5 = 14.0 % 5.0; //результат равен 4int b1 = 5;int c1 = ++b1; // c1=6; b1=6int b2 = 5;int c2 = b2++; // c2=5; b2=6int b3 = 5;int c3 = --b3; // c3=4; b3=4int b4 = 5;int c4 = b4--; // c4=5; b4=4

Page 17: основы Java   переменные, циклы

Логические (побитовые) операции

& логическое умножение | логическое сложение ^ исключающее ИЛИ ~ отрицание << сдвиг слево >> сдвиг вправо

Page 18: основы Java   переменные, циклы

Операции сравнения

== равенство != неравенство < меньше > больше <= меньше или равно => больше или равно|| логическое ИЛИ && логическое И

Page 19: основы Java   переменные, циклы

Операции сравненияboolean a1 = (5 > 6) || (4 < 6); // 5 > 6 - false, 4 < 6 - true, поэтому возвращается trueboolean a2 = (5 > 6) || (4 > 6); // 5 > 6 - false, 4 > 6 - false, поэтому возвращается falseboolean a3 = (5 > 6) && (4 < 6); // 5 > 6 - false, 4 < 6 - true, поэтому возвращается falseboolean a4 = (50 > 6) && (4 / 2 < 3); // 50 > 6 - true, 4/2 < 3 - true, поэтому возвращается trueboolean a5 = (5 > 6) ^ (4 < 6); // 5 > 6 - false, 4 < 6 - true, поэтому возвращается trueboolean a6 = (50 > 6) ^ (4 / 2 < 3); // 50 > 6 - true, 4/2 < 3 - true, поэтому возвращается false

Page 20: основы Java   переменные, циклы

Управляющие операции

Оператор ifclass Test {

public static void main(String[] args){ if(true){

System.out.println("Тест прошёл успешно."); }

} }

Page 21: основы Java   переменные, циклы

Управляющие операции Оператор elseclass AnotherTest {

public static void main(String[] args){ if(false){ System.out.println("Тест прошёл не очень успешно.");

} else { System.out.println("Тест прошёл успешно.");

} }

}

Page 22: основы Java   переменные, циклы

Управляющие операции Оператор switchclass SwitchTest {

public static void main(String[] args) { int i=2; switch(i) { case 1: System.out.println("Тест работает."); break; case 2: System.out.println("Тест добрый."); break; case 3: System.out.println("Тест поможет вам."); break; } }

}

Page 23: основы Java   переменные, циклы

Управляющие операции Ключевое слово break Ключевое слово deafultclass DefaultTest {

public static void main(String[] args) { int i = 152; switch(i) { case 1: System.out.println("Тест работает"); break; case 2: System.out.println("Тест добрый"); break; case 3: System.out.println("Тест поможет вам"); break; default: System.out.println("Тест интересный"); break; } }

}

Page 24: основы Java   переменные, циклы

Область видимости

Блоки Локальные переменные Область видимости Тернарный оператор

Page 25: основы Java   переменные, циклы

Циклы

Понятие цикла Условие выхода Индекс цикла Оператор break Оператор continue Оператор return

Page 26: основы Java   переменные, циклы

Цикл while

public class Цикл { public static void main (String [] args){ int i = 0; while (i < 10){ System.out.print (i++); } }

}

Page 27: основы Java   переменные, циклы

Цикл do while

public class Цикл { public static void main (String [] args ){ int i = 0; do{ System.out.print (++i); } while (i < 10); }

}

Page 28: основы Java   переменные, циклы

Цикл for

public class Цикл { public static void main (String [] args ){ for (int i = 0; i < 10; ++i){ System.out.print ("Ku-Ku");//Обратите внимание на метод print // В отличие от println метод print не // переводит курсор на новую строку } } }

Page 29: основы Java   переменные, циклы

Цикл for-each

public class ForeachArray { public static void main(String args[]) {String[] data = {"Toronto","Stockholm"}; for (String s : data) { System.out.println(s); } }

}

Page 30: основы Java   переменные, циклы

Массивы

Понятие массива Объявление Создание и инициализация Размер массива Многомерные массивы

Page 31: основы Java   переменные, циклы

Массивы

// declares an array of integers int[] anArray;// create an array of integers anArray = new int[10];anArray[0] = 100; // initialize first element anArray[1] = 200; // initialize second element anArray[2] = 300; // and so forthint[] anArray = { 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 };

Page 32: основы Java   переменные, циклы

Массивыclass MultiDimArrayDemo {

public static void main(String[] args) {String[][] names = {

{"Mr. ", "Mrs. ", "Ms. "}, {"Smith", "Jones«

} }; // Mr. SmithSystem.out.println(names[0][0] + names[1][0]); // Ms. Jones System.out.println(names[0][2] + names[1][1]);

} }

Page 33: основы Java   переменные, циклы

Массивыclass ArrayCopyDemo {

public static void main(String[] args) { char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e', 'i', 'n', 'a', 't', 'e', 'd' }; char[] copyTo = new char[7];System.arraycopy(copyFrom, 2, copyTo, 0, 7);System.out.println(new String(copyTo));

} }

Page 34: основы Java   переменные, циклы

Методы Понятие метода Сигнатура Тело метода Вызов метода Параметры Возвращение значения Перегрузка методов Рекурсия Произвольное количество параметров

Page 35: основы Java   переменные, циклы

Методы Modifiers—such as public, private, and others you will learn about

later. The return type—the data type of the value returned by the

method, or void if the method does not return a value. The method name—the rules for field names apply to method

names as well, but the convention is a little different. The parameter list in parenthesis—a comma-delimited list of input

parameters, preceded by their data types, enclosed by parentheses, (). If there are no parameters, you must use empty parentheses.

An exception list—to be discussed later. The method body, enclosed between braces—the method's code,

including the declaration of local variables, goes here.

Page 36: основы Java   переменные, циклы

Методы

public double calculateAnswer(double wingSpan, int numberOfEngines, double length, double grossTons) {

//do the calculation here }

Page 37: основы Java   переменные, циклы

Методыpublic class DataArtist { ... public void draw(String s) { ... } public void draw(int i) { ... } public void draw(double f) { ... } public void draw(int i, double f) { ... } }

Page 38: основы Java   переменные, циклы

Методыpublic double computePayment( double loanAmt, double rate, double futureValue, int numPeriods) { double interest = rate / 100.0; double partial1 = Math.pow((1 + interest), - numPeriods); double denominator = (1 - partial1) / interest; double answer = (-loanAmt / denominator) - ((futureValue * partial1) / denominator); return answer; }

Page 39: основы Java   переменные, циклы

Методыpublic Polygon polygonFrom(Point... corners) {

int numberOfSides = corners.length; double squareOfSide1, lengthOfSide1; squareOfSide1 = (corners[1].x - corners[0].x) *

(corners[1].x - corners[0].x) + (corners[1].y - corners[0].y) * (corners[1].y - corners[0].y);

lengthOfSide1 = Math.sqrt(squareOfSide1); // more method body code follows that creates and returns a // polygon connecting the Points

}

Page 40: основы Java   переменные, циклы

Ваши вопросы

http://foxmindEd.com