Переменные в Java

Преременные в Java

Переменная — это один из самых основных элементов в программировании поэтому существует во всех языках без исключения. В Java переменная — это поименованная ячейка памяти для хранения данных определённого типа. Для понимания можете представить камеру хранения в магазине у неё есть ограничения по размеру и ключ доступа.

Для создания (объявления) переменной нам нужно записать конструкцию согласно синтаксиса:

type name = <expression>;

где type — тип переменной, name — любое имя без пробелов, <expression> — значение или выражение результатом выполнения которого будет значение типа type.

[code language=»java»]
int number = 35;
double amount = 2453.45;
char ch = ‘@’;

int summa = 34 + 2;
boolean isPositive = 34 > 0;
[/code]

Тип переменной может быть как простым (примитивным) так и ссылочным. В случае простого типа, переменная хранит само значение, в случае же ссылочного переменная может хранить либо null (пустую ссылку, заглушку) либо ссылку на данные в памяти.
подробнее о типах данных в Java

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

[code language=»java»]
int a = 23;
int b = 17;

// эта команда выполниться в два этапа сначала java подставит
// значения переменных затем запишет результат в переменную
int summa = a + b; // int summa = 23 + 17; int summa = 40;

// я могу менять значение по желанию в этом случае
// предидущее значение переменной будет утеряно
summa = -1;
[/code]

Переменные ссылочного типа работают аналогично

[code language=»java»]
String name = "Oleg";
System.out.println(name + " loves Java!");

[/code]

При желании можно объявить переменные одного типа сокращённым вариантом, но я так никогда не делаю.

[code language=»java»]
int a = 0, b = 1, c = 2;
int d, e, f = 0;
[/code]

Видео из курса Основы Программирования даст вам немножко больше понимания о механизме работы переменных. Смотрите и решайте задачку Смотреть видео >>

Задача
Что компьютер выведет в консоль после запуска кода?

[code language=»java»]
int a = 10, b = 20, c = 30;
int sum = 0;

a = a;
b = a;
c = a;

sum = b + 5 * a;

System.out.println(sum);
[/code]

Область видимости переменных

Переменные в Java доступны только в пределах { блока обозначенного фигурными скобками } Может принадлежать классу, методу, блоку кода вроде if, while, for. При выходе из блока переменная вместе с её содержанием беспощадно уничтожается.

[code language=»java»]
int randomNumber = 10;

if (randomNumber > 0) {

int magicNumber = 2 * randomNumber; // randomNumber здесь достуна
System.out.println(magicNumber); // magicNumber здесь достуна
}

// magicNumber здесь уже безследно изчезает
// в отличии от randomNumber
System.out.println(randomNumber);
[/code]

Какие имена давать переменным?

Правило одно — элементарное. По имени программист должен понять что храниться в переменной. Длинная понятная переменная в 1000 раз лучше короткой не понятной. Важно! Понятная не только вам в момент написания кода, но и мне или вашей бабушке в момент его проверки :)

Есть соглашение по стандартам имён переменных. Должна начинаться с маленькой буквы, каждое последующее слово с большой. Имена констант заглавными буквами с подчёркиваниями между слов.

[code language=»java»]
String veryGoodNameIsSelfDescriptive = "";
String nameOfTheAuthor = "Oleg Yushchenko";

final int NUMBER_OF_BITS_IN_1_BYTE = 8;
[/code]

На эту тему тоже есть интересное видео >>

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

Как стать программистом и зарабатывать от $2000 в месяц.


Защита на курсе Основы Программирования

zashchita

Первое, самое простое.

Выполнить все задания, в том числе и домашние, первого, второго и третьего уроков.

 

Второе, потяжелее.

Выложить на gist две готовые программы и дать ссылки на них в своём дневнике на фейсбуке.

 

Магазин птиц.

— хранить данные о типе птицы, количестве птиц определённого типа, ценах и количестве проданных птиц

— должна быть возможность добавления товара в магазин и покупки птиц

— возможность изменения цен

— 5 методов-отчётов (любые напр. количество товаров на складе)

 

Технические требования

— программа должна быть написана в файле с названием Brids

— до запуска программы массив для хранения данных должен быть пустым

— должен присутствовать метод инициализации магазина (его задача набить тестовые данные в массив)

— метод main служит запуском ознакомления с возможностями программы (он должен содержать только запуск ваших методов и комментарии в виде sysout)

 

Танки, зачистка

— программа должна быть написана в файле с названием Tanks

— после запуска на поле боя появляется только танк и кирпичи

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

— программа должна выполняться независимо от расстановки кирпичей и их количества

— время зачистки должно быть вменяемым (условно до минуты, при нормальной скорости танка)

 

Третье, самое трудное.

Написать вывод по своей учёбе на курсе. Раскрыть следующие вопросы:

