Игра: ребус. Java. (Лекция 2)

Содержание

Слайд 2

Игра: Ребус

Игра: Ребус

Слайд 3

Игра: Ребус

Игра: Ребус

Слайд 4

Игра: Ребус

Игра: Ребус

Слайд 5

Игра: Ребус

Игра: Ребус

Слайд 6

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

Типы данных

Данные или любую информацию можно представлять в разном виде. Например:

текстовые данные, целые числа, дробные числа и т.д.. Назовем это типом данных.
Программирование связано с данными.
В Java чтобы работать с информацией, вам нужно указывать ее тип.
У каждого типа есть свое предназначение, преимущества, недостатки, применяемые операции и способы хранения.
Поэтому очень важно выбирать правильный тип данных.
Слайд 7

Типы данных: int Целый тип – int – для хранения целочисленных

Типы данных: int

Целый тип – int – для хранения целочисленных значений:

-1, 3, 234, 0, -123123
int number = 23;
int distance; // по умолчанию 0
distance = 100;
int newDistance = distance + 130;
int hex = 0xff01; // шестнадцатеричная система
int oct = 012356; //восьмеричная система
int bin = 0b0101001; //двоичная система Java 7
int parsed = Integer.parseInt(“1990”);
Слайд 8

Типы данных: byte, short, long byte, short, long – такие же

Типы данных: byte, short, long

byte, short, long – такие же целочисленные

типы как int.
Но, размеры у них разные!
byte – 1 байт – от -128 до 127
byte w = 200; // Ошибка!
short – 2 байта – от -32768 до 32767;
short sss = 560;
int – 4 байта – от – 231 до 231 -1
long – 8 байтов – от -263 до 263-1
Слайд 9

Типы данных: float, double float, double – числовые типы с плавающей

Типы данных: float, double

float, double – числовые типы с плавающей точкой,

т.е. для нецелых чисел.
double weight = 123.455;
float height = 33.6f;
height = 34; //можно и целые числа хранить
double square = height * 10.5;
double parsed = Double.parseDouble(“90.33”);
float casted = (float) parsed;
int casted = (int) weight;
Слайд 10

Типы данных: Операции У каждой математической операции есть результат, который имеет

Типы данных: Операции

У каждой математической операции есть результат, который имеет свой

тип.
Например: Сумма целых чисел всегда целый тип.
Разность целых чисел всегда тип с плавающей точкой.
3+5 – результат будет целого типа, поэтому тип результата int:
int result = 3+5;
double size = 2000/66; // результат не целое число
int bush = 90;
float sush = 3.66f;
double result = bush*sush;
Слайд 11

Типы данных: boolean Булевский тип – boolean – имеет всего два

Типы данных: boolean

Булевский тип – boolean – имеет всего два возможных

значения: True, False
В нем можно хранить состояния, активность какого либо флага и тп.
boolean isCrazy = True;
isCrazy = False;
int a = 123;
int b, c;

boolean isABigger = a > b; // можно хранить результат булевских операторов
boolean isCSmallest = a > c && b > c;
Слайд 12

Типы данных: char Тип для представления одного unicode-символа. Любой текстовый символ

Типы данных: char

Тип для представления одного unicode-символа.
Любой текстовый символ в Java

пишется внутри одинарных кавычек: ‘a’, ‘b’, ‘7’, ‘-’
char a = ‘a’;
char minus = ‘-’;
Размер типа char – 16 битов = 2 байта
Поэтому в нем можно хранить любой из 65535 символов юникода
Так как на клавиатуре все эти символе не помещаются, используется след выражение для получения символов по номеру:
char someChar = ‘\u0f0f’;
char anotherChar = (char) 1050;
Слайд 13

Типы данных: String String- Строка -Тип для представления кучи символов юникода

Типы данных: String

String- Строка -Тип для представления кучи символов юникода –

т.е. Любого текста.
Пишется внутри двойных кавычек: “Это строка”
String text = “Hail, Ceaser!”;
text = “This is ” + “Sparta! ”; //их можно соединять
int x = 123123;
String xStr = Integer.toString(x); //конвертация
String auto = “x is “+x; //автоконвертация
String destiny = 123123; // ошибка!
String s = “198998998”
char selected = s.charAt(4); //получить символ
int len = s.length(); //получить длину строки
Слайд 14

