hoxnap

hoxnap

пикабушник
4803 рейтинг 114 подписчиков 1211 комментариев 60 постов 2 в "горячем"
1 награда
5 лет на Пикабу
5

Джава-1,5

Привет. Напоминаю в рамках тега изучениеджава (для хейтеров) я вместе с вами изучаю основы джава. В сегодняшнем посте узнаем о структуре кода в Java. Пост небольшой и является предпосылкой к понедельнечному посту (который переноситься на среду 24.02.16 ввиду выходного), чтобы не нагружать большим объёмом информации разово, дать немного осмыслить и задать вопросы.

В прошлом посте мне посоветовали код вставлять изображениями. С одной стороны, в таком виде код более читабелен и даёт более ясное представление о структуре программы, с другой стороны не скопипастишь. Копипаст, в данном случае - плохая вещь. Из личного опыта: в школе я обучался QBasic'у, у нас было что-то наподобие методичек. Нам давалось 30 минут на изучение главы (по три-четыре страницы на главу), в это время мы могли кодить-экспериментировать, спрашивать по непонятным моментам у препода, после чего шла письменная проверочная с 2 задачами (методичка оставалась при учениках). По тем главам с которых я набирал код у меня было 4-5, а когда я прочитал, подумал что понял, схлопотал 3. В текущем и последующих постах я буду вставлять код в виде изображений, а в конце главы (или отдельным комментарием) текстовое представление кода.

В предыдущем посте было обозначено, что такое исходный код. Так вот, исходный код является начальной точкой на пути программирования в Java. Именно от того как написан исходный код будет зависеть будет ли и как будет работать написанная программа. Запускаем eclpise. File>New>Project. Имя проекта Nux, остальное без изменений. Finish. Кликнем ПКМ по NUX в Project Explorer. New>Class. Имя класса также Nux. Ставим галочку напротив public static void main (String[] args). OK. В результате должно появиться следующее (я добавил несколько пустых строк, чтобы выделение не перекрывало символы):

Джава-1,5 Java, Длиннопост, Программирование

Разберём что есть что. Для начала представим, что мы варим суп (так будет легче)

Под номером 1 выделен класс. Это кастрюля, в которой мы варим суп. Можно увидеть, что чёрными овалами выделены и две фигурные скобки - открывающаяся и закрывающаяся. При помощи таких скобок человек указывает границы - начало и конец, класса (и некоторых других вещей). Если попробовать поместить вне границ <s>кастрюли</s> класса какую-либо надпись, появится предупреждение об ошибке. Практически весь код должен быть написан внутри класса (овощи вы ведь режете ножом, так и в джава есть свои "ножи" до них ещё далеко).

public (созвучно с "публичный") - модификатор доступа, слово, которое обозначает кто и что может сделать с нашим супом. В данном случае все, кто живёт с нами могут заглянуть и посмотреть, что в кастрюле, а ещё заменить всё мясо на картошку. Private (аналогия "приватная вечеринка") означает, что посмотреть содержимое кастрюли могут только те, кто находится в кастрюле (чёрный юморок). Таких модификаторов много, мы их рассмотрим позже.

class - та самая кастрюля.

Nux - имя класса, в суповом измерении цвет и размер кастрюли. Именно это имя мы будем использовать, чтобы попросить какое-либо значение из другого класса (или, иногда, даже программы). Однако необходимо учитывать несколько правил при выборе имени класса:

* имя должно начинаться с буквы, остальная часть буквы и/или цифры. Использование в качестве имени "1nux", "nux dss" или "nux@" вызовет ошибку. Хотя и возможно использовать в качестве разделителя нижнее подчёркивание "_", в Java принято вместо "My_name_is_Vasya" использовать "MyNameIsVasya"

* следите за регистром (это касается всего кода): Main; mAin; main и MAIN - разные вещи. Иными словами, если в имя класса Nux, то попытка использовать в другом месте nux вызовет ошибку (или обратится к классу nux)

* отсюда ещё один пункт, старайтесь не называть классы похожими именами. Nix; Nlx; N1x - плохой пример для имени.

* в качестве имени нельзя использовать некоторые слова (например, public, class, ...), такие слова называются зарезервированными. Список этих слов я предоставлять не буду, если вы вдруг напишите в качестве имени зарезервированное слово, появиться предупреждение об ошибке.

