Архив блога

Себя показали и мир посмотрели

В текущем учебном  году  студенты   ветеринарного отделения выпускного курса Гусевского агропромышленного колледжа  Вороная  Виктория и  Архипов Юрий   дважды   побывали  в Германии.   Им представилась возможность  пройти   производственную практику, причем в течении месяца они побывали в городах Альфред на Лайне,  Нинбурге, Ганновере.

Все,  чему они    научились  в колледже,  будущие специалисты  подтвердили на деле,  хорошие   знания и умения в сфере  ветеринарии позволили им   активно включиться в работу  по  оказанию  помощи больным животным: ассистировали при операциях; самостоятельно проводили медикаментозное лечение и уход за животными.

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

Заключительным и очень ярким этапом пребывания в Германии стала недельная практика в приюте для бездомных животных в Ганновере, где студенты с большим удовольствием ухаживали за брошенными животными: кормили их, чистили вольеры и выгульные площадки, гуляли с собаками и становились свидетелями очень трогательных сцен, когда кто-то из четвероногих друзей наконец обретал новых хозяев!

ПОДРОБНЕЕ »

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

Инкапсуляция

Страшное слово «Инкапсуляция» — представляет собой всего лишь сокрытие реализации. Если вы попробуете присмотреться, вы увидите слово «капсула». Каждый объект не должен выставлять наружу все свои параметры для изменения просто так. Это изоляция (скрытие) внутренних методов в классе с целью избежания вредного воздействия на них. При этом некоторые методы являются доступными для вызова (модификатор доступа public). Вместе эти методы создают интерфейс программа — видимые внешнему миру. Эти методы взаимодействуют со скрытыми.

 

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

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

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

Теперь откроем наш класс Computer. Внутри методов on(); off(); load(); внутри никакой сложной реализации нет, мы просто выводим информацию на экран. Теперь изменим внутреннюю реализацию так, чтобы один из public-методов вызывал внутренний метод. Для создания внутреннего метода мы используем модификатор доступа private.  Пусть наш метод выводит на экран данные, которые будут передаваться в этот метод.


private void print (String str){
   
  System.out.println(str);

}

Наш метод ничего не будет возвращать, просто выводить данные на экран, поэтому его тип будет void. Название нашего метода — print. В качестве параметра ему будет передаваться строка, а для того, чтобы передать строку, тип нашего параметра должен быть String. str — сам параметр (контейнер, переменная) в которую мы отправляем данные. В фигурных скобках команда для вывода на экран, а вместо надписи в кавычках пишем название переменной — str.

Когда мы будем вызывать метод print и передавать какое-либо текстовое значение — оно у нас будет выводиться на экран.

Теперь изменим наши методы onn, off и load, чтобы они не сами выводили надпись, а передавали нашему внутреннему методу print свой текст.


  public void on(){
                   
       print("Я включился " + name);  
        
    }
    
      public void off(){
        
      print("Я выключился");  
          
    }
    
     public void load(){
         
      print("Я загружаюсь. Мой объём жесткого диска равен " + hdd + " ГБ");  
        
    }
     
  private void print (String str){
   
      System.out.println(str);
}

Теперь текст на экран выводит отдельный метод, который недоступен для внешнего пользования, поскольку у него модификатор доступа private. Метод print не доступен из файла MyFirstProgram.java, поскольку имеет модификатор private. Если мы запустим программу — она выведет те же самые значения, что и ранее. То есть функционал класса не поменялся, но изменилась внутренняя реализация.

В классе MyFirstProgram ничего не поменялось — это простейший пример интерфейса. При изменении внутренней реализации — для пользователя изменения незаметны.

В Netbeabs есть одно свойство, которое позволяет быстро просмотреть интерфейс любого класса, а аткже всю его внутреннюю реализацию. Для этого следует перейти в окно «Навигатор» (Меню Окно — Навигация — Навигатор). В навигаторе доступны все методы нашего класса. Методы, отмеченные замком слева означает private-метод, то есть скрытый метод. У метода print как раз такой значок в виде звонка. Метод print имеет модификатор доступа private.

