Краткий видеоурок о работе с многоуровневыми списками в текстовых процессорах (Word, Open Writer).


Просмотров: 155

1. Оформить нумерованный и маркированный список по образцу
2. Заголовок набрать обычным способом выбрав положение текста на странице по центру.
3. Для построения нумерованного списка необходимо курсор поставить в новую строку и выбрать инструмент Нумерация во вкладке Главная. Набрав первую строку нажмите Enter, и цифра 2 будет поставлена автоматически и т.д.
4. Для построения маркированного списка необходимо курсор поставить в новую строку и выбрать инструмент Маркеры во вкладке Главная. Набрав нужную строку нажмите Enter, и очередной маркер будет поставлен автоматически и т.д
5. Для установки многоуровневого списка необходимо поставить курсор в новую строку выбрать инструмент Увеличить отступ на вкладке Главная, а затем выбрать инструмент Многоуровневый список, и выбрать из списка нужный вид списка. По мере необходимости можно изменить вид уровней списков. Для возврата на предыдущий уровень необходимо выбрать инструмент Уменьшить отступ на вкладке Главная.

Краткий видеоурок о работе с табуляторами по левому краю, по центру и по разделителю


Просмотров: 13

1. Создать текстовый документ по образцу.
2. Для установки табуляторов используйте галерею (коллекцию) табуляторов, расположенных вверху слева от линейки. Подведите курсор мыши и щелкайте по табулятору, пока не появиться нужный Вам табулятор. Затем подведите курсор мыши на нужное место линейки и щелкните для установки табулятора.
3. При редактировании документа, чтобы курсор стал в место установки табулятора необходимо нажать клавишу Tab, а затем набирать нужный текст или символы. Выберите табуляторы: для единиц измерения – по цен-тру, а для цифр – по разделителю.
4. Что табулятор удалить необходимо подвести курсор к табулятору, захватить его и вытащить за пределы линейки (лучше вытащить на окно с табуляторами).

Составляем заявление, используя табуляторы в MS Word и Open Writer


Просмотров: 20

 

  1. Запустить программу MS Word (Пуск – Все программы – Microsoft Office – Microsoft Office Word 2013 или Пуск – Все программы – OpenOffice – OpenOffice Writer).
  2. Для постановки табуляторов необходимо подвести указатель мыши на линейку к цифре 9,5 и щелкнуть левой клавишей мыши, предварительно выбрав вид табулятора «по левому краю» (в верхнем левом углу линейки).
  3. Верхнюю часть служебной записки оформить с использованием табуляторов.
  4. Набор текста в документе, его редактирование производить с помощью инструментов на вкладке Главная.

Пример текста для набора.

Заведём жабу? Часть 10. Полиморфизм.


Просмотров: 7

Полиморфизм

Полиморфизм – одно из важнейших понятий ООП, тесно связанное с наследованием. Слово полиморфизм происходит от слова полиморфный – то есть имеющий разные формы. Если есть родительские и дочерние объекты и в них есть одинаковые методы, то Java будет сама определять какой из методов нужно выполнить во время выполнения программы.

Рассмотрим на примере. Открываем Netbeans, файл MyFirstProgram. Для начала внесём изменения. В файле Computer.java изменим модификаторы доступа переменных с public на protected, чтобы получать к ним доступ из класса Notebook.

Изменим первый конструктор в классе Computer следующим образом:

public Computer(String name) {

this.name = name;

}

Класс Notebook переделаем следующим образом:

package testobject;

public class Notebook extends Computer{

public Notebook(String name) {

super(name);
}

public Notebook (String name, int ram, int hdd, double weight) {

super(name, ram, hdd, weight);
}

@Override
public void on(){

print("Notebook. Я включился. Моя модель " + getName());

}

@Override
public void load() {

}
}


Ключевое слово super говорит нам о том, что мы будем использовать переменные из родительского класса Computer. В общем наши файлы могут выглядеть примерно так:

Читать дальше …

Заведём жабу? Часть 9. Наследование.


Просмотров: 56

Наследование.

