Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
93
Добавлен:
07.02.2016
Размер:
789.52 Кб
Скачать

Интерфейсы

Java позволяет классу наследовать один класс. Приодолеть этот недостаток позволяют интерфейсы.

Интерфейс – описание класса без его реализации.

Общий синтаксис объявления интерфейса:

Идентификатор_доступа interface Имя_интерфейса

{поле_константа_1;

поле_константа_2;

… … … … … … … … …

поле_константа_n;

объявление_метода_1;

объявление_метода_2;

… … … … … … … … …

объявление_метода_n;

}

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

Пример использования интерфейса:

public interface Fruit

{public string getName();}

public class Apple implements Fruit

{public string getName()

{return “Apple”}

}

public class Orange implements Fruit

{public string getName()

{return “Orange”;}

}

public class Storage

{public static void main (String [] args}

Apple a=new Apple();

Orange 0=new Orange();

print Name(a); printName(0);}

public static void printName(Fruit f)

{System.out.println(f.getName());}

}

>javac*.java

>java Storage

Apple

Orange

Методу printName передается параметр типа интерфейс, поєтому он может работать с двумя экземплярами различных классов

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

Одно из самых важных особенностей объектно-ориентированных языков программирования является наследование.

Наследование позволяет создавать новые классы на базе уже имеющихся. При этом вновь созданные классы наследуют методы и поля родительских классов.

Объявление того что класс В наследует класс А имеет вид:

class B extends A

{…}

Класс А называется суперклассом или родительским классом класса В. Класс В называется субклассом или дочерним классом класса А.

Пример наследования:

public class P

{String name=”Оксана”;

void print(String str)

System.out.println(str);}

public class D extends P

{public static void main(String[]args)

{D d=new D();

d.print(d.name);}

}

>javac*.java

>java D

Oksana

Пакеты

В библиотеку java API входят тысячи классов. Программист в ходе работы добавляет десятки своих.

Для удобства работы с классами java введена конструкция пакеты. Пакеты используются для группировки связанных между собой классов и интерфейсов. Пакеты могут включать в себя и вложенные подпакеты. Образуется древовидная структура пакетов и подпакетов. Эта структура с точностью отображается на структуру файловой системы. Каждый пакет образует одно пространство имен namespace. Это означает что все имена классов и интерфейсов в пакете должны быть уникальны. Имена в разных пакетах могут совпадать, но это разные программные единицы.

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

Import имя_пакета.*;

Предварительно необходимый нам класс (интерфейс) был помещен в пакет с названием имя_пакета. Кроме того вначале кода этого класса (интерфейса) добавлена строка: package имя_пакета.

Ссылки this и super

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

Так определение класса с this:

class Myclass

{int i;

void setI(int i)

{this.i=i;}

}

Эквивалентно следующему определению без this:

class Myclass

{int i;

void setI(int my_i)

{i=my_i;}

}

Ссылка super позволяет обратиться непосредственно к конструктору суперкласса.

Ссылка super используется для инициализации данного экземпляра класса и доступа к его глобальным переменным.

Например:

class Point

{int x,y;

Point(int x, int y)

{this.x=x;this.y=y;}

}

Class Point 3D extends Point

{int z;

Point 3D(int x, int y, int z)

{super(x,y);this.z=z;}

public static void main(string[]args){

Point 3D P=new Point3D(10,20,30);

System.out.println(“x=”+p.x+”y”=+p.y+”z=”+p.z);

}}

>javac *.java

>java Point 3D

x=10 y=20 z=30

Соседние файлы в папке [КОМП СИСТЕМЫ]