Теперь рассмотрим область, выделенную красным (2). Это так называемый метод. Как видите он тоже органичен фигурными скобками. Внутри метода пишутся те самые строки, которые и будут выполнять какую-либо работу: что-нибудь посчитать или сравнить, картинку показать, нажатые клавиши записать. Метод по сути является ингредиентами супа, а то что в них написано составляющими ингредиентов (у свёклы, например, это сахар, красящее вещество, остальная приблуда). Таким образом работа программы (как и вкус супа) будет зависеть от того что мы в ней напишем. Если мясо тухлое, то с хорошими овощами суп всё равно будет не вкусный. Работа программы выполняется, начиная с метода main. Теперь по словам:

* public - аналогично тому что в классе. Модификатор доступа main'a может быть только public

* static void - пока не заморачиваемся, если интересно погуглите, но я расскажу об этом не сейчас.

* main - имя метода

* (String[] args) – аргумент метода. Можно посчитать его за рецепт супца. Кто-то кладёт в щи квашенную капусту, а кто-то свежую. Так же и результат программы можно изменить, указав ей аргументы (конечно, если использует аргументы и на их основе выполняет ту или иную свою часть). Возможно вы запускали какие-то игры с параметрами (через свойство ярлыка на программу) типа –god; -DEVMODE; -sv_cheats_1.

Стоит отметить: мы можем создать несколько методов main(), Main(), main(Strings[] args). В данном случае основным будет считаться последний (аргумент является решающим фактором)

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

* Однострочный. Начинается с двух косых чёрточек // и заканчивается в конце строки. Пример:

// эта строка прибавляет один к иксу

* Многострочный. Начинается с /* заканчивается */ . Пример:

/* Эти 100+ строк пересчитывают бухгалтерскую документацию

С учётом факторов погоды, кофейной гущи и великих шнурков рандома */

* Документационный. При помощи инструмента Javadoc можно создать HTML-версию инструкции по использованию какой-либо части кода. Начинается с /** , каждая строка должна в начале содержать звёздочку, заканчивается */ . Пример:

/**

* <p>И достал он нефритовый стержень</p>

* <p>И воткнул в жабу богомерзкую</p>

*/

Вот тут можно почитать о необходимости комментариев.

И тут.

Показать полностью
4

Джава-1

Привет. Ну чтож джава, так джава. (для хейтеров тег изучениеджава)

Данная статья будет нудной и скучной, но в конце будет пряник.

Java был создан компанией Sun Microsystems в 1995 и развивался до 2008. В 2009 для компании чуть не наступил п****ц и её поглотила Oracle, в которой на Java было положено вплоть до 2011. На данный момент джава (по некоторым данным) занимает первое место в рейтинге языков.

Говорить что Java - язык программирования не совсем верно. Скорее Java - система, включающая бла, бла, бла. Так говорят в целом несколько источников.

Что же такое Java простым языком? Будем считать Java рукой. Взгляните на руку, которая у вас на мышке (тачпаде, экране, ..). Разделим её <s>бензопилой</s> мысленно на плечо, предплечье, ладонь и пальцы. Как и части в руке, так и части (компоненты) в Java взаимодействуют между собой. Наверно единственное отличие в том, что Java может обходиться без пары-тройки частей, а поковырять в носу без пальцев будет трудновато.

Вам наверно хочется спросить: "Что же это за компоненты и как они взаимодействуют?".

Джава-1 Изучениеджава, Длиннопост, Программирование, Java

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

Компилятор преобразует исходный код в файл написанный по правилам из всё той же библиотеки - исполняемый файл. Перевод кода понятного человеку в код для машины (компьютер, планшет, терминал ...) называется компиляцией.

Теперь у нас есть код скомпилированный по правилам библиотеки. И вот тут появляется основное отличие от многих из других языков. Многие языки при компиляции создают программу, заточенную под конкретную операционную систему и/или разрядность. То есть программа, написанная в MacOS не будет работать в Windows, или программа, написанная на старой Windows XP возможно не будет работать в семёрке, и наоборот. Представьте, что вы умеете играть на гитаре, но вдруг вам в первый раз дают в руки фортепьяно. Что-нибудь лёгкое (в траве сидел кузнечик) вы конечно сыграете, не сомневайтесь. Более сложная композиция, увы, вряд ли у вас получится. То же самое происходит и при попытке запустить программу, созданную в другой операционной системе (в дальнейшем ОС).