Прежде, чем приступить к практике наследования следует повторить знния по модификаторам доступа. Всего существует 4 модификатора доступа.

public – доступ с любого места. Чаще всего используется для внешнего интерфейса.

protected – доступ внутри пакета и в дочерних классах. Чаще всего используется при наследовании.

без указания (или по умолчанию) – доступ внутри пакет. Такой вариант использовать нежелательно. Лучше указывать явно модификатор доступа.

private – доступ только внутри класса. Чаще всего используется для скрытия реализации (инкапсуляции). То есть для каких-либо служебных методов, которые должны работать только внутри класса.

Список представлен в порядке уменьшения области видимости (сверху-вниз).

Давайте попробуем использовать наследование в программном коде.

Наш файл MyFirstProgram.java выглядит примерно так:


package myfirstprogram;
 
import testobject.Computer;
 
public class MyFirstProgram {
 
    public static void main(String[] args) {
       
      Computer comp = new Computer("IBM", 2048, 320, 2);
       
//     comp.setName("IBM");
//       
//      comp.setRam(2048);
//      
//      comp.setHdd(320);
       
      comp.on();
       
      comp.load();
       
      comp.off();
       
    }
     
}

Читать дальше …

Заведём жабу? Часть 8. Теория наследования.


Просмотров: 10

Теория наследования.

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

Наследование можно назвать расширением, так как дочерний класс расширяет родительский. Представим, что у нас есть два класса. У первого класса есть три метода. Класс 2, допустим, пустой и ни с чем не связан. Класс 2 хочет унаследоваться от класса 1. В этом случае класс 1 будет являться родительским классом или по другому “суперклассом,” а класс 2 – дочерним классом, или по другому подклассом.

Родительский класс – это класс от которого наследуют, а дочерний класс – это класс, который наследует родительский. Родительский класс по другому ещё называют базовый, дочерний класс называют производный или потомок.

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

Чаще всего применяется следующий вариант: класс 2 после наследования добавляет какие-то свои методы реализации, которые будут доступны также, как и наследуемые.

Читать дальше …

Заведём жабу? Часть 7.


Просмотров: 94

Конструктор

Конструктор – это блок кода внутри класса, который вызывается перед созданием объекта. У конструктора одна цель – создание экземпляра класса с заранее определённым состоянием. Под состоянием понимается совокупность значений переменных класса или по другому свойств класса. Конструктор позволяет перед созданием объекта присвоить этим переменным начальные значения, а не оставлять их “по умолчанию”

Конструктор – это НЕ МЕТОД (хотя в некоторой литературе встречается определение “метод, который инициализирует объект”) и не надо его путать с методом.

У класса может быть несколько конструкторов. Мы можем использовать любой из них для создания объекта.

На схеме класс, который содержит 4 конструктора. Чаще всего у конструкторов модификатор доступа public. После того, как вызывающая сторона обратилась к одному из конструкторов, тот автоматически инициализирует объект с определённым начальным состоянием, после это объект готов к работе. Можно вызвать любой из конструкторов, каждый из них по-своему создаёт объект.

Когда в прошлых уроках мы создавали объект Computer, писали так Computer comp = new Computer();

В данном случае мы вызывали “конструктор по умолчанию”, который создаётся автоматически компилятором, если другие конструкторы не указаны. Теперь мы создадим наши личные конструкторы. Перейдём в класс Computer. Создание конструктора начинается с модификатора доступа. Пусть будет public – видео везде. КОНСТРУКТОР НЕ ИМЕЕТ НИКАКИХ ВОЗВРАЩАЕМЫХ ЗНАЧЕНИЙ! Даже void писать НЕ НУЖНО! Название конструктора должно совпадать с именем класса. То есть имя конструктора будет Computer. Затем в фигурных скобках указываем параметры, которые будут передаваться в этот конструктор. Само собой конструктор пишется внутри класса.

К примеру мы хотим создать объект с начальным значением имени. Выглядеть это будет примерно так:

 

public Computer (String name) {
        
        this.name = name;
    }

 

