Перегрузка методов, перегрузка операций

Знакомство с основными особенностями и проблемами переопределения методов класса Object, рассмотрение ключевых способов. Общая характеристика этапов создания проекта, который будет содержать скрытые и открытые поля, конструкторы, перегруженные операции.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 11.05.2020
Размер файла 29,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Перегрузка методов, перегрузка операций

Цель работы: освоить приемы создания операций класса и их использование.

Индивидуальные задания

Задание 1. Перегрузка операций

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

Описать класс для работы с двумерным массивом строк. Обеспечить перегрузку операции + для построчного соединения элементов.

Решение

проект конструктор операция

namespace lab3

{

namespace ConsoleApplication1

{

class Matrix

{

// Скрытые поля

private int n;

private int[,] mass;

// Создаем конструкторы матрицы

public Matrix() { }

public int N

{

get { return n; }

set { if (value > 0) n = value; }

}

// Задаем аксессоры для работы с полями вне класса Matrix

public Matrix(int n)

{

this.n = n;

mass = new int[this.n, this.n];

}

public int this[int i, int j]

{

get{ return mass[i, j];}

set{mass[i, j] = value;}

}

// Ввод матрицы с клавиатуры

public void WriteMat()

{

for (int i = 0; i < n; i++)

{

for (int j = 0; j < n; j++)

{

mass[i, j] = Convert.ToInt32(Console.ReadLine());

}

}

}

// Вывод матрицы с клавиатуры

public void ReadMat()

{

for (int i = 0; i < n; i++)

{

for (int j = 0; j < n; j++)

{

Console.Write(mass[i, j] + "\t");

}

Console.WriteLine();

}

}

// перегрузка сложения. Метод сложение элементов матрицы A

public static Matrix operator + (Matrix a, Matrix b)

{

int c = Math.Min(a.N, b.N);

Matrix resMass;

if (a.N > b.N)

{

resMass = a;

}

else { resMass = b;}

for (int i = 0; i < c; i++)

{

for (int j = 0; j < c; j++)

{

resMass[i, j] = a[i, j] + b[i, j];

}

}

return resMass;

}

}

}

}

namespace lab3

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введите размерность матрицы A: ");

int nn = Convert.ToInt32(Console.ReadLine());

// Инициализация

Matrix mass1 = new Matrix(nn);

Console.WriteLine("Введите размерность матрицы B: ");

int kk = Convert.ToInt32(Console.ReadLine());

Matrix mass2 = new Matrix(kk);

Console.WriteLine("ввод Матрица А: ");

mass1.WriteMat();

Console.WriteLine("Матрица А: ");

mass1.ReadMat();

Console.WriteLine();

Console.WriteLine("ввод Матрица B: ");

mass2.WriteMat();

Console.WriteLine("Матрица B: ");

mass2.ReadMat();

Console.WriteLine();

Matrix mass3 = mass1 + mass2;

mass3.ReadMat();

Console.ReadKey();

}

}

}

2. Переопределение методов класса Object

Создать класс с закрытыми полями а и b, строковой переменной, означающей операцию и свойством С. Свойство - значение выражения над полями а и b (выражение и типы полей - см. в таблице). Поля инициализировать при создании объекта. Выполнить переопределение метода Equals(с одним и двумя параметрами) для сравнения объектов и метода ToString()для вывода состояния объекта.

Таблица 1

проект конструктор операция

Решение

class abObject

{

int a, b, c;

string op;

public abObject(int b, string operation)

{

this.b = b;

op = operation;

C = 0;

}

public int C

{

get

{

return c;

}

set

{

switch (op)

{

case "*=":

c = b*1; break;

case "++":

c = b + 1; break;

case "-":

c = b- b; break;

default:

c = 0; break;

}

}

}

public override string ToString()

{

return $" B: {b}, Операция: {op}.";

}

public bool Equals(abObject obj)

{

if ( b == obj.b && C == obj.C)

return true;

else

return false;

}

}

}

using System;

namespace задание2

{

class Program

{

static void Main(string[] args)

{

abObject Ob = new abObject( 7, "++");

abObject Ob1 = new abObject( 7, "-");

Console.WriteLine(Ob.ToString());

Console.WriteLine(Ob1.ToString());

if (Ob.Equals(Ob1))

Console.WriteLine("True");

else

Console.WriteLine("False");

}

}

}

Размещено на Allbest.ru

...

Подобные документы

  • Знакомство с основными особенностями развития игровой индустрии. Создание компьютерных игр как одна из прикладных сфер программирования. Общая характеристика набора методов класса Area. Рассмотрение способов создания игры "Змейка", анализ этапов.

    курсовая работа [799,4 K], добавлен 13.06.2013

  • Абстрактный класс Klient с методами, позволяющими вывести на экран информацию о клиентах. Функциональные элементы класса: скрытые поля, конструкторы с параметрами и без параметров, методы, свойства, индексаторы, перегруженные операции, удобный интерфейс.

    контрольная работа [72,4 K], добавлен 21.04.2016

  • Понятие перегрузки (доопределения) операций и её разновидности. Пример соответствующей программы перегрузки, понятие полиморфизма и правила isA. Использование классов операторов в программах языка С++, конструкций операторов и производных классов.

    реферат [19,9 K], добавлен 30.10.2011

  • Знакомство с основными принципами построения Web-сайтов. Рассмотрение этапов создания простой страницы HTML. Анализ способов форматирования сайтов. Общая характеристика видов списков: маркированные, нумерованные. Особенности таблиц каскадных стилей.

    курсовая работа [2,5 M], добавлен 18.07.2014

  • Рассмотрение основных этапов создания приложения "Записная книжка", основное предназначение. Анализ способов выбора среды программирования. Знакомство с элементом управления Data Grid View. Общая характеристика методов конструкции языка программирования.

    контрольная работа [1002,4 K], добавлен 21.06.2014

  • Изучение методов и этапов создания класса Complex, позволяющего работать с комплексными числами и производить с ними следующие операции: сложение, вычитание, умножение, деление двух комплексных чисел. Написание кода для ввода и вывода исходных данных.

    курсовая работа [628,4 K], добавлен 11.09.2010

  • Общая характеристика ключевых этапов разработки программного обеспечения "Автоматизация учета сведений о графике работы сотрудников и расчёт заработной платы". Знакомство с основными особенностями использования электронно-вычислительной техники в учете.

    дипломная работа [362,7 K], добавлен 08.12.2014

  • Переопределение метода внутри одного класса. Сущность перегрузки унаследованного метода. Области применения абстрактного класса. Перегрузка унарных и бинарных операций. Области видимости локальных и глобальных переменных. Способы обращения к ним.

    презентация [81,2 K], добавлен 09.12.2013

  • Классы, объекты и объектные ссылки. Особенности статических методов. Конструкторы, специальные переменные, наследование. Создание объектов внутренних классов. Соглашения об именовании. Некоторые методы класса Object. Абстрактные классы и атрибуты.

    лекция [130,6 K], добавлен 21.06.2014

  • Знакомство с основными проблемами и перспективами автоматизации системы учета многодетных семей отдела социальной защиты. Рассмотрение ключевых этапов проектирования объектов базы данных, отвечающих обозначенным функциям системы на основе СУБД Access.

    дипломная работа [3,2 M], добавлен 16.05.2017

  • Знакомство с особенностями и основными этапами разработки информационной системы магазина сантехники "САНТЕХсити". Общая характеристика системы программирования Delphi. Рассмотрение способов определения форм представления входных и выходных данных.

    дипломная работа [1,1 M], добавлен 25.06.2017

  • Общая характеристика инфологической модели информационной системы. Знакомство с особенностями проектирования базы данных "Библиотека", анализ основных этапов. Рассмотрение способов составления запросов по выборке информации из таблиц базы данных.

    контрольная работа [831,2 K], добавлен 08.12.2013

  • Понятие процедур и функций, их параметры, отличия и особенности спецификаций и тела. Вызов процедур и функций. Использование хранимых функций в SQL-операторах, уровни строгости для их вызова. Синтаксис удаления процедуры. Перегрузка модульных подпрограмм.

    презентация [259,9 K], добавлен 14.02.2014

  • Транзакция как серия связанных операций, вносящих изменения в базу данных. Общая характеристика команд ObjectScript. Знакомство с функциями пакета, способы создания и удаления. Рассмотрение этапов введения в разработку. Анализ свойств хранимых объектов.

    презентация [1,2 M], добавлен 05.01.2014

  • Основные действия над матрицами. Последовательность умножения вектора на матрицу. Спецификаторы доступа, которые используют для ограничения доступа к элементам класса. Перегрузка операций. Создание программы, реализующей работу с классом Matrix.

    курсовая работа [321,7 K], добавлен 26.01.2013

  • Знакомство с особенностями создания WEB-страниц с использованием HTML. Общая характеристика основ компьютерного моделирования с применением Powersim и AnyLogic. Анализ способов создания динамических WEB-страниц с использованием JavaScript и PHP.

    презентация [801,7 K], добавлен 25.09.2013

  • Общая характеристика швейной фабрики "Афродита", анализ учета системы материальных средств на складе. Общая характеристика организационной структуры предприятия. Рассмотрение способов формирования группировочной ведомости, знакомство с особенностями.

    контрольная работа [3,0 M], добавлен 08.09.2013

  • Строение класса complex. Примеры использования класса complex. Результат выполнения программы. Цикл возведения первого числа во второе. Операции с комплексными числами. Конструкторы и операции присваивания для типа complex. Неявные преобразования типов.

    курсовая работа [1,5 M], добавлен 18.05.2011

  • Данные как непременный атрибут любой программы. Знакомство с особенностями трёхуровневого иерархического списка. Общая характеристика основных компонентов формы MainForm и Correct. Анализ логической структуры данных, рассмотрение способов управления.

    дипломная работа [491,1 K], добавлен 27.05.2013

  • Знакомство с особенностями создания электронного учебно-методического комплекса по предмету информатика на примере 9 класса. Общая характеристика среды Turbo Pascal 7.0. Анализ приоритетных направлений процесса информатизации современного общества.

    дипломная работа [3,7 M], добавлен 23.04.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.