Перегрузка методов, перегрузка операций
Знакомство с основными особенностями и проблемами переопределения методов класса 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