name – у нас переменная типа String. В фигурных скобках мы присваиваем переменной класса computer name новое значение переданному параметру name. Напишем так name = name. Мы хотим, чтобы левая переменная name относилась к переменной класса Computer, а правая переменная name относилась к переданному параметру name, но так как их имена совпадают компилятор не может разобраться какую переменную и куда мы хотим записать. Чтобы выполнить эту задачу, следует воспользоваться ключевым словом this (этот).

Слово this обозначает, что мы используем какой-либо элемент текущего класса или объекта. В данном случае мы из текущего объекта находим переменную name и в неё мы записываем переданный параметр name. Правый nsme – переданный параметр, а левый name – переменная нашего класса.

Ключевое слово this указывает на ссылку для текущего объекта Computer. Таким образом мы можем передавать переменную с таким же именем, что и переменная класса. Если мы будем использовать ключевое слово this, то путаницы не будет.

Давайте создадим конструктор для переменной ram. Делаем по аналогии с name, только тип переменной уже будет int.

    public Computer (int ram) {
        
        this.ram = ram;
    }

В качестве входного параметра первый конструктор принимает имя, второй размер оперативной памяти. Теперь давайте попробуем создать наш объект при помощи конструктора. Перейдём в файл MyFirstProgram.java Напротив строки Computer comp = new Computer(); можно увидеть горящий символ – компилятор “говорит,” что нет такого конструктора для объекта Computer. Потому что раньше мы использовали “конструктор по умолчанию” без параметров (в скобках нет параметров), который создавала сама виртуальная машина Java автоматически, поскольку никаких конструкторов мы не прописывали.

Теперь мы прописали свои два конструктора и в этом случае действует правило, что если вы написали свои конструкторы, то конструктор “по умолчанию” исчезает, перестаёт действовать из-за чего и “ругается” компилятор.

Но если мы хотим, чтобы был конструктор “по умолчанию”, нам в этом случае придётся написать его самим вручную. В качестве параметров ничего не передаётся.


public Computer() {
        
    }

Именно такой конструктор “по умолчанию” без параметров создаёт компилятор, если нет других конструкторов, но в коде он не отображается.

В данном случае нам пришлось вручную написать конструктор без параметров, чтобы мы могли создавать объект, не передавая никаких параметров в конструктор. Теперь компилятор разобрался. Если мы нажмём Ctrl и сделаем щелчок ЛКМ по Computer();, то Netbeans перенесёт нас в файл Computer.java в участок кода


public Computer() {
        
    }

То есть в тот конструктор, который мы вызываем при создании объекта.Давайте создадим конструктор для параметра hdd.


 public Computer (int hdd) {
        
        this.hdd = hdd;
    }

ВАЖНЫЙ МОМЕНТ. МЫ ХОТЕЛИ СОЗДАТЬ КОНСТРУКТОР ДЛЯ ПЕРЕМЕННОЙ HDD, ОДНАКО КОМПИЛЯТОР “РУГАЕТСЯ” ПО ПРИЧИНЕ ТОГО, ЧТО ТАКОЙ КОНСТРУКТОР УЖЕ ОПРЕДЕЛЁН В ОБЪЕКТЕ Computer. Дело в том, что компилятор “смотрит” на список параметров (то есть на передаваемые типы переменных в круглых скобках), не на их названия, а на их типы! В данном случае он “говорит” , что уже есть конструктор с одним параметром типа int. Второй такой же создать нельзя.

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

 

public Computer (String name) {
        
        this.name = name;
    }

 

в следующий вид

 
   public Computer (String name, int ram, int hdd, int weight) {
        
        this.name = name;
        
        this.ram = ram;
        
         this.hdd = hdd;
         
         this.weight = weight;
    }

Теперь давайте изменим наш код так, чтобы мы присваивали значения не через “сетер,” а перед созданием объекта. Закомментируем следующий участок кода в классе MyFirstProgram, дабы показать, что можно сделать по другому.

       
//     comp.setName("IBM");
//       
//      comp.setRam(2048);
//      
//      comp.setHdd(320);

Для того, чтобы закомментировать выделяем нужный нам диапазон, нажимаем ctrl и наклонный слэшь. Для раскомментирования делаем тоже самое. Изменим строку вызова конструктора так, чтобы вызывался конструктор с параметрами. Вот эта строка: Computer comp = new Computer();

Поставим курсор в скобки и нажмём ctrl + space (пробел). Netbeans предложит на выбор несколько конструкторов с параметрами и без. Выберем тот, где 4 параметра.

 Computer comp = new Computer(null, 0, 0, 0);

Теперь мы можем передать какие-то значения. Давайте передадим те значения, которые остались у нас в закомментированных “сетерах.” Имя – IBM, Оперативная память – 2048, Объём жесткого диска – 350, вес пусть будет – 2.


Computer comp = new Computer("IBM", 2048, 320, 2);

Давайте теперь запустим нашу программу. Программа выведет что-то вроде:

run:
Я включился. Моя модель IBM
Я загружаюсь. Мой объём жесткого диска равен 320 ГБ
Я выключился
СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 0 секунд)

То есть теперь мы присвоили значения переменным объекта Computer ДО СОЗДАНИЯ объекта Computer. А в прошлый раз мы создавали объект Computer, используя конструктор “по умолчанию,” и только затем после создания мы использовали “сетеры” для присвоения значений переменных.

Конструктор создаёт объект уже с начальным состоянием. В прошлый же раз у нас было состояние “по умолчанию,” которое мы изменяли при помощи “сетеров.”

Обратите внимание на данную схему. Самый упрощённый вариант работы конструктора такой:конструктор имеет несколько входных параметров, на схеме у нас 4 параметра, после вызова конструктора значения этих параметров записываются в переменные класса. Таким образом до инициализации объект получает какое-то начальное состояние или по-другому значения переменных класса.

То есть последовательность такая: запись значения в переменных класса и только после этого создание объекта.

Конструктор и метод внешне похожи, но назначение их разное. От метода конструктор отличается тем, что у него НЕТ типа возвращаемого значения, нет даже void.

Конструктор имеет имя такое же, как у класса. Методы же можно называть как угодно и только никак название класса.

Если никакой конструктор не указан – компилятор автоматически создаёт конструктор по умолчанию. (без параметров)

Следует различать конструктор “по умолчанию” (созданный автоматически компилятором), и конструктор без параметров, созданный программистом (в этот конструктор программист ещё может добавить какую-то логику работы, чего нет в конструкторе от компилятора).

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

Конструктор также имеет модификатор доступа!

Если программист в коде написал какой-то свой конструктор, то конструктор “по умолчанию” не создаётся!

Netbeans позволяет быстро создавать конструктор. Для этого следует нажать ctrl+space(пробел). Используя этот способ всё, что мы писали вручную – можно было создать автоматически.

Обратите внимание на неточность в нашем предыдущем конструкторе.


public Computer (String name, int ram, int hdd, int weight) {
        
        this.name = name;
        
        this.ram = ram;
        
         this.hdd = hdd;
         
         this.weight = weight;
    }

А именно переменная weight является типа double, но в вышеприведённом участке кода она отображена как int и компилятор это воспринял. Это произошло потому, что double включает в себя как и целые числа, так и числа с плавающей точкой. То есть диапазон типа double намного шире диапазона типа integer, поэтому мы можем передавать целое число, но записать его в тип double.

Однако так делать не рекомендуется, поскольку может возникнуть путаница. К примеру если мы хотим передать значения веса в 2 килограмма 200 граммов – ничего не выйдет, поскольку тип переменной weight в конструкторе integer. А вот 2 килограмма вполне себе запишутся в переменную weight с типом double и никаких проблем не будет. Но лучше указывать тип, который нужен ДЛЯ ПЕРЕМЕННОЙ КЛАССА. Исправим на double.


public Computer (String name, int ram, int hdd, double weight) {
        
        this.name = name;
        
        this.ram = ram;
        
         this.hdd = hdd;
         
         this.weight = weight;
    }