Классы Класс – это составной тип данных. Их используют чтобы представлять

Классы

Класс – это составной тип данных.
Их используют чтобы представлять такие

сущности, для которых обычного числа или строки будет недостаточно.
Класс объединяет некоторое количество данных разного типа в одно целое.
Например мы хотим программно представить прямоугольник. У прямоугольника всегда есть два свойства: высота и ширина.
Для него мы можем создать новый тип данных, который будет содержать в себе оба свойства.

высота

ширина

высота

ширина

Класс это- контейнер

прямоугольник

Слайд 15

Классы Также классы могут иметь какие либо функции, которые они могут

Классы

Также классы могут иметь какие либо функции, которые они могут выполнять,

операции – они называются методами класса.
Например класс Калькулятор у нас мог вычислять сумма, разность, произведение и частное двух чисел. А класс Принтер мог печатать на экран.
Метода могут возвращать результат и менять состояние класса.
Слайд 16

Класс Car class Car{ public String number; public double speed =

Класс Car

class Car{
public String number;
public double speed = 0;
public void

go(){
speed = 20.5;
} public void stop(){
speed = 0;
}
public double getSpeed(){
return speed;
}
}

Поля представляют какие-то свойства Машины. В данном случае скорость и номер.

Номер машины типа String, потому что номер это текст.

Скорость машины – число с плавающей точкой

Методы – это то что может делать наша Машина

Слайд 17

Создание объектов класса Можно создать сколько угодно экземпляров класса Car car1

Создание объектов класса

Можно создать сколько угодно экземпляров класса
Car car1 = new

Car();

Тип объекта car1. Так как классы тоже типы данных, указываем название класса.

Переменная в котором будет храниться ссылка на наш создаваемый объект.

Ключевое слов для создания новых объектов.

Метод-Конструктор создаваемого класса

Слайд 18

Объекты в памяти Можно создать сколько угодно экземпляров класса Car car1

Объекты в памяти

Можно создать сколько угодно экземпляров класса
Car car1 = new

Car(); Car car2 = new Car();
Car car3 = new Car();
car1
Ссылки: car2
car3
Память (Куча)

Объект Car

Объект Car

Объект Car

Слайд 19

Объекты в памяти Каждый объект имеет свою собственные поля. Память (Куча)

Объекты в памяти

Каждый объект имеет свою собственные поля.
Память (Куча)

number = “A1202” speed

= 150
Объект Car

number = “B34U” speed = 0
Объект Car

number = “S230I” speed = 23.78
Объект Car

Слайд 20

Доступ к свойствам и методам класса После создания объекта, мы можем

Доступ к свойствам и методам класса

После создания объекта, мы можем получить

доступ к его public свойствам и методам.
Car car1 = new Car();
car1.number = “A8909U”; // Изменение значения свойства объекта
car1.go(); // вызов метода объекта
Вызов метода всегда имеет круглые скобки в конце. При этом внутри скобок могут быть параметры. car1.setNewSpeed(120);
Метод может возвращать какое-либо значение определенного типа. Возврат значения производится с помощью ключевого слова return. После возвращения значения метод всегда завершается.
Слайд 21

Методы Вся реализация программы происходит в методах. В методе можно выполнять

Методы

Вся реализация программы происходит в методах.
В методе можно выполнять любые действия.
Менять

значения свойств класса:
public void go(){
this.speed = 20; //this – ссылка на текущий объект
} // у которого вызывается данный метод

Вызывать другие методы
public void stop(){
this.stopEngine(); this.speed = calcNewSpeed();
System.out.println(“Car deactivated”);
}

Слайд 22

Параметры методов(аргументы) 1. Методы могут принимать разные параметры и выполняться по

Параметры методов(аргументы)

1. Методы могут принимать разные параметры и выполняться по разному

в зависимости от их значения.
2. Принимаемые параметры перечисляются внутри скобок при определении метода. Для каждого параметра указывается тип.
public int sum(int num1, int num2){
int result = num1+num2;
return result;
}

int number3 = sum(100, 300);
Слайд 23

Условный оператор Условный оператор if позволяет выполнять тот или иной код

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

Условный оператор if позволяет выполнять тот или иной код в

зависимости от указанного условия.
Условие указывается внутри круглых скобок ()
if (a>b){
//Блок кода который выполнится если условие выполняется
} else {
//Блок кода который выполнится если условие ложное
}
if (x == 100){
System.out.print(“х равна 100”);
} else {
System.out.print(“х не равна 100”);
}
Слайд 24

Условный оператор Условием для оператора if может быть любое логические выражение:

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

Условием для оператора if может быть любое логические выражение:
- True

или False
- переменная типа boolean
- результат операций сравнения >, <, ==, >=, <=, != - результат логических операций: ||, &&, !
if(True) // всегда выполнится
if(False) //никогда не выполнится
if(aBigger && cSmaller) // оператор логичекое И
if(aBigger || cSmaller) // оператор логичекое ИЛИ
if(!active) // оператор логичекое НЕ
При этом все переменные: aBigger, cSmaller, active типа boolean
Слайд 25

Видимость переменных Свойства класса тоже переменные, к ним можно получить доступ

Видимость переменных

Свойства класса тоже переменные, к ним можно получить доступ из

любого метода данного класса:
class Computer{
int memory;
public void method1(){
memory = 100;
}
private int getMethod(){
memory = 100 + 3;
return memory;
}
}
Слайд 26

Видимость переменных В теле каждого метода можно создать переменные: Они называются

Видимость переменных

В теле каждого метода можно создать переменные: Они называются локальными
class

Computer{
int memory;
public void method1(){
int count = 20;
memory = count * 45;
}
public void method2(){
memory = count * 34; //Ошибка
}
}

count – локальная переменная

Переменная count не определена в данном методе

Слайд 27

Видимость переменных Если имя локальной переменной совпадает с именем свойства класса,

Видимость переменных

Если имя локальной переменной совпадает с именем свойства класса, используется

ключевое слово this для обращения к свойству класса
class Computer{
int memory;
public void method1(){
int memory= 20;
this.memory = memory * 8;
}
}

локальная переменная memory

Свойство класса

Слайд 28

Массивы 1. Массивы предназначены для хранения множества значений одного типа. String[]

Массивы

1. Массивы предназначены для хранения множества значений одного типа.
String[] students; // объявление

массива
students = new String[]; //инициализация
students[0] = “Ernazar”; // иниц. первого элемента
students[1] = “Malik”; // иниц. второго элемента
students[2] = “Syrym”; // иниц. третьего элемента
Нумерация элементов начинается с 0
Также можно инициализовать массив перечислив все элементы сразу:
String[] students = {“Ernazar”, “Malik”, “Syrym”};
int[] days = {31, 29, 31, 30}; //массив int
Слайд 29

Массивы Длину любого массива можно получить через свойство length. int[] days

Массивы

Длину любого массива можно получить через свойство length.
int[] days = {31,29,31,30};
System.out.println(days.length);

// 4
Длину массива нельзя менять
Удалять и добавлять новые элементы тоже нельзя
При обращении к элементу которого нет, Java выдаст ошибку IndexOutOfBoundsException
int tenthDay = days[10]; // Exception
Слайд 30

Циклы Чтобы повторить один и тот же участок кода несколько раз,

Циклы

Чтобы повторить один и тот же участок кода несколько раз, используются

циклы.
Например: нам нужно напечатать все имена студентов
Студенты перечислены в массиве
String[] students = new String[13];
Без использования циклов получится:
System.out.println(students[0]);
System.out.println(students[1]);
System.out.println(students[2]);
System.out.println(students[3]);
System.out.println(students[4]);
System.out.println(students[5]);
System.out.println(students[6]);
….// и т.д.
Слайд 31

Циклы Все элементы массива можно обойти другим способом: for(String student: students){

Циклы

Все элементы массива можно обойти другим способом:
for(String student: students){
System.out.println(student);
}
Внутри круглых скобок

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

Циклы Оператор цикла for for состоит из четырех блоков for(int i=0;

Циклы

Оператор цикла for
for состоит из четырех блоков
for(int i=0; i<13; i++){
System.out.println( students[i]

);
}
int i =0 – начальная инициализация, не обязательно указывать
i<13 – условие окончания цикла, проверяется после каждой итерации цикла
i++ - пост операция – код который выполняется после каждой итерации цикла
Внутри фигурных скобок {} – тело цикла, которое выполняется при каждой итерации.