
- •Простейший класс
- •Класс с конструкторами
- •Перегрузка конструкторов
- •Использование свойств в классе
- •Применение свойства наследования на примере виртуальных и абстрактных классов
- •Использование интерфейсов
- •Сравнение обычного массива и семейства
- •Сравнение обычного массива и семейства
- •Создание семейств. Использование индексаторов
- •Перегрузка простейших операций в простейших классах
- •Перегрузка операций с использованием стандартных интерфейсов и методов класса Object
- •Использование делегатов в качестве параметров функции
- •Создание собственной библиотеки классов
Применение свойства наследования на примере виртуальных и абстрактных классов
Условие задачи
Дан абстрактный класс «Геометрическая фигура», внутри него определить абстрактные и (или) виртуальные методы.
Производным классом объявить класс из индивидуального задания.
В обоих классах присутствуют конструкторы, метод ToString(), метод run() вычисления площади (периметра, объема - если это возможно).
14 вариант. Трапеция
Листинг программы:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Лаба_6
{
public abstract class Chisla
{
public int h;
public int a;
public int b;
public double S;
public Chisla(int H, int A, int B)
{
this.h = H;
this.a = A;
this.b = B;
}
public abstract void f();
}
public class Trapiciya : Chisla
{
public double R;
public override string ToString()
{
return (string.Format(@"Объем трапеции: {1}", R, S));
}
public Trapiciya(int H, int A, int B)
: base(H, A, B)
{
}
public override void f()
{
S = ((a+b)/2)*h;
}
}
class Program
{
static void Main(string[] args)
{
Trapiciya otv = new Trapiciya(5, 10, 4); // h=5 ,a=10, b=4
otv.f();
Console.WriteLine(otv.ToString());
Console.ReadKey();
}
}
}
Тестирование программы
Рисунок 6 – Тестирование программы
Использование интерфейсов
Условие задачи
Реализовать иерархию классов из индивидуального задания. Определить и использовать интерфейс IFigure (Фигура). В интерфейс включить методы вычисления площади (если это возможно) и объема (если это возможно) фигуры, а также свойства, связанные с соответствующими данными классов.
14 Фигура - Точка - Цилиндр
Листинг программы:
sing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Laba_7
{
public interface IFigure
{
void vvod();
void run();
void vivod();
}
class Figure : IFigure
{
double r,v,h,p;
public void vvod()
{
p = 3.14592;
Console.Write("Введетие радиус: ");
r = Convert.ToInt32(Console.ReadLine());
Console.Write("Введетие высату: ");
h = Convert.ToInt32(Console.ReadLine());
}
public void run()
{
v = p*Math.Pow(r,2)*h;
}
public void vivod()
{
Console.WriteLine("Объем цилиндра: " + v);
}
class Figure1 : Figure
{
double s,a,b;
public void vvod()
{
Console.Write("Введетие a сторону цилиндра: ");
a = Convert.ToInt32(Console.ReadLine());
Console.Write("Введетие b сторону цилиндра: ");
b = Convert.ToInt32(Console.ReadLine());
}
public void run()
{
s = (a+b)*2;
}
public void vivod()
{
Console.WriteLine("Площадь цилиндра: " + s);
}
}
class Program
{
static void Main(string[] args)
{
Figure f = new Figure();
f.vvod();
f.run();
f.vivod();
Figure1 a = new Figure1();
a.vvod();
a.run();
a.vivod();
Console.ReadKey();
}
}
}
}
Тестирование программы
Рисунок 7 – Тестирование программы