Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Структура Java-программы




 

Все Java-программы содержат в себе четыре разновидности блоков: классы (classes), методы (methods), переменные (variables) и пакеты (package).

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

Пакеты содержат в себе классы и помогают компилятору найти те классы, которые нужны ему для компиляции пользовательской программы. Классы, входящие в один пакет, особым образом зависят друг от друга. Например, приложение Hello импортирует пакет java.util, в котором содержится класс Date.

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

Переменные

 

В Java существует два вида переменных:

- примитивные типы (primitive types). К ним относятся стандартные, встроенные в язык типы для представления численных значений, одиночных символов и булевских (логических) значений. Все примитивные типы имеют предопределенный размер занимаемой ими памяти.

- ссылочные типы (reference type) - относятся типы, определенные пользователем (классы, интерфейсы) и типы массивов. Все ссылочные типы являются динамическими типами, для них выделяется память во время работы программы.

Переменные примитивных типов передаются в методы по значению, тогда как ссылочные переменные всегда передаются по ссылке.

 

Примитивные типы. Всего в Java определено восемь примитивных типов: int (4b), short (2b), byte (1b), long (8b), float (4b), double (8b), boolean (true, false), char (2b).

Первые шесть типов предназначены для хранения численных значений, с ними можно производить арифметические операции. Тип char предназначен для хранения символов в стандарте Unicode (2 байта). Булевские (логические) переменные могут иметь одно из двух допустимых значений: true или false.

 

Ссылочные типы. Переменной ссылочного типа выделяется память при помощи оператора new. Таким образом, каждая переменная ссылочного типа является объектом или экземпляром соответствующего типа.

Типы, определенные пользователем. Язык Java позволяет определять новые типы помощью новых классов. Рассмотрим пример определения и использования нового класса (нового типа) MyType:

 

Пример 1.1. Файл NewClass.java

class MyType { // объявляется класс

public int myData=5; // переменная-элемент класса

MyType() { // конструктор без параметров

System.out.println("Constructor without parameters");

}

MyType(int v) { // конструктор с одним параметром

System.out.print("Constructor with one parameter");

System.out.println(" Setting myData="+v);

myData=v;

}

public void myMethod() { // метод класса

System.out.print("myMethod!");

System.out.println(" myData="+myData);

}

}

 

// Реализация объектов и действия с ними

public class NewClass { // первичный класс

public static void main(String[] args) {

// объект obj1 - реализация класса MyType

MyType obj1=new MyType();

obj1.myMethod(); // использование метода

// доступ к открытой переменной

System.out.println("---obj1.myData="+obj1.myData);

// объект obj2 - реализация класса MyType

MyType obj2=new MyType(100);

// доступ к открытой переменной

System.out.println("----obj2.myData="+obj2.myData);

}

}

 

Класс String (тип строковых переменных). Класс String – это класс неизменяемых строк. Данный класс представляет собой гибрид примитивных и ссылочных типов. В основе своей тип String является ссылочным типом, содержащий в себе методы и переменные. Но в то же время этот тип проявляет некоторые свойства примитивного типа, что выражается, в том, как осуществляется присвоение значение этим переменным при помощи знака операции = (но можно для инициализации создаваемых объектов пользоваться и явным вызовом конструктора), например:

String S1="Hello"; // 1-ый способ инициализации

String S2=new String("Hello"); // 2-ый способ инициализации

Кроме того, строковый тип проявляет свойства примитивных типов в том, что для конкатенации (сложения) двух строк можно использовать знак операции +, например:

String S0="Variable ";

int myInt=3;

String S1=S0+"myInt"+myInt;

String S2=new String(S0+"myInt"+myInt);

Несмотря на поддержку таких операций, строковые переменные типа String являются в то же время и объектами, для них можно вызывать методы класса String, например, узнать длину строки:

int len=S1.length();

Итак, тип String является особым - этоединственный класс, переменные которого могут объявляться и использоваться без применения оператора new.

Типы массива. Типы массива используются для определения массивов - упорядоченного набора однотипных переменных. Можно определить массив любого существующего типа, включая типы, определенные пользователем. Кроме того, можно пользоваться и массивами массивов или многомерными массивами.

Создание массивов требует использования оператора new, например:

// объявление ссылочной переменной типа массив

int intArray[];

intArray=new int[3]; // создание массива целого типа

// создание двумерного массива вещественного типа

float[][] flArray = new float[2][3];

// создание массива и инициализация

double[] а = {0.01, -3.4, 2.89, 4.5, -6.7};

// создание и инициализация двумерного массива переменных целых

int[][] arrayOfInts = { { 32, 87, 3, 589 }, { 12, 1076, 2000, 8 }, { 622, 127, 77, 955 } };

Массивы Java имеют три важных преимущества перед массивами других языков:

- программисту не обязательно указывать размер массива при его объявлении;

- любой массив в языке Java является переменной - а это значит, что его можно передать как параметр методу и использовать в качестве значения, возвращаемого методом;

- размер массива в любой момент времени можно узнать через специальную переменную length, имеющуюся в каждом массиве, например:

int len=intArray.length;

Классы

Статические и динамические элементы класса. Если при определении элемента не используется ключевое слово static, то этот элемент по умолчанию является динамическим (dynamic).

Динамические методы и переменные всегда являются элементами объекта класса, и доступ к ним осуществляется через переменную-объект.

ИмяОбъекта.ИмяПеременнойЭкземпляра

ИмяОбъекта.ИмяМетодаЭкземпляра(<Параметры>)

Статические методы и переменные связаны с классом, а не с экземпляром класса, и являются элементами класса. Их можно использовать без создания объекта этого класса, доступ осуществляется через имя класса.

ИмяКласса.ИмяПеременнойКласса

ИмяКласса.ИмяМетодаКласса(<Параметры>)

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

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...