Java обходит эту проблему следующим образом. Формат и содержание скомпилированного в файл кода не зависят от ОС. Более того этот самый код вообще не понятен никакой из ОС. А понятен он только для специальной программы - Java Virtual Machine (JVM - виртуальная машина Java), которая написана на конкретные ОС (). Именно JVM преобразует скомпилированный код в понятный для конкретной ОС: JVM читает из файла с кодом определённую часть, обращается к библиотеке чтобы узнать что должна делать эта часть и переводит эту часть в язык понятный конкретной ОС. Скомпилированный в данном и подобных случаях код называется байт-кодом.

Скорее всего на вашем компьютере установлена JVM, с помощью которой работают несколько приложений. Помните я говорил, что Java может работать без некоторых частей? Так вот этими частями являются средства для разработки программ. Сейчас мы с вами их установим. Для начала нам нужна та часть с помощью, которой мы и будем программировать, возможно она у вас есть. Чтобы проверить это откройте командную строку и наберите: Java -version

Если у есть Java, то будет выдана её версия, у меня, например, стоит 1.8.0.73. Если нет, то идём сюда и качаем JDK SE (средства разработки на Java - стандартная) последней версии.

При установке вам предложат установить в C:\Program Files\Java\jdk(тут версия), Program Files лучше убрать. Установили? прекрасно. Зайдите в папку в которую вы установили Java и посмотрите, что же там есть: в папке jre находится всё необходимое для работы приложений написанных на Java (то есть если мы не хотим программировать на Java остальные папки нам не к чему); папка db служит для развёртывания Apache'евской базы данных (нам до туда как до луны пешком); include (в ней находятся с++ и c скрипты) пока тоже не для нашего внимания; лицензионные соглашения, ридми, приветствие от разработчиков Java; в папке bin находятся компилятор и помощники в разработке на Java.

Чтобы легко работать со средствами из папки bin нужно выполнить следующие шаги:

* откройте меню панель управление, выберите пункт система (система и безопасность\система)

* дополнительные параметры системы (слева), вкладка дополнительно, переменные среды

* в системных переменных найдите Path

* добавьте в начале путь к папке jdk\bin поставив точку с запятой на конце (у меня C:\Java\jdk1.7.0_79\bin;) (если путь содержит пробел его необходимо заключить в кавычки "C:\Program Files\Java\jdk1.7.0_79\bin"; )

* ок, ок, ок, закрыть.

Всё сделали правильно? проверка: Java -version

Папка lib (посмотрите она почти похожа на ту что находится в папке jre, но чуть побольше), логично предположить что это стандартная библиотека для пользователей плюс немного для разработчиков. Так оно и есть это та самая библиотека

Исходный код этой библиотеки находится в src.zip. Рекомендуемая распаковка архива:

* создайте папку src и переместите туда архив.

* запустите командную строку

* выполните команду cd /d путь_до_папки_src (у меня cd /d C:\Java\jdk1.8.0_73\src )

* выполните команду jar xvf src.zip

Если вы следовали инструкции то, скорее всего в командной строке у вас помчится длинный список, а в папке src появятся 6 новых папок. Когда мы поймём язык джава, здесь можно будет посмотреть, как что работает.

Здесь можно посмотреть документацию по Java

Теперь можно писать программки в блокноте, после с помощью командной строки компилировать, а потом и запускать. Если ошибка то всё заново - долго, неудобно.

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

Качаем Eclipse IDE for Java EE Developers. При запуске у вас спросит папку куда по умолчанию будут сохраняться коды программы. Можете выбрать единожды и поставить галочку чтобы больше не спрашивало.

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

* запускаем eclipse

* file -> new -> project

* Java project -> Next

* в Project name - fractal

* use defult jre

Джава-1 Изучениеджава, Длиннопост, Программирование, Java

* finish

* no

* в списке слева щёлкаем правой кнопкой мыши по fractal

* new -> class

* в поле naim вводим fractal

* открываем fractal.java и вводим следующий код

import java.awt.Color;

import java.awt.Graphics;

import javax.swing.JFrame;

import javax.swing.JPanel;


public class fractal {

private static final double SX = 0.005;

private static final double SY = 0.005;

private static final int WIDTH = 640;

private static final int HEIGHT = 480;

private static final double DX = -350;

private static final double DY = -235;

private static final int COUNT_ITER = 100;

private static final int BAIL_OUT = 16; //вот тут можно поиграть

private static final int STEP_X = 10; //и тут

private static final int STEP_Y = 10; //и тут


private static void drawClouds(Graphics g) {

for (int i = 0; i < WIDTH; i += STEP_X) {

for (int j = 0; j < HEIGHT; j += STEP_Y) {

double c = SX * (i + DX);

double d = SY * (j + DY);

double x = c;

double y = d;

double t;

int k = 0;

g.setColor(new Color((float)Math.random(),

(float)Math.random(), (float)Math.random()));

while (x * x + y * y < BAIL_OUT && k < COUNT_ITER) {

t = x * x - y * y + c;

y = 2 * x * y + d;

x = t;

g.drawOval((int) (x / SX - DX), (int) (y / SY - DY), 1, 1);

++k;

}

}

}

}


public static void main(String[] args) {

JFrame frame = new JFrame();

frame.addNotify();

frame.setSize(frame.getInsets().left +

frame.getInsets().right + WIDTH,

frame.getInsets().top +

frame.getInsets().bottom + HEIGHT);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


frame.add(new JPanel() {

@Override public void paintComponent(Graphics g) {

super.paintComponent(g);

drawClouds(g);

}

});

frame.setVisible(true);

}

}

* запускаем

* ???

* profit

если доигрались то windows -> perspective -> open perspective -> debug там будет кнопка stop

Джава-1 Изучениеджава, Длиннопост, Программирование, Java
Показать полностью 2
-25

Программирование для начинающих

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

Важное уточнение: учиться программировать мы будем Windows. Мнение о языках субъективное, прошу холивар не разводить. Если вы выберете неизвестный мне язык, то я буду изучать его вместе с вами. Отличать от "C++ за 21 день", "PHP для чайников" и прочих книг, данный курс будут более доступный язык повествования, более подробный (ИМХО) разбор, ВиО.

Выход новых постов будет осуществляться каждый понедельник чередуясь: Новая глава, Ответы на вопросы в комментариях, Новая глава ... (если вопросов будет мало, то Новая глава с ответами в конце). Итоги будут подведены в пятницу 05.02.16.

Ну а суть такова: те отчеты, на которые я раньше тратил по часу-два в день, после написания программы под себя занимают 30 минут.

Поехали.

BASIC (бейсик, барсик) аббревиатура от Beginner’s All-purpose Symbolic Instruction Code (пер. универсальный код символических инструкций для начинающих). Простой в освоении язык. В основном служит для начала обучения в школах. Где-то я читал, что на нём написаны системы управления подлодками Великобритании. Получил своё продолжение в таких языках как Visual Basic (Вижуал бейсик) и Visual basic .net (Вижуал бейсик дотнет), о них ниже.

Pascal (паскаль) так же используется для подачи основ программирования. Хотя, в основном (в городе котором я живу и по моим сведениям) он преподаётся в школах с уклоном в информационные технологии и в ВУЗах на на специальностях не связанных с ИТ. ИМХО паскаль, имея практически схожие возможности с бейсиком, имеет немного более сложный синтаксис (синтаксис - правила, которые мы должны выполнять при написании кода). Структура написания кода (в паскале часто требуется ставаить ";" там, где в basic'е идёт просто перенос строки), однако, даёт прекрасную базу для начинания. Хех, попробуйте пропустить точку с запятой, и пара минут с отладкой вам обеспечена. (Отладка - исправление кода, а значит и работы, программы. Вот тут гуманитарии будут кипятком ссать: слово отлаживать существует))). После паскаля более легко перейти на слудющие языки: C, C++, Delphi.

Visual basic (вижуал бейсик). Язык устаревший. Точнее устарели используемые им возможности. Когда я в последний раз (году так в 2011) попытался показать сделанную программу на другом компьютере, у меня ничего не вышло. У меня была XP, а у него семёрка вроде. И нужные файлы в Windows 7 были обновлены другими. У языка имеется продолжение в виде VB.NET (ещё чуть ниже).

Мы не будем изучать basic, visual basic и pascal из-за их неактуальности.

Delphi (дельфи, не изучал) - вообще понятия не имею, что этот язык представляет из себя. О чём он, насколько он актуален, как давно выходили новые версии языка. Раньше являлся основным конкурентом visual basic'a (точнее, как и паскаль являлся немного более сложным, но более "правильным" языком). ИМХО его ещё используют. Сильные стороны (по наслышке): приложения работающие по сети.

C и C++ (Си и Сиплюсплюс, не изучал) - как много споров на тему что же лучше. Но это споры из серии "моё мороженное вкусное, а твой шарик только летает". Действительно назначение у языков достаточно разные. Первый более подходит для написания драйверов, например, или чего-то вроде новых способов записи видео с экрана. С++ имхо язык для приложения вроде ворда, хрома, косынки. Сложные языки. Очень сложные. Однако имеют практически безграничные возможности, хорошее быстродействие и дают огромный опыт в разработке приложений.

Java (джава, ява, не изучал) - пожалуйста нет. Ни как не могу понять почему джава всё ещё жив. Питаю ненавистные чувства к нему. Из плюсов: JavaScript, JavaScript. Из минусов: куча дыр безопасности, медленный, синтаксис.

Ruby (Руби, не изучал). Молодой язык. Быстр, прост, хорошо подходит для разработки сайтов, характер нордический.. Набирает популярность, но, возможно, так и не дотянется до вершин С, Java и PHP.

PHP (пиэйчпи, не изучал) - сильный, но корявый язык. Для веб-приложений (серверы и клиенты для сайтов). Почему нет?

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

C#, VB.NET, VC++.NET, Java.NET, F# (Си шарп, вижуал бейсик дотнет, вижуал сиплюсплюс дотнет, джава дотнет, эф шарп) - все эти языки объединяет центр на котором они работают (так называемый фреймворк). Представьте разностороннего учителя знающего несколько языков (фреймворк) с телефоном. И вот строят ученики каждый по зданию. А учитель всё это видит. И звонит он сишарпу и говорит на сишарповском, что балку ставят так и так. Звонит вэбэшке и говорит тоже самое только на вэбэшечном. И так далее. Пожалуй единственное отличие: у сишарпа рядом с лифтом будет (если вам этого захочется) вертикальная шахта, внизу которой иногда поролон, в остальное время колья.

C# (не изучал) - будущее за ним (имхо), новый язык, сделан с учётом многолетнего опыта, немного сложней vb, однако в данной среде именно он является стандартом.

VB.NET - простой язык с мощными возможностями (как и у си шарпа). Минусами по сравнению с си шарпом считаю: отсутствие небезопасного программирования (та самая шахта), мало литературы, обычно пишут c# (меньше людей у которых можно попросить совета).

VC++.NET (не изучал). Язык очень напрасно включён. Во первых сишарп, во вторых язык со своей структурой вкрутили не в ту резьбу. Не будем его изучать.

Java.NET - даже не просите. Аналогично VC++.NET и все минусы из Java.

F# (не изучал) - язык более направлен на программы, которые будут выполнять какие-либо сложные подсчёты. VB.NET и C# более привлекательны.

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

Показать полностью
-15

Зачем нужна жена?

Зачем нужна жена? Не, серьезно. Я пришел не жаловаться а спросить. Или просто потому что так нужно? Готовят мужчины обычно лучше женщин, стирать (при наличии стиральной машины) не так уж и сложно. Секс? Пфф, порно дает огромное количество вариаций )а не одна и таже женщина в миссионерской позе). Убираться в однокомнатной (а зачем больше для холостяка?) не сложно (проверено автором). Можно не бриться и не гладить все вещи подряд (рубашки с брюками конечно нужно проходить утюгом, дело 30 минут). Кушаешь что хочешь а не что дадут. Любовь и дети? Пфф. Котенок и щенок. Нет ссор. Не нужно всякой поебени покупать потому что "нужно". Меньше траты что позволяет накопить сумму на сиделку к старости. Загнуться от инфаркта потому что никто не знает что тебе плохо и не зовет помощь не так уж и стрАшно ибо следи за собой хуйло либо принимай что сам себе наковал. Так зачем? Давайте конструктивно только
0

Прпеод рассказал.

(плюс немного жизненного опыта и адаптация)
Большинство симптомов абстинентного синдрома вызываются метанолом (да-да-да производители часто грешат некачественным товаром), который был употреблён при принятии спиртных напитков. если быть болееточным, то вещество его распада в печени - формальдегид (вроде). на самом деле бодун проявляется после полного распада этанола, который распадается в первую очередь и не даёт распадается метанолу. т.о. ненадолго "убить" похмелье можно слегка подбухнув. в общем этого всего можно избежать употребляя более качественный алкоголь.тогда единственная проблема которая будет мучать вас утром это сушняк. его же можно легко и просто поправить хорошим завтраком: пюре, горошек, жаренный бекон.

Разбираетесь в смартфонах? Докажите!

Сейчас каждый мнит себя знатоком техники. Насмотрелись обзоров на ютубе и все туда же. Snapdragon, Super AMOLED, 4K, динамический диапазон, форм-фактор и куча других терминов. Все все знают и умеют. А вы в своих силах уверены?


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

Отличная работа, все прочитано!