— как проходила учёба в целом

— что особенно понравилось, запомнилось

— что больше всего бесит

— достигнута ли поставленная на курс цель и почему

— что будете делать после успешной защиты (в рамках программирования)

 

Все задания необходимо выслать на oyushche@gmail.com

Тема

[защита ОП фев-15] фамилия, имя, отчество

Текст письма:

— ссылка на дневник в фб (нужно кликнуть на фотографию и скопировать ссылку, пример моей http://on.fb.me/1GfwVXd)

— ссылка на gist с программой Tanks

— ссылка на gist с программой Birds

— вывод по обучению в тексте письма последним пунктом

 

Сроки, место и время вы получите письмом. Вопросы пишите комментарием чтобы все видели.

 


Примитивные типы данных в Java

Примитивные типы данных в Java

Java строго типизированный язык программирования. Это означает, что типы всех выражений и переменных определяется на этапе компиляции. Тип определяет ограничения для значений переменных, результатов подсчёта выражений, количество поддерживаемых операций и определяет суть самих операций.

int — целые числа, основной тип
long — счётчик уникальных чисел, работа с временем и датами
double — числа с плавающей точкой
char — символы
boolean — логика
byte — передача даннх по сети, запись и чтение из файла

Типы в Java распределены на две категории: простые (примитивные) и [ссылочные (объектные)]. Простыми являются тип boolean и все числовые типы. Числовые типы распределяются на две категории целочисленные byte, short, int, long, char и числа с плавоющей точкой float и double.

Простые (примитивные) типы и их значения.

Простые типы в Java предопределены заранее и проименованы зарезервированными словами (keywords). Названия придётся запомнить к счастью их всего 8 штук. Размер и возможные значения всегда легко найти поэтому важнее понимать в какой ситуации стоит использовать конкретный тип.

Тип Размер Возможные значения (от..до)
boolean true или false
byte 8 бит -128..127
short 16 бит -32,768..32,767
int 32 бит -2,147,483,648..2,147,483,647
long 64 бит -9,223,372,036,854,775,808..9,223,372,036,854,775,807
char 16 бит 0..65,535
float 32 битa -3.4E+38..3.4E+38 (стандарт IEEE 754)
double 64 битa -1.7E+308..1.7E+308 (стандарт IEEE 754)

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

К целочисленным типам применимы все стандартные математические операции с учётом приоритета и скобок. Также операции сравнения, инкремент, дикремент, побитовые операции и операции сдвига.

int — основной целочисленный тип, используется в Java по умолчанию. Это значит что если вы пишете целое число оно будет рассматриваться компилятором как число типа int.

[code language=»java»]

System.out.println( 25 * 15 );

[/code]

В этом примере числа 25 и 15 будут рассмотрены как int и их произведение 375 тоже будет типа int. После подсчёта произведения число будет выведено в консоль.

Тип int наиболее удобен для компьютера из-за особенности конструкции вычислительных процессоров поэтому и используется по умолчанию. Используется в качестве счётчика циклов, индексов массивов и индексов символов в строках.

Все числовые типы в Java как бы закольцованы если к максимальному значению добавить единицу получим минимальное.

long — целочисленный тип содержащий, можно сказать, бесконечное количество значений. Используется в случаях, где числа превосходят 2 миллиарда и стандартного int уже не хватает. Используется в повседневной жизни для создания уникальных значений.

Например вы решили написать программу для магазина и вам нужно задать уникальный номер каждого из товаров на складе. Этот номер задаётся целым числом типа long с полной уверенностью, что чисел хватит с запасом. Диапазон long на столько велик, что мы можем пересчитать всё существующее не нашей Земле.

В результате вычислений мы можем неожиданно получить, на первый взгляд, совершенно фантастический результат. Это факт связан с автоматическим преобразованием типов. Поэтому каждое вычисление стоит внимательно проверять. Давайте рассмотрим на примере:

[code language=»java»]

int i = 1000000;
// результат -727379968 (в следствие переполнения типа int)
System.out.println( i * i );

long l = i;
// 1000000000000 (здесь всё в полном порядке)
System.out.println( l * l );

// получим арифметическую ошибку (ArithmeticException), деление на 0
System.out.println( 50224 / ( l — i ) );

[/code]

byte — используется для передачи данных по сети, записи и чтения из файла. В математических операциях, как правило, не используется.

short — самый редко используемый тип в Java, может использоваться только в целях экономии памяти.

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

Плавающая точка появилась здесь из-за особенности представления чисел, где до и после десятичной точки может находиться не фиксированное количество чисел например 2.4243, 24.243, 242.43, 2424.3 составляющие числа одни и те же, а значения разные.

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

Компьютер не может хранить все эти значения и распознавать их, поэтому было принято решение хранить определённый набор чисел и округлять все остальные к ближайшему из них. Если вы запишете в Java число 1.999999999999999999999 то получите в ответ 2.0

double — это числа с двойной точностью, максимально приближённые к заданным или полученным в результате вычислений значениям. Используется в Java для любых математических вычислений (квадратный корень, синус, косинус,..).

Исключением является работа с деньгами. Даже при самых простых операциях вроде начисления процента на депозит мы получим приблизительное значение и на больших объёмах округления могут превратиться в миллионы недочётов или переплат.

float — менее точный тип с плавающей точкой. Используется очень редко с целью экономии памяти.

Символьный тип

char — используется для представления символов. Символы преобразуются по таблице кодировки UTF-16. По большому счёту это все буквы, числа и специальные символы существующие на нашей планете. Каждому символу соответствует определённое число из таблицы и Java при виде этого числа в рамках типа char выводит его на экран как символ.

[code language=»java»]
char ch1 = 65;
char ch2 = 66;
char ch3 = 67;
char ch4 = ‘D’;
char ch5 = ‘e’;

System.out.print(ch1);
System.out.print(ch2);
System.out.print(ch3);
System.out.print(ch4);
System.out.print(ch5);
[/code]

После запуска выведет: ABCDe

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

boolean — может принимать одно из двух возможных значений true или false. Используется для принятия решений о выполнении блоков кода в зависимости от исходных данных в конструкциях if, while, do, for. Все операции сравнения (>, =, <=, !=, == и др.) возвращают результат типа boolean.

Приведение типов.

Язык программирования в отличии от математики привязан к реальному миру и заточен на выполнение реальных действий, поэтому суммировать или перемножать слонов с апельсинами здесь не получится. Мы не можем умножить строку «I love math» на 45.3 хотя теоретически мы могли бы написать правило преображения строки в число и спокойно их перемножить практического применения данная операция не имеет.

Приведение типов в Java — это правила по которым мы можем преобразовать один числовой тип в другой. Напомню, что числовые типы у нас byte, short, int, long, float, double и char

Код вроде

[code language=»java»]

long l = 3000000000L;
int i = 2147483647;
short s = 32767;
byte b = 127;
double d = 27.0;

s = b;
i = s;
l = i;
d = i;
[/code]

выполняется без вопросов и преобразования проходят автоматически поскольку один тип является подмножеством другого (включает все его значения). Если в математических выражениях используется несколько типов одновременно 34 (int) + 56.2 (double) то, сначала, они будут преобразованы в один, более широкий 34.0 (double) + 56.2 (double), а потом будут проведены подсчёты и результат будет более широкого типа, в данном случае double.

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

[code language=»java»]
long l = 27;
double d = 25.2;

int i = (int) l; // результат 27
int number = (int) d; // результат 25
[/code]

Все сюрпризы случаются при переполнении диапазонов типа.

[code language=»java»]

long l = 3000000000L;
int i = 2147483647;
short s = 32767;
byte b = 127;

i = (int) l; // результат -1294967296
s = (short) i; // результат 24064
b = (byte) s; // результат 0
[/code]

нам приходиться заставлять компьютер как бы урезать значение до рамок определённого типа. В таком случае наша программа будет вести себя крайне не очевидно и необходимо избегать урезания.

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

В программировании очень глупо использовать без крайней на то необходимости малоизвестные правила это ведёт исключительно к ошибкам работы программ, потере времени и денег. В современном мире Java приложений проблемы памяти, по умолчанию, не существует. Оптимизировать необходимо только тогда, когда это явно мешает и оперативную память невозможно докупить. Использование типов float и short стоит свести к минимуму, а то и вообще исключить.

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

Как стать программистом и зарабатывать от $2000 в месяц.


Установка и настройка TeamSpeak

Заходим на сайт TeamSpeak и качаем Client по ссылке и устанавливаем на свой компьютер.

Открываем меню Connections нажимаем Connect вводим ip адресс сервера, своё имя фамилию и пароль из письма.

ts2

 

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

ts3

Отключите голосовые сообщеиня в меню Self -> Sound Pack -> Sounds deactivated

ts1

Так же, есть возможность добавить соединение в закладки меню Bookmarks -> ManageBookmarks и пожалуйста выключите микрофон кликнув по кнопке микрофона сверху.


Строки в Java. Практическое применение.

Строки в Java. Практическое применение.

Строки в Java очень обширная тема поскольку тип String наделён уникальными особенностями связанными не только с представлением самого текста, но и с конкретной реализацией на уровне кода. Эту тему можно рассматривать на нескольких уровнях глубины.

Самый простой способ использования строки это вывод текста в консоль (на экран).

[code language=»java»]
System.out.println("How to use String type in Java");
[/code]

Для вывода мы пользуемся встроенной командой System.out.println(); В скобках указываем строку для вывода в двойных кавычках.

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

Переменные типа String

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

[code language=»java»]
String city = new String("Kiev");

String name = "Oleg";
[/code]

О переменных можно узнать больше из статьи >> подробнее о переменных в Java

Очень часто мы собираем строку по ходу выполнения программы. Для этого используется оператор плюс (+).

[code language=»java»]
String name = "Oleg";
int age = 31;

System.out.println("My name is: " + name);
System.out.println("I’m " + age + " years old.");
[/code]

Склеивание строк называется в простонароде конкотенацией. Если мы написали код, который склеивает строку с числом Java сначала переводит число в строку, а потом склеивает строки.

Что реально происходит при создании строки

Мы написали код
[code language=»java»]
String name = "Oleg";
[/code]

Java выделяет нам память на хранение объекта типа String, создаёт один большой ящик (массив), который состоит из 4 отделений для хранения символов и раскладывает каждый из символов по отделениям в ящике.

После этого записывает в свою таблицу переменных новую переменную "name" и ссылку на ящик (массив) с символами.

[фотка на ватмане]

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

[code language=»java»]
String stringToPrint = "I’m " + 31 + " years old.";
[/code]

1. Переводит число 31 в строку
2. Создаёт в памяти 3 объекта типа String со значениями: "I’m ", "31" и " years old."
3. Создает в памяти 1 объект типа String содержащий склеенную строку "I’m 31 years old."
4. Создает переменную stringToPrint и присваивает ей наш объект (склеенную строку).
5. Уничтожает предидущие 3 строки.

Сравнение строк

Существует с десяток методов для сравнения строк, я вам покажу несколько самых ходовых.

equals, equalsIgnoreCase — самый стандартный сравнивает содержание строк если совпадает полностью и возвращает true иначе false обращая внимание на заглавные и прописные буквы соответвенно названию.

startsWith, endsWith, contains — проверяет приставку, окончание и содержание подстроки соответственно названиям.

[code language=»java»]
String anyString = "kademika";

anyString.equals("Kademika"); // false

anyString.equalsIgnoreCase("Kademika"); // true

anyString.startsWith("kad"); // true

anyString.endsWith("ika"); // true

anyString.contains("demi"); // true
[/code]

compareTo, compareToIgnoreCase — сравнивают две строки согласно условному алфавиту и возвращают:

отрицательное число — если первая строка меньше второй
ноль — если равны
положительное число — если первая строка больше второй.

Эти методы, в большинстве случаев, используется для сортировки строк.

[code language=»java»]
String ka = "ka";
String ak = "ak";

int result = ka.compareTo(ak);
System.out.println(result);
[/code]

Основные методы типа String

Тип String в Java является ссылочным (объектным), соответственно он может отвечать на определённый этим типом набор запросов. Другими словами, содержит ряд методов для работы со строками, что очень сильно упрощает жизнь программистам.

Длинна строки

Метод length — возвращает количество символов в строке.

[code language=»java»]
String anyString = "abra kadabra";
System.out.println(anyString.length()); // выведет 12
[/code]

Символы

Компьютер понятия не имеет о существовании текста, строк и символов. Для работы с этими понятиями были созданы механизмы кодировки символов через целые числа. В Java существует специальный тип char, который переводит числа в символы согласно таблицы.

Когда мы создали строку, Java записала её в массив символов, где каждый символ представлен значением типа char (целым числом от 0 до 65,535).

Каждый символ стоит в строке под своим номером (индексом) начиная с нуля. Например, в строке Олег у нас будет 4 символа с индексами:

О — 0
л — 1
е — 2
г — 3

Такая система хранения текста позволяет нам совершать ряд очень удобных операций со строками достаточно быстро.

Индекс символа

Метод indexOf возвращает индекс символа в строке есть в нескольких вариантах. Первый выводит индекс символа начиная с начала строки, второй начиная с переданной позиции, третий определите самостоятельно.

[code language=»java»]
String anyString = "abra kadabra";
anyString.indexOf(‘a’); // выведет 0
anyString.indexOf(‘a’, 3); // выведет 3
anyString.indexOf("kad"); // выведет 5
[/code]

В случае отсутствия символа в строке возвращает -1.

Символ по индексу

Метод charAt возвращает символ по заданному индексу

[code language=»java»]
String anyString = "abra kadabra";

char ch = anyString.charAt(2); // вернёт ‘r’
ch = anyString.charAt(9); // вернёт ‘b’
[/code]

В случае отсутствия символа в строке возвращает ошибку StringIndexOutOfBoundsException.

Подстрока

Идеально показано в ролике Смотреть видео >>

Метод substring вырезает и возвращает подстроку из заданной строки. Первый вариант вырезает от указанного индекса до конца строки второй подстроку между указанными индексами.

[code language=»java»]
String anyString = "abra kadabra";

String substring = anyString.substring(5); // вернёт kadabra
substring = anyString.substring(5, 8); // вернёт kad
[/code]

В случае отсутствия переданных индексов возвращает ошибку StringIndexOutOfBoundsException.

Замена подстроки

Метод replace — заменяет все подстроки совпадающие с первым параметром на подстроку указанную во втором. replaceFirst, replaceAll — делают то же, только используют более мощную и гибкую технику для поиска подстрок по шаблону (регулярные выражения, regexp читать на википедии)

[code language=»java»]
String anyString = "abra kadabra";

// вернёт abra kademika
String newString = anyString.replace("kadabra", "kademika");

// вернёт ab21 kadabra
newString = anyString.replaceFirst("ra", "21");

// вернёт ab21 kadab21
newString = anyString.replaceAll("ra", "21");
[/code]

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

Задания на закрепление

1. После запуска System.currentTimeMillis(); вы получите время в миллисекундах прошедшее с 1 января 1970 года. Выведите на экран это число в удобном для человека формате D:H:M:S (D — количество дней, H — часов, M — минут и S — секунд).

2. У вас есть переменная: double value, которая может содержать любое значение.
Напишите код, который выведет на экран целую и дробную часть числа.
Пример: value = 25.6 => 25 и 6

Вы можете использовать String.valueOf() чтобы получить строку из числа.

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

Как стать программистом и зарабатывать от $2000 в месяц.


Методы в Java

Методы это фундаментальный элемент в программировании он присутствует во всех языках без исключения и работает в целом одинаково.

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

Если обернуться вокруг мы можем выделить тысячи методов в своей повседневной жизни. Например телевизор, мы незнаем как он работает, но мы знаем, что на вход подаётся сигнал. Он может идти через антенну или кабель. А, на выходе, мы получаем результат изображение со звуковым сопровождением. Включить телевизор, переключить канал, добавить звука — это всё методы, которые работают о одной схеме: входящий сигнал (параметры метода), коробочка которая что-то там делает с этим сигналом (тело метода), смена канала или звука (результат выполнения).

Методы в Java

Кому принадлежат методы

Как бы мне не хотелось рассказать исключительно о методах приходиться разбирать их в контексте класса или объекта. Дело в том что Java язык объектно ориентированный и самостоятельной единицей является класс (отдельный файл). Чтобы запустить любую программу нам необходимо выполнить два условия:

1. Создать файл AnyNameYouWant.java, название класса в файле должно совпадать с названием файла.
2. Добавить туда метод запуска программы с названием main.

[code language=»java»]
public class AnyNameYouWant {

public static void main(String[] args) {

}
}
[/code]

После запуска наша программа приступит к выполнению нашего кода с метода main. Метод main должен быть записан именно в такой форме иначе вы получите ошибку сообщающую об отсутствии метода main.

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

Как создать метод

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

[code language=»java»]
public static int printSumma(int a, int b) {

int summa = a + b;

return summa;
}
[/code]

Я создал метод printSumma который принимает на вход два целых числа и возвращает их сумму. Синтаксис очень простой пишем public static затем тип возвращаемого результата перед именем, в данном случае int, для того чтобы наш метод смог вернуть результат. Это может быть любой тип, зависит то того результата который мы желаем вернуть.

В круглых скобках указаны входящие параметры. Параметров может быть сколько угодно, компьютеру всё равно, но советую подавать не более трёх. Сначала идёт тип параметра потом его имя. В теле метода мы видим параметры как внутренние (существующие только в этом методе) переменные с соответствующими именами. По сути они никак не отличаются от обычных переменных. Java, как бы, объявляет их за нас и проставляет значения указанные при вызове метода. подробнее о переменных в Java

В теле метода необходимо указать ключевое слово return и за ним значение которое хотим вернуть.

2. Нам не всегда необходимо возвращать результат. Для такого случая существует ключевое слово void, мы пишем его вместо возвращаемого типа.

[code language=»java»]
public static void printSumma(int a, int b) {

int summa = a + b;

System.out.println(summa);
}
[/code]

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

3. Выполняет в изоляции одну задачу, без входящих данных и не возвращает результата.

[code language=»java»]
public static void summa() {

int a = 10;
int b = 17;

int summa = a + b;
System.out.println(summa);
}
[/code]

Метод достаточно дубовый, суммирует два конкретных числа и выводит результат на экран. Такой формат метода используется постоянно на данном этапе объяснить вам его полезность можно только косвенно. Я приведу примеры из реальной жизни чуть ниже.

Вызов метода

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

[code language=»java»]
public static void main(String[] args) {

int summa = summa(10, 17);
System.out.println(summa);

summa = summa(13, 14);
System.out.println(summa);

summa = summa(9, 18);
System.out.println(summa);
}

public static int summa(int a, int b) {

int summa = a + b;
return summa;
}
[/code]

Я добавил ключевое слово static оно необходимо чтобы вызвать наш метод из главного метода main без создания объекта. Не стоит пытаться понять если не поняли это не важно на данном этапе, поставьте себе это слово и запускайте программу точно так же как и public :)

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

Задания на закрепление

1. Создайте метод public static void print(), который печатает ваше имя в консоль и запустите его из метода main.

2. Мзмените метод print так, чтобы он принимал имя как входящий параметр.

3. Создайте метод подсчёта общей суммы покупки телевизора в кредит. Расчёт бедет вестись на основе начальной суммы покупки и годового процента.

Методы без параметров и результата

Эти методы не принимают параметров, но в большинстве случаев имеют доступ к переменным объявленным на уровне класса (файла), и по сути своей имеют входящие данные.

[code language=»java»]
public class AnyNameYouWant {

static int summa = 0;

public static void summa() {
int a = 10;
int b = 17;

summa = a + b;
}

public static void main(String[] args) {
summa();
System.out.println(summa); // выведет 27
}

}
[/code]

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

Что означает static

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

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

Как стать программистом и зарабатывать от $2000 в месяц.


Почему я женился на КА

Всё началось примерно 18 лет назад, когда я учился в школе, во времена когда в домах небыло ни компьютеров ни интернета, были только телевизоры и игровые приставки. У меня была Dendy, очень крутая мне брат привёз из Польши вроде. Она была на столько крутая, что джойстики не ломались и приставка не разлеталась даже после удара о бататею. Я знаю потому что бабушка время от времени так делала когда мы с друзьями сидели днями возле телевизора с очередной игрой. В итоге я продал её своему однокласнику и купил что-то новое уже не помню даже. 

