Урок 3. Основные ключевые слова Java - разбор полетов


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

Разбор

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

package ru.upread.javacourse;
После объявления пакета, мы имеем наши объявления импорта. В этой статье мы создадим новый класс имен внутри подпакета 'javacourse.attributes'. Поскольку этот класс находится в другом пакете и мы хотим использовать его в нашем основном классе, мы импортируем его с помощью инструкции, показанной ниже. Обратите внимание, что я создаю класс Name в отдельном пакете с единственной целью демонстрации инструкций импорта.

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

package ru.upread.javacourse;
import ru.upread.javacourse.attributes.Name;
public class Person {


    private Name personName;

    public String helloWorld() {
         return "Hello World";
    }
}
Существует также другой способ создания переменных экземпляра класса Name. Когда мы создаем переменную экземпляра, мы можем включить полное имя класса, добавляемое к имени нашей переменной. Нам не нужно было бы импортировать класс, если бы мы сделали это: package ru.upread.javacourse;

public class Person {

    private ru.upread.javacourse.attributes.Name.personName;
    
    public String helloWorld() {
         return "Hello World";
    }
}
Во-первых, с точки зрения читаемости пример выше едва читаем. Кроме того, хотя вы можете не видеть никакой разницы в этой одной строке, необходимость многократно использовать полное имя класса для создания переменных экземпляра намного дольше, чем многократный ввод.

Единственный случай, когда вы должны использовать полное имя класса, а не инструкцию import, - это когда у вас есть два разных класса с одинаковым коротким именем, но эти два класса из разных пакетов. Например, если бы у вас был наш класс "ru.upread.javacourse.attributes.Name", но вы также должны были использовать класс "ru.upread.javacourse.Name" вы не сможете импортировать оба класса. Таким образом, вы можете импортировать один и использовать полное имя класса для другого.

Далее у нас есть определение класса, public class Person, за которым следуют открывающие и закрывающие скобки. Открывающая скобка определяет начало кода для класса, а закрывающая-конец. Ключевое слово public означает, что любой класс в том же пакете или в любом другом пакете может видеть этот класс. Просто такой человек, класс можно увидеть имя класса, имя класса, который способен увидеть человек класс.

Теперь, внутри класса Person, мы определим ссылочную переменную personName, которая имеет тип Name. Чтобы сделать эту ссылочную переменную недоступной для других классов, мы определяем ее как закрытую. Но поскольку мы хотим, чтобы это поле было доступно для других классов, мы также создадим общедоступный метод name(), который будет легко доступен и вернет эту ссылочную переменную personName. Любой класс, который хочет получить доступ к переменной personName, должен вызвать метод name().

Для этого метода нет соглашения об именовании, поэтому мы можем называть его как угодно. Реализация метода name() должна содержать оператор return, возвращающий переменную personName.

package ru.upread.javacourse;
import ru.upread.javacourse.attributes.Name;
public class Person {

    private Name personName;
    public String helloWorld() {
         return "Hello World";
    }

    public Name name() {
         return personName;
    }
}
У нас также есть метод helloWorld() из нашей последней итерации класса Person. Если вы помните, у нас уже есть класс PersonTest из нашей последней статьи, где мы определили метод helloWorld() как один из аргументов в методе assertEquals().

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



Во время тестирования мы всегда фокусируемся на зеленых и красных полосах. Зеленая полоска означает, что наш тест прошел, а красная - что он провалился. Следует также отметить, что в классе PersonTest я использовал аннотацию @Test и ключевое слово static в инструкции import метода assertEquals() из библиотеки JUnit. Я не буду вдаваться в подробности сейчас, но это будет рассмотрено в следующей статье. Для справки, вот класс PersonTest:

package ru.upread.javacourse;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class PersonTest {

    @Test
    public void shouldReturnHelloWorld() {
         Person marcus = new Person();
         assertEquals("Hello World", marcus.helloWorld() );
   }
}
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, уроки по Java, java,, ключевые слова, основные понятия




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Урок 35. Коллекция ArrayList C#: часть первая
Альтернативное средневековье
Биномиальное распределение с примерами