П2. Объектные принципы Java
Консольные приложения
Java приложение представляет собой один или несколько классов. В качестве первого примера рассмотрим следующий.
Пример 1. Простое использование класса.
package object_programming_principlese; import java.awt.*; import java.util.Scanner;
class SimpleArithmetic { int Add(int par1,int par2) { return par1+par2; } }
public class Object_Programming_PrinciplesE { public static void main(String[] args) { System.out.println("Input first number"); Scanner input= new Scanner(System.in); int n1=input.nextInt(); System.out.println("Input second number"); int n2=input.nextInt(); SimpleArithmetic sa=new SimpleArithmetic(); System.out.printf("The sum of %d and %d is %d",n1,n2,sa.Add(n1, n2)); } }
Данная программа порождает следующее окно (рисунок 139) с результатами работы
Рисунок 139. Выходные результаты программы
В приведенном приложении объявлена два класса: SimpleArithmetic и Object_Programming_PrinciplesE, объединенных в пакет object_programming_principles. Пакет объявляется как самая первая строка программы. Если пакет не объявлен, то он используется как анонимный (без имени). Следовательно, пакет является вариантом объединения классов. Классы в одном и том же пакете «видят» друг друга, т.е. могут использовать друг друга, если это позволяют их уровни доступа. Уровень доступа public является предельно общим и делает класс доступным для использования в других классах. Уровень доступа private, напротив, делает класс недоступным для использования в других классах. Уровень доступа protected делает класс доступным только в дочерних классах. Если не объявлять спецификатор доступа, то класс будет «видим» в пределах папки (каталога – folder). Класс, объявленный как public, должен содержать точку входа – метод main, с которого начинается его выполнение. Классы состоят из методов и переменных – членов класса. В примере выше класс SimpleArithmetic содержит метод Add, а класс Object_Programming_PrinciplesE – метод main. Метод должен возвращать значение определенного типа и, как правило, использует аргументы. Так, метод int Add(int par1,int par2) возвращает значение целого типа (int) и использует два параметра par1, par2 также целого типа. Метод заканчивается командой return, которая и возвращает ответ. В методе может быть несколько команд return. Классы и методы должны записываться в фигурных скобках. Классы могут использоваться как сами по себе, так и создавать объекты (экземпляры классов). Если требуется использовать объект класса, то он должен быть создан. Объекты создаются с помощью конструкторов классов – методов, имена которых совпадают с именами классов. В нашем примере объект класса SimpleArithmetic создавался в команде SimpleArithmetic sa=new SimpleArithmetic();
При обращении к конструктору обязательно указывается ключевое слово new. Конструкторы в общем случае должны объявляться в классах, однако если конструктор не содержит параметров, то его можно не объявлять (действует объявление по умолчанию – by default). В рассматриваемом примере именно это имеет место. Если хотим использовать классы без объектов, то нужно объявлять методы как static. Этот вариант рассмотрим позже. Имеются стандартные классы Java, подключаемые с помощью библиотечных пакетов. Подключение их реализуется через команду import. В рассматриваемом примере использованы стандартные классы System.out и Scanner. Оба используются для консольного ввода-вывода. Они подключаются посредством команд
import java.awt.*; import java.util.Scanner; Объект класса Scanner используется для ввода значения с клавиатуры. Создаем этот объект таким образом Scanner input= new Scanner(System.in); Читаем значения параметров с помощью этого объекта ( с именем ) так int n1=input.nextInt(); и int n2=input.nextInt();
Класс используется для вывода результатов/текста на консоль, например System.out.println("Input second number"); Для вывода используется метод println. Итак, рассматриваемое приложение начинается с метода main и приглашает ввести два числа. Затем создается объект класса SimpleArithmetic, вызывается метод sa.Add(n1, n2) (с указанием в качестве параметров двух введенных целых чисел n1, n2) этого объекта. Заметим, что обращение к методу sa.Add выполняется внутри другого метода System.out.printf("The sum of %d and %d is %d",n1,n2,sa.Add(n1, n2)); Вообще, System.out.printf используется для форматированного вывода. Специальные обозначения %d (place holders) используются для подстановки вместо них параметров, перечисляемых после закрывающих двойных кавычек. Маленькая литера d указывает, что подставляется значение целого типа. Теперь рассмотрим тот же пример с использованием статических методов (static)
package object_programming_principlese; import java.awt.*; import java.util.Scanner;
class SimpleArithmetic { static int Add(int par1,int par2) { return par1+par2; } } public class Object_Programming_PrinciplesE {
public static void main(String[] args) { System.out.println("Input first number"); Scanner input= new Scanner(System.in); int n1=input.nextInt(); System.out.println("Input second number"); int n2=input.nextInt(); //SimpleArithmetic sa=new SimpleArithmetic(); System.out.printf("The sum of %d and %d is %d",n1,n2,SimpleArithmetic.Add(n1, n2)); } }
Здесь имеется статическое объявление static int Add(int par1,int par2) { return par1+par2; } Статически объявленные методы нельзя использовать в объектах. Поэтому ранее использованная строка //SimpleArithmetic sa=new SimpleArithmetic(); Записана через знаки комментария (//). При вызове статически объявленного метода перед его именем указывается имя класса:
SimpleArithmetic.Add(n1, n2))
Важным вариантом класса является интерфейс. В интерфейсе методы только объявляются, но не реализуются. Класс, в котором методы интерфейса должны быть реализованы, подключает интерфейс с помощью директивы implements. Предыдущий пример, реализованный на основе интерфейса, представлен таким образом
package object_programming_principlese; import java.awt.*; import java.util.Scanner;
interface SimpleArithmetic { public int Add(int par1,int par2); } public class Object_Programming_PrinciplesE implements SimpleArithmetic { public int Add(int par1, int par2) { return par1+par2; } public static void main(String[] args) { System.out.println("Input first number"); Scanner input= new Scanner(System.in); int n1=input.nextInt(); System.out.println("Input second number"); int n2=input.nextInt(); System.out.printf("The sum of %d and %d is %d",n1,n2,new Object_Programming_PrinciplesE().Add(n1, n2)); } }
Подключение интерфейса реализовано в строке public class Object_Programming_PrinciplesE implements SimpleArithmetic
Популярное: Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (225)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |