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

Интерфейсы

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

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

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

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

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

… … … … … … … … …

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

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

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

… … … … … … … … …

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

}

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

public interface Fruit

{public string get Name();}

public class Apple implements Fruit

{public string get Name()

{return “Apple”}

}

public class Orange implements Fruit

{public string get Name()

{return “Orange”;}

}

public class Storage

{public static void main (String [] args}

Apple a=new Apple();

Orange 0=new Orange();

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

public static void print Name(Fruit f)

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

}

>javac*.java

>java Storage

Apple

Orange

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

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

Одно из самых важных особенностей языков программирования является наследование. Наследование позволяет создавать новые классы на базе уже имеющихся при этом вновь созданные классы наследуют методы и поля родительских классов. Объявление того что класс В наследует класс А имеет вид:

class B extends A

{…}

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

public class P

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

void print(string str)

System.out.println(str);}

public class Dextends P

{public static void main(string[]args)

{D d=new D();

d.print(d.name);}

}

>javac*.java

>javaD

Oksana

Пакеты

В библиотеку javaIP входят 1000 классов. Программист в ходе работы добавляет 100 своих. Для удобства работы с классами java введена конструкция пакеты. Пакеты используются для группировки связанных между собой классов и интерфейсов. Могут включать в себя и вложенные подпакеты. Образуется древовидная структура пакетов и подпакетов. Эта структура с точностью отображается на структуру файловой системы. Каждый пакет образует одно пространство имен newspace. Это означает что все имена классов и интерфейсов в пакете должны быть уникальны. Имена в разных пакетах могут совпадать, но это разные программные единицы. Использование всех элементов пакеты встречаются в java-программах наиболее часто. Импорт всего пакетов программы осуществляется с помощью выражения:

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

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

Ссылки this и super

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

class Myclass

{int i;

void set I(int i)

{this.i=i;}

}//имеет те же функции особенности что и без this.

class Myclass

{int i;

void set I(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=”+pz);

}}

>javac *.java

>java Point 3D

x=10 y=20 z=30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]