Перегруженные функции
C++ позволяет определять в программе несколько функций с одним и тем же именем. Такие функции удобны и широко применяются в объектно-ориентированном программировании, когда надо выполнить аналогичные операции над данными разных типов.
Подобные функции называются перегруженньши функциями. Имея одно и тоже имя, перегруженные функции отличаются количеством или типом параметров.
//Java class Calculation { public void add( int a, int b) { int с = a + b; } public void add( float a, float b) { float с = a + b; } } |
// С++ class Calculation { void add (lnt &a, int &b) {int c=a+b;} void add (double &a, double &b) { double c=a+b;} }
|
В Java перегруженные методы постоянно находятся в одном классе. Они имеют одну и ту же область видимости с классом. В этом языке нельзя перегружать операторы ++, +, *…и т.д.
Передача аргументов в Java осуществляется только о значению (передаются копии, а не сами переменные). В С++ возможны передачи аргументов по ссылке и значению.
Конструкторы
Как и в C++, в языке Java имя конструктора совпадает с именем класса, он открытый (public) и не имеет возвращаемого значения. Есть конструкторы по умолчанию, а есть и перегруженные, так как конструктор – это метод, который можно перегружать.
Eсли в классе описан явно хотя бы один конструктор с параметрами, то конструктор по умолчанию (без параметров) создаваться автоматические уже не будет (его в такой ситуации надо описывать явно).
class Circle { public double x; // абсцисса центра public double y; // ордината центра public double r; // радиус public Circle() { x = 0.0; y = 0.0; r = 1.0; } public Circle(double a, double b, double s) { x = a; y = b; r = s; } } |
class Circle { public: double x,y,z; Circle() { x = 0.0; y = 0.0; r = 1.0; } }
|
Обработка исключений
//Java public class Exc { public static void main(String[] args) { int x, у, z; try {x= 5; y= 0; z= x/y; System.out.println("z= "+z); } catch(ArithmeticException e) {System.out.println("Exception is catched");} } |
|
Число catch() неограниченно. К механизму обработки исключений в Java имеют отношение ключевые слова: — try, catch, throw и finally. Схема работы этого механизма следующая. Вы пытаетесь (try) выполнить блок кода, и если при этом возникает ошибка, система возбуждает (throw) исключение, которое в зависимости от его типа вы можете перехватить (catch) или передать умалчиваемому (finally) обработчику.
Исключения делятся на несколько классов, но все они имеют общего предка — класс Throwable. Его потомками являются подклассы Exception и Error.
