12. Классы, конструкторы, методы в C#. Транспонирование матриц. |
В этом уроке быстренько пробежимся по классам, конструкторам классов и методов. Класс — это конструктор, который позволяет создавать свои собственные пользовательские типы путем группирования переменных других типов, методов и событий. Ссылка. Если говорить человеческим языком, класс это что-то наподобие шаблона, в котором мы описываем его внутренние переменные. Потом мы сможем создать любое кол-во экземпляров класса, что позволит нам по сто раз не писать одно и то же, а использовать всего один шаблон. Класс содержит в себе конструктор, который называется по названию класса. Если мы имеем public class myClass, то и конструктор , будет выглядить так же: public myClass(int arg) {...}. Конструктор может не принимать переменных, а может принимать и ни одну. Ничто не мешает нам создать множество различных конструкторов.
public class myClass
Метод представляет собой блок кода, содержащий набор инструкций. Программа инициирует выполнение операторов, вызывая метод и задавая необходимые аргументы метода. Ссылка. В отличие от конструктора, метод может возвращать значение, для этого используется ключевое слово return; Разберём всё это на простом примере. Задание: создадим класс, который будет содержать конструктор и 3 метода. Конструктор будет заполнять нашу матрицу. Первый метод будет печатать матрицу, второй метод будет транспонировать матрицу, третий метод будет считать сумму элементов на диагонали матрицы и выдавать нам это значение. public class matrica //создаём класс matrica { private int n; private double[ , ] a; public matrica(int n) //конструктор примает значение n, которое является размерностью. { this.n = n; a = new double[n, n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { a[i,j] = i+2*j+(i*j); //заполняем матрицу с помощью простого линейного уравнения } } }
public void print() //первый метод, который печатает матрицу. { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Console.Write(" {0}",a[i, j]); } Console.WriteLine(); } } public void transp()//второй метод, который транспонирует матрицу. { double tmp; for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { tmp = a[i, j]; a[i, j] = a[j, i]; a[j,i] = tmp; }
} } public double diag()//третий метод, который возвращает сумму элементов ноа диагонали. { double s = 0; for (int i = 0; i < n; i++) { s = s + a[i, i]; } return s;//не забываем ключевое слово return. } } Ну вот и весь код класса matrica. Теперь заполним основной класс Program: class Program { static void Main(string[] args) { matrica a = new matrica(4); //создаём экземпляр класса, передаём размер - 4 на 4. a.print();//печатаем матрицу, смотрим. a.transp();//транспонируем матрицу. Console.WriteLine();//выводим пустую строчку, чтоб данные слитно неписались a.print();//печатаем матрицу, смотрим. Console.WriteLine();//печатаем пустую линию. Console.WriteLine(a.diag());//печатаем сумму элементов на диагонали. } }
Вот и всё. Прошу прощения, что код выглядит не совсем структурировано. Технические проблемы:) |