Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведев_С++_CLI_C#_Java_J#.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

Пример 4.4.2. Использование оператора new в языках Java и c#.

////////////////////

// Java и J#

Import java.Io.*;

class CFl // Описание класса с переменной и двумя функциями

{

private float fl; // Закрытая переменная fl

public void Set (float vFl) {fl= vFl;} // Установить значение переменной fl

public float Get() {return fl;} // Получить значение переменной fl

}

public class Test

{

public static void main(String[] args)

{

// Выделить память для целочисленного данного в стеке

Int X; // Выделить память в стеке для переменной

x= 5; // Установить значение

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

// Выделить память для целочисленного данного в куче

int sX= new Integer (x); /* Выделить память для объекта в управляемой

куче*/

sX= 55; // Установить значение

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

// Выделить память для объекта класса CFl в куче

CFl sCFl= new CFl (); // Выделить память в управляемой куче

sCFl.Set (0.01F); // Установить значение sCFI.fl

System.out.println ("sCFI.fl= " + sCFl.Get());

}

Результат:

x= 5

sX= 55

sCFl.fl= 0.01

////////////////////

// c#

using System;

class CFl // Описание класса с переменной и двумя функциями

{

float fl; // Закрытая переменная fl

public void Set(float vFl){fl=vFl;} // Установить значение переменной fl

public float Get() {return fl;} // Получить значение переменной fl

}

namespace TestCSharp

{

class Program

{

static void Main(string[] args)

{

// Выделить память для целочисленного данного в стеке

Int X; // Выделить память в стеке для переменной

x= 5; // Установить значение

Console.WriteLine ("x= " + x);

// Выделить память для целочисленного данного в куче

int sX= new int(); // Выделить память в управляемой куче

sX= 55; // Установить значение

Console.WriteLine ("sX= " +sX);

// Выделить память для объекта класса CFl в куче

CFl sCFl= new CFl(); // Выделить память в управляемой куче

sCFl.Set (0.01F); // Установить значение

Console.WriteLine ("sCFl.fl= " + sCFl.Get());

Console.ReadKey();

}

}

}

Результат:

x= 5

sX= 55

sCFl.fl= 0,01

Java. Программа примера 4.4.2 на языке Java вначале импортирует пакет java.io.*, содержащий классы ввода-вывода. Использование звёздочки после точки означает о доступности всех классов пакета в данной программе. Затем следует определение класса CF1, в котором в отличие от аналогичного класса С++ программы вместо метки доступа public: перед объявлениями интерфейсных функций помещены ключевые слова public и определение класса не завершается точкой с запятой.

Функция main(), как принято в языке Java, размещена в классе. В начале функции main() объявляется переменная x. Для неё выделяется память в стеке. Функция println() выдает на консоль присвоенное этой переменной значение 5.

Затем объявляется ссылка sX типа int, которой присваивается значение оператором new, возвратившим адрес созданного объекта класса-оболочки Integer в управляемой куче. Объекту присваивается значение 55, которое выводит на консоль функция println(), используя ссылку sX.

В конце тела функции main() создаётся объект класса CF1. По ссылке sCFl вызывается функция Set() этого объекта для установки значения закрытой переменной fl. Затем эта же ссылка sCFl применяется к функции Get() для получения значения закрытой переменной fl, используемого функцией println() при выдаче на консоль.

C#. В начале программы примера 4.4.2 на языке C# указывается используемое пространство имён System библиотеки .NET Framework, включающее наиболее употребительные класса и, в частности, класс Console, содержащий функцию WriteLine() вывода на консоль. Затем определяется класс CF1, который, как видим, полностью совпадает с классом CF1 для языка Java. Как и в случае языка Java, главная функция Main() находится в классе Program. С небольшими отличиями в функции Main() выполняются те же действия, что и в функции main() программы на языке Java. Язык C# позволяет создать объект базового типа, используя непосредственно этот тип.

При создании целочисленного объекта был использован тип int. Вывод значений данных на консоль осуществила функция WriteLine() класса Console.