Язык и архитектура Java


Свойства, присутствующие в С и С++, и удаленные из Java - часть 2


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

Goto

см. выше описание операторов continue и break с меткой.

Перегрузка операторов

Опыт использования перегруженных операторов в С++ показывает, что они имеют смысл в довольно ограниченном наборе ситуаций. С другой стороны, злоупотребление этим свойством может сделать программу абсолютно непонятной. Единственное "встроенное" в язык Java исключение -- возможность использования оператора "+" для склеивания строк (см. выше).

Автоматическое преобразование типов

В языке Java запрещено автоматическое преобразование типов, широко используемое (и рекомендуемое) в С++. Чтобы преобразовать элемент одного типа в другой, необходимо указать это явно, например

int myInt;

double myFloat = 3.14159;

myInt = myFloat; // допустимо в С++, недопустимо в Java

myInt = (int)myFloat; // допустимо в Java

Исключение составляет преобразование между встроенными численными типами без потери информации.

Указатели

Большинство исследований показали, что применение указателей в С/С++ являются одним из основных источников ошибок. В силу того, что в языке больше не стало структур, а массивы и строки превратились в полноценные объекты, надобность в указателях отпала. Содержимое строк и массивов доступно только по индексам, причем контроль доступа во время выполнения не позволяет выходить за границы массива или строки.




Начало  Назад  Вперед



Книжный магазин