Мне всегда хотелось создать нечто подобное, свою собственную игру, но единственный шанс тогда был — ждать урок информатики в 10 классе и получить доступ к компьютеру.

Час настал, но всё случилось с точностью до наоборот относительно моих представлений. Компьютеры в школе были просто кучей металолома, а о программирвании я уже знал в 5 раз больше учителя информатики. В школе у меня был интересный компьютер “Робик”, который подключался к телефизору и магнитофону, вы же помните что такое магнитофон? Вот фотки на всякий случай.

majak

robik

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

Реальное программирование началось в институте, на первом курсе мне купили нормальный компьютер приблизительно за $1000, пентиум 800 с монитором 17. На нём я просидел практически весь институт. Там я научился программировать.

На четвётром курсе мне предложили работать java программистом. Хитрые преподаватели организовали контору, нашли заказчики в Латвии и эксплуатировали наши молодые души. Мне было без разницы, работал я с несколькими однокурсниками каждый день без выходных! Зарабатывал чуть больше остальных, работал лучше всех и мне премией выдавали часть их запрлат, что-то около 1500 грн. Это для меня были сумашедшие деньги :)

Вторая моя страсть — образование. Я просто немогу не учиться в принципе. Всегда читаю что-то или смотрю, у меня есть список книг на будущее, там около сотни наперёд.

 Где-то лет 5 назад я ушёл с работы программиста чтобы создать собственную компанию и собственный программный продукт. Всё закончилось оригинально, полным провалом и интересным опытом, найма на работу, офисов, костюмов, машин и жизни без денег.

 Меня всегда раздражало то, очень мало программистов действительно что-то понимают в программировании. И каждый из них ругает код своих товарищей. Я это знаю из опыта потому что сам создавал не одну команду программистов работая на работе и на себя, провёл несколько сотен собеседований на разные позиции от безопытного птенца до матёрых пятидесятилетних программеров.

 К сожалению до сегодняшнего дня мне не удалось найти ни одной действительно хорошей школы программирования и в какой-то момент времени я решил создать свою. Сначала это было больше хобби и помощь своим знакомым и сотрудникам, потом уроки по скайпу, потом Компьютерная Академия с отличным курсом с нуля к профессии Java программист, где мы учим всё что необходимо для работы.

 За это время я нашёл хороших помощников и моих друзей, у нас много планов на будущее ведь, на сегодняшний день, программирование это самая востребованная и высокооплачиваемая профессия в мире.

 Буквально на этой неделе я для себя составлял список из 50 преимуществ нашей Академии и сам удивился чего нам удалось достичь за такой относительно короткий срок, но есть и ещё больший список куда нам стоит идти, что необходимо улучшить, а что вообще переделать по новому.

 Мы уже создали школу куда может прийти парень или девушка с мечтой как я около 18 лет назад и с максимальной скоростью и эффективостью перевоплатиться в программиста. Всё что нам осталось делать это оттачивать и совершенствовать этот процесс, делать его лучше и лучше до безконечностьи.

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

 Наша школа — это круг людей сформированный естественным образом вокруг общей цели, создавать и развавать программные продукты, которые несут непоправимую пользу людям.

Ах да, чуть не забыл, мы проводим главный однодневный тренинг по программированию. БЦ Гулливер, Киев. Это крутая тусовка, где мы за один день учимся программировать, хорошо проводим время и едим пиццу. Предварительная запись и оплата обязательна.

green-button


Пионер всегда готов!

Пионер всегда готов!

Эта статья для учеников Академии, здесь я собрал всё чем мы пользуемся во время занятий.

1. Регистрация на сайте и доступ к занятиям. Здесь же, мои рекомендации по вопросам как правильно заниматься в классе.

Об этом целая статья и видео — Как проходят занятия по java

2. Установить JDK и Eclipse. Рабочая среда

3. Создать проект с названием в формате kademika-jd-date-fullname, который содержит структуру папок и файлов. (Название проекта содержит информацию о вас kademika-jd- означает, что ты учишься на курсе java developer. Далее, индивидуально date — месяц  и год вашей группы jan14, feb15, mar15 и fullname — имя через точку oleg.yushchenko)

4. Добавить себя в группы Facebook

Эти группы служат двум очень важным задачам:

— ваше мнение по ключевым вопросам урока, их можно найти в статье — Ключевые моменты по урокам курса Основы Java

— ваши выводы после каждого дня учёбы, это ваш дневник где нужно вести записи каждый день по ходу курса

5. Купить книгу Java Programming 24-Hour Trainer. Чатаем её по ходу курса.


Что думают другие о моём курсе?

Думаю вам интересно будет знать, что думают о моём курсе те, кто его закончил. По новому Основы Java я дать ничего не смогу, могу только сказать, что он будет намного лучше старого. Вот, как и обещал, парочка комментариев ребят с моего онлайн курса по Java. Я проводил его удалённо потом выложил видео на meandjava.com. Курс был для ребят техническим образованием, но они никогда ничего не писали на Java. График был очень плотным 2 занятия в неделю по 2,5 — 3 часа, стоимость $1000.

Мария

Я работаю консультантом в Business Intelligence и использую Business Objects – специальный софт для разработки отчетов. 
Иногда эти отчеты становятся довольно сложными, количество переменных используемых в отчетах достигает сотен, а стандартные возможности инструмента позволяют просматривать переменные только последовательно, открывая одну за другой. Иногда хочется видеть список переменных вместе с формулами в них содержащимися.

После курса JAVA мне удалось написать небольшое приложение на JSP с использованием Business Objects JAVA SDK, расширяющее стандартные возможности инструмента. Я отображаю список отчетов в браузере и со страницы со списком могу перейти к странице с детальной информацией о каждом отчете (информацией о всех переменных). Одно это небольшое усовершенствование позволяет мне гораздо более эффективно выполнять свою работу.

Я также планирую написать инструмент для визуального создания ссылки из одного отчета в другой – в настоящее время чтобы создать такую ссылку приходится вручную создавать переменную с гиперссылкой в главном отчете и прописывать в ней ID подотчета и все передаваемые параметры. Создание такой ссылки может занимать от 30 минут до нескольких часов. С новыми приобретенными знаниями я хорошо представляю себе как усовершенствовать этот процесс с помощью JAVA. Я хочу чтобы для создания ссылки приходилось всего лишь выбрать подотчет из списка доступных на сервере документов и связать между собой параметры главного отчета и подотчета. Это усовершенствование не только ускорит создание сложных отчетов, но и позволит работать с подотчетами менее техничиски подготовленным консультантам.

Я вижу также много других вариантов оптимизации своей работы с использованием JAVA и JSP, вплоть до частичной автоматизации процесса разработки отчетов. Данный курс несомненно вдохновил меня и помог увидеть новые возможности в своей работе, а также, хочется верить, повысил мою ценность на рынке труда. Я совершенно уверенна в том, что это было разумное вложение моего времени и денег, которое так или иначе окупится в будущем.

Олег, еще раз спасибо тебе за этот курс, твое терпение и помощь во всем, что касалось курса.
Удачи тебе в этом деле. 

Маша

Александр

Благодаря этому курсу я получил как теоретическое представление, так и практические навыки в разных аспектах Java начиная от синтаксисом языка и заканчивая такими сложными темами как распределенные приложения и javaEE.

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

С уважением,

Александр

 


Что делать дальше?

Думаю, каждый из вас задаёт себе вопрос вроде этого: «Ну освоил я курс Основы Java, и куда потом, — на работу ещё рано, не легче мне найти курсы, где я сразу «получу диплом» и пойду на работу? Пусть, возможно, там будет не так круто, но зато, как говорится «всё включено»».

Мой ответ — нет, не лучше! И на это есть три причины:

Первая.

Я говорил, что у меня есть сайт meandjava.com. Там есть 3 курса: Базовый, Основной и Бизнес.  Я сейчас работаю над переводом этих трёх курсов в режим онлайн, поскольку считаю такой путь обучения наиболее эффективным. Перевод первого курса будет готов к 9-му сентября и вы сможете приступить к занятиям, а я буду переводить следующие два курса.

После того как вы закончите первый курс, мы сразу же перейдём ко второму, а потом к третьему. По окончании всех трёх курсов вы будете, гарантировано готовы к работе на позиции Java Junior и мы организуем вам несколько собеседований в крупных киевских компаниях. На последнем уроке мы разберём все основные вопросы собеседования и вы будете более чем готовы.

В каждом курсе по 9 уроков, поэтому подготовка займёт 7,5 месяцев (один урок в неделю), между курсами у вас будут перерывы в неделю-две для того чтобы отдохнуть и переварить огромный объём информации.

Все три курса с учителем будут проходить сезонно, то есть 4 раза в год осенью, зимой, весной и летом. Не волнуйтесь, если по какой-то причине у вас не получится выделить время — ведь вы всегда сможете продолжить обучение в следующем сезоне. Так же, по завершению перевода курсов на платформу midgardabc вы сможете заниматься самостоятельно в любое удобное для вас время и с любой скоростью задавая все интересующие вас вопросы по почте.

Вторая.

Никто, никто, никто не может вам гарантировать трудоустройство!!! Посудите сами, поставив себя на позицию работодателя. Допустим, я как работодатель заключил соглашении со школой и знаю, что там отлично готовят специалистов. То есть о технических вопросах я не волнуюсь, но самое главное не техническая подготовка, а сам человек. Вы можете быть гением и знать Java вдоль и поперёк, но не впишетесь в команду, не сможете решать задачи в срок, ваш внешний вид и запах будет раздражать начальника,… и так далее. Здесь может быть тысяча причин. Единственное где вам могут чего-то пообещать — это в школе принадлежащей самой компании, но таких, как правило, очень мало и набор жёстко ограничен. Будьте уверены, с вами проведут интервью ещё до того как вы в такую школу попадёте. Если не проведут, то их задача -взять студентов, дать заработать преподавателю, выбрать пару-тройку лучших, если будут вакансии, а остальных вежливо попросить подождать пока не появятся новые проекты. Как вас возьмут, если мест нет? Большая компания всегда найдёт место для хорошего специалиста, но для новичка — извините. Все хорошо понимают, что первый год, а то и два, вы будете в лучшем случае не отвлекать других программистов и занимать их время. Я уже молчу о том, что никто, даже близко, не сможет предположить как вы впишетесь в проект.

И, думаю, здесь есть один минус — если вас не взяли на работу в компании, где вы проходили курс, первым вопросом нового работодателя будет: «Почему вас туда не взяли? Может вы идиот или никого не хотите слушать и на все вопросы у вас свои ответы?»

Короче, я веду к тому, что в лучшем случае вам смогут помочь попасть на собеседование и подготовить к нему, а дальше дело за вами!

Третья причина.

Мы единственная школа, которая готовит «программистов», а не «кодеров». Давайте разберёмся чем эти два понятия отличаются. Это лично мои термины и их трактовка.

Кодер — это человек, который, в лучшем случае самостоятельно делает то, что  ему говорят. Ему по большому счёту плевать, что конкретно он пишет, если ему предложить повышение — он будет готов слинять в другую контору и писать там самую ужасную программу в мире, которой никто никогда не будет пользоваться. Он может прекрасно знать техническую сторону, выучить все команды, сдать все сертификации, но, это не поможет ему стать программистом. Главной особенностью кодера является увиливание от ответственности, он никогда не выйдет на передовую и не поставит под удар свою карьеру. Главная его задача — выйти сухим из воды.

Программист для меня — это человек, профессионал своего дела, который всегда выполнит задачу любой сложности и несёт полную ответственность за своё дело. Он не считает себя самым «крутым» и не идёт напролом к своим целям, скрывая всё, что знает сам и подставляя окружающих ради славы, статуса или большей зарплаты. Он уверен в себе потому, что у него нет проблем в личной жизни. Он твёрдо знает куда идёт и к чему стремится. Он понимает как правильно распределить своё время и как не профукать все заработанные деньги. Он знает как поддержать своих коллег и поправить их ошибки, при этом не унизив и не обидев.

Чтобы стать программистом вы должны будете вкладывать Душу в свой труд с самого первого дня. Конечно же, вы не сможете стать программистом за 7,5 месяцев, на это у вас уйдут годы труда, но мы дадим вам направление и поможем сделать первый шаг.