Методы on(); off(); и load(); не имеют замка — данные методы имеют модификатор доступ public. Также отображаются переменные нашего класса. И в классе они также имеют модификатор доступ private. Переменные обозначаются синими квадратиками, а методы обозначаются кружками. Снизу можно переключать область видимости, например, чтобы сделать доступными только публичные методы. Можно также скрыть переменные. Если щелкнуть два раза по методу или переменной в навигаторе — курсор автоматически перейдёт к этой переменной или методу в самом коде.

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

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

Доступ к свойствам объекта (Get и Set)

На данный момент у нас есть два файла java — это Computer.java с вот таким содержимым


package testobject;
 
public class Computer {
     
    public String name;    
      
    public int ram;  
         
    public int hdd;
     
    public double weight;
     
    public void on(){
        
       int time;
         
       System.out.println("Я включился. Моя модель " + name);  
         
    }
     
      public void off(){
         
       System.out.println("Я выключился");  
           
    }
     
    public void load(){
       
    System.out.println("Я загружаюсь. Мой объём жесткого диска равен " + hdd + " ГБ");  
      
 }
     
}

И файл MyFirstProgram.java с таким содержимым:

package myfirstprogram;
 
import testobject.Computer;
 
public class MyFirstProgram {
 
    public static void main(String[] args) {
       
      Computer comp = new Computer();
       
      comp.name = "IBM";
       
      comp.hdd = 350;
       
      comp.on();
       
      comp.load();
       
      comp.off();
       
    }
     
}

Сегодня мы рассмотрим доступ к свойствам объекта при помощи так называемых «гетеров» и «сетеров». В прошлом уроке мы создали у объекта Computer несколько характеристик: public String name; public int ram; public int hdd; public double weight; Всё это, как вы помните, свойства объекта или ещё говорят переменные класса. Обратите внимание, что наши переменные класса используют модификатор доступа public.

Однако следует помнить, что использовать модификатор доступа public в полях класса не безопасно. Любой, кто использует объект, может напрямую изменить свойство объекта. Например, такие свойства, как объём жесткого диска, количество оперативной памяти, вес — не могут быть меньше 0. Но сейчас мы можем присвоить им отрицательные значения, так как наши переменные имеют модификатор доступа public. (comp.hdd = -100;)

Если допустить несанкционированный доступ к свойствам, то впоследствии наш объект может повести себя неадекватно.

ВЫВОДЫ

— От состояния объекта (значений переменных класса) зависит правильная работа объекта. Мы должны разрешить менять переменные так, чтобы после этого объект продолжал работать правильно.
— Задача — обеспечить безопасность изменения состояния объекта (безопасность изменения переменных класса).

Поэтому для защита был придуман механизм доступа к свойствам объекта с помощью get и set

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

get — получить значение.

set — передать значение.

В коде представляют собой обычные методы, но имя, как правило, начинается с префиксом get или set, чтобы было понятней. К примеру getName и setName.

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

ПОДРОБНЕЕ »

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

Типы переменных в JAVA.

В JAVA сущестуют два типа переменных. Примитивные и Ссылочные.

1.Примитивные

byte (целые числа, 1 байт)
short (целые числа, 2 байта)
int (целые числа, 4 байта)
long (целые числа, 8 байтов)
float (вещественные числа, 4 байта)
double (вещественные числа, 8 байтов)
char (символ Unicode, 2 байта)
boolean (значение истина/ложь, 1 байт)

2. Ссылочные. (от слова ссылка).- String, Computer и прочие объекты.

 

В нашем примере Computer comp = new Computer(); переменная comp — это ссылочная переменная, так как она содержит ссылка на объект. К ссылочным переменным относятся типы String.  Ссылочным типом может быть любой тип объекта, созданный в программе. В нашем случае это переменная типа Computer. Почему String — это ссылочный тип? Это задумка разработчиков языка Java. При создании переменной типа String всегда создаётся объект в памяти. 

К примеру, мы напишем String str = «abc»; здесь создаться объект типа String со значением abc и ссылка на объект будет находиться в переменной str.  Тип переменной String — это ссылочный тип.

Значение NULL.

Null — это пустое значение. Используется для ссылочных переменных и означает, что переменная не имеет указатель на какой-либо объект. В нашем случае после создания объекта Computer переменная comp ссылается на объект Computer в памяти.

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

Когда ссылка на объект уничтожается и переменная comp ни на что не ссылается, Computer становится кандидатом на удаление сборщиком мусора.

 

14 марта – всемирный день числа ПИ

Именно этому событию  в Гусевском агропромышленном колледже    была посвящена   неделя математики.    До  празднования  этой  даты, студенты 1 -3 курсов изучали историю происхождения этого праздника, а 30  из них приняли участие    в конкурсе « Знатоков числа ПИ». Жюри высоко оценило знание точного значения числа ПИ всех участников, но только трое их них смогли воспроизвести  60,  61 и 56 знаков после запятой. Победителями стали: Коновалова А., Москаленко Е., Назаров А. 11 марта были представлены стенгазеты участников конкурса «Все про ПИ», из которых можно было узнать о приближенном значении этого числа, об истинном происхождении числа ПИ, его дне  рождения,  исторических фактах и литературных произведениях.  Апогеем недели математики стал сам всемирный день числа ПИ—14 марта, который отмечали все студенты-пираты на внеклассном мероприятии «ПиРатская  ПиРушка».

С самого утра пираты-кулинары преподносили   свои дары капитану .  Все   кулинарные шедевры были выполнены по закону вычисления числа Пи и  украшены драгоценными камнями. В конкурсе «Пираты –кулинары»  победила команда группы БЭ-11.  Пираты пировали и ратовали за великое, непериодическое, иррациональное число во всем мире, о котором подробнее рассказали капитан и его помощник. За  правильные ответы в геометрической и литературной викторине  многие участники  были награждены пиастрами. Ими были также воспеты оды числу ПИ и прочитаны оды собственного сочинения.

Праздник утихал и 15 марта все желающие могли принять участие в интернет-викторине. Применив  все полученные знания , логику и сообразительность правильно отгадали кто жил раньше Гаусс или Евклид, нашли правило симметрии в буквах русского алфавита, сопоставили графики функций и их формулы 15 участников. При подведении итогов  победила Москаленко Е., группа БЭ-11. Продолжением  темы интернет-викторины стала заключительная интеллектуальная игра  между группами ЮП-11, БЭ-11 и ВФ-11 «Счастливый случай». На протяжении всей игры напряжение росло по мере прохождения каждого этапа. Участникам понадобились знания   значений тригонометрических функций, их графиков и свойств. Пришлось приложить все усилия и при разгадывании ребусов. Места распределились  следующим образом : 1 место- ВФ—11, 2 место –БЭ—11, 3 место— ЮП-11. Все участники конкурсов и  викторин получили сертификаты , а победители награждены грамотами .

Все мероприятия организованы и подготовлены преподавателем математики Метлушко И.В.  Проведение  ряда последовательных внеклассных мероприятий позволяет закрепить знания в игровой, занимательной форме, развивать логическое мышление, память, речь, смекалку, любознательность.  При подготовке  прививаются навыки работы с учебной и энциклопедической литературой с целью поиска необходимого материала  для выпуска стенгазет. Участники верят в свои силы.
ПОДРОБНЕЕ »

Солнце красно, гори, гори ясно!

В общежитии Гусевского агропромышленного  колледжа  10 марта проведено открытое внеклассное мероприятие, посвященное веселому народному празднику Масленица «Солнце красно, гори, гори ясно!».

Мероприятие состоялось благодаря студентам групп ВФ -21, ВФ -12, БЭ – 11, БЭ -21, МХ -11, МХ -21 и классным руководителям Л. В. Грибаускене, О.А. Ковалевой, С.А. Шарковой.

Праздник удался на славу, ребята танцевали флэш – моб под веселую песню «Потолок ледяной, дверь скрипучая…», отгадывали загадки, соревновались в перетягивании каната, поднимали гирю, участвовали в конкурсе блинов. Было шумно, задорно, ярко и  увлекательно.

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

Все участники получили незабываемые эмоции и впечатления.

Математика – это жизнь!

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

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

29 февраля для обучающихся первого и второго курсов прошла научно-практическая конференция на тему «Математика – это жизнь!». Ребята выступили с презентациями и представили интересные сообщения на самые разные темы («Математика в архитектуре», «Математика в медицине», «Математика в спорте», «Математика в повседневной жизни»),  в которых наглядно продемонстрировали, что с  математикой мы встречаемся везде, на каждом шагу, с утра и до вечера; показали, как математические закономерности используются во многих областях человеческой деятельности. Участники конференции пришли к выводу, что математические знания необходимы всем людям, а особенно тем, для кого они являются основой профессии.

В викторине «Математика в жизни» приняли участие команды первого курса: «Молодцы» (группа АМ-11), «Успех» (группа ТМ-11),  «Удача» (группа СВ-11), «Умницы» (группа СТ-11). При составлении вопросов викторины преподаватель использовала широкий спектр тем математической направленности. В полной мере оправдав своё название, победителем викторины со счётом 18 баллов стала команда «Умницы» (группа СТ-11).

Развитию сообразительности, логического мышления, интуиции способствовало внеклассное мероприятие «Весёлый электронный тест «Самый умный». Ребятам предстояло ответить на 31 занимательный математический вопрос. Французский математик  Блез Паска́ль сказал: Предмет математики настолько серьезен, что полезно не упускать случаев, делать его немного занимательным». Помимо полезных знаний двадцати участникам было обеспечено хорошее настроение. Лучший результат (90,3%) показал обучающийся группы АМ-21 Ефимов Марат. Следует отметить, что процесс обработки результатов теста  компьютеризирован.

В рамках Недели математики был дан открытый урок — семинар «Объёмы и площади геометрических тел». Обучающиеся группы АМ-21 показали, что они успешно могут использовать приобретенные знания и  умения в своей профессиональной деятельности. Урок заслужил высокой оценки коллег.

Все участники мероприятий по итогам Недели получили сертификаты.

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

А знак, по единодушному мнению участников мероприятий, должен быть в выражении «Математика – это жизнь!» непременно восклицательный.

ПОДРОБНЕЕ »

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

В этом занятии мы будем создавать объекты. Объект — это некая логическая сущность, которая имеет свои характеристики и умеет что-то выполнять. Каждый объект создаётся по какой-то логике, преследует определённые цели. На программном уровне объект — это область памяти, которую он занимает при выполнении программы виртуальной машиной java. В оперативную память записываются все объекты, которые участвуют в программе. Объекты записываются в память во время непосредственного выполнения программы, а не во время написания кода. 

Теперь созданим первый объект в среде Netbeans.

  1. Запустите редактор Netbeans.
  2. Нажмите ПКМ (Правая Кнопка Мыши) по строке Пакеты исходных кодов (слева) — в открывшемся окне выберите Создать — Пакет java (в некоторых версиях Новый — Пакет java)
  3. В графе «имя пакета» введите testobject. Нажмите готов.
  4. Нажмите ПКМ на созданном пакете testobject. Выберите Создать — Класс Java
  5. В открывшемся окне в графе Имя класса введите Computer. Нажмите «Готово».

Мы создали класс Computer, который находится в пакете testobject.

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package testobject;

/**
 *
 * @author пк
 */
public class Computer {
    
}

Комментарии можно удалить. Структура кода простейшая. Объявление пакета и объявление публичного класса.Теперь следует добавить какие-то характеристики нашему объекту Computer. Характеристики в программном коде представляют собой переменные, объявленные внутри класса. По другому их называют ПОЛЯМИ КЛАССА или свойствами класса. То есть эти переменные находятся внутри класса. Давайте добавим новое поля, которое будет характеризовать модель нашему компьютера. public String name;


package testobject;

public class computer {

    public String name;    
        
}

public — модификатор доступа. Говорит нам о том, что переменная name будет доступна из любого места программы.
String — тип переменной (тип данных). String предназначен для хранения строк текста.
name — имя переменной, в этом контейнере будет храниться имя компьютера. Может быть любым, но желательно, чтобы подходило по смыслу. Мы могли бы написать и так — «imia.»

Добавим ещё одну характеристику к нашему компьютеру. Оперативная память измеряется у нас в целых числах, значит тип переменной (тип данных) у нас будет целое число — int. Пишем public int ram;


package testobject;

public class computer {

    public String name;    
    
    public int ram;     
}

Добавим характеристику жесткого диска. public int hdd; И характеристику веса. Вес может содержать числа с двойной точностью (числа после запятой), значит тип переменной будет double. public double weight;


package testobject;

public class Computer {
    
    public String name;    
     
    public int ram;  
        
    public int hdd;
    
    public double weight;
}

Мы создали 4 поля или 4 характеристики объекта Computer, которые будут характеризовать его своими значениями. Теперь давайте добавим какие-либо действия для нашего объекта Computer. Действия в программном коде представляют собой обычные МЕТОДЫ. Добавим метод «Включиться» (on).

 public void on(){
        
    }

Разберём данные строки.

public — модификатор доступа. Говорит нам о том, что метод будет доступен из любого места программы.

void — говорит нам о том, что метод не будет возвращать никаких значений.

on — название метода (может быть любым).
on() — скобки. В скобках мы можем передавать какие-то параметры в данный метод. Пока мы ничего не будем передавать — оставим их пустыми.

Каждый метод обрамляется фигурными скобками { }.

Мы создали одно действие для компьютера — on, то есть включить. По аналогии создадим метод выключить (off).

 public void off(){
        
    }

Добавим метод загрузка (load)

 public void load(){
        
    }

Теперь в каждом методе напишем, что он выполняет. Уже известной командой: System.out.println(«Ваш текст»); (печать в строку).

Обратите внимание, когда Вы нажимаете точку — Netbeans выдаёт список опций.

 public void on(){
        
       System.out.println("Я включился");  
        
    }
    
      public void off(){
        
       System.out.println("Я выключился");  
          
    }
    
     public void load(){
         
       System.out.println("Я загружаюсь");  
        
    }

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


  public String name;    
     
    public int ram;  
        
    public int hdd;
    
    public double weight;

Они будут доступны внутри этого класса и внутри этих методов:


Они будут доступны даже, если модификатор доступа будет private. Private - обозначает доступ внутри класса. Если переменная объявлен внутри метода, например вот так (переменная время - time):


 public void on(){

   int time; 
        
   System.out.println("Я включился");  
        
    }

То эта переменная (time) не будет доступна в других методах! Она имеет область доступа только локально — внутри метода on. Это закрытая переменная, которая действует только во время работы метода. Как только метод отработал — эта переменная уже нигде не доступна. Теперь следует научиться создавать объект Computer, или, как ещё говорят, инициализировать. Для инициализации используется определённое ключевое слово. Итак:

1) Удалите переменную int time;
Код файла Computer.java должен выглядеть так:


package testobject;

public class Computer {
    
    public String name;    
     
    public int ram;  
        
    public int hdd;
    
    public double weight;
    
    public void on(){
       
       int time;
        
       System.out.println("Я включился");  
        
    }
    
      public void off(){
        
       System.out.println("Я выключился");  
          
    }
    
     public void load(){
         
       System.out.println("Я загружаюсь");  
        
    }
    
}

2) Перейдите в файл MyFirstProgram.java. Удалите оператор System.out.println(«Hello, world!»); Код должен быть таким:


package myfirstprogram;

public class MyFirstProgram {

    public static void main(String[] args) {
      
        
        
    }
    
}

3) Для того, чтобы создать наш объект Computer, необходимо написать следующую конструкцию: Computer comp = new Computer();


package myfirstprogram;

public class MyFirstProgram {

    public static void main(String[] args) {
      
      Computer comp = new Computer();  
        
    }
    
}

ПОДРОБНЕЕ »

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

Теперь остановимся на структуре кода. Сейчас у нас файл MyFirstProgram.java содержит следующий код:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package myfirstprogram;

/**
 *
 * @author Максим
 */
public class MyFirstProgram {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    }
    
}

Любой код java пишется внутри класса. Не может быть код вне класса! В нашем случае класс имеет название MyFirstProgram.
Обычно класс определяет в себе код с определённым функционалом, с каким-то смыслом.
(к примеру класс database — стало быть код в нём служит для работы с базой данных).
Класс — это контейнер для программного кода. Границы класса задаются фигурным скобками {}.
Netbeans подсвечивает эти границы, чтобы мы их видели визуально. Скобки также задают границы методов (у нас сейчас один метод
public static void main(String[] args)), границы условных операторов и различных участков кода.
Метод — одно из основных понятий в языке java! Метод — это аналог понятия функции из процедурных языков программирования
(например из Паскаля, Дельфи, Лазаруса)

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

ПОДРОБНЕЕ »