Содержание
- 2. Классы Класс представляет собой шаблон - тип данных, по которому определяется форма объекта. Объект - это
- 3. Классы Данные содержатся в переменных — полях-членах класса, а код — в подпрограммах – функциях-членах класса.
- 4. Классы class имя_класса { // Объявление переменных экземпляра доступ тип переменная1; //... доступ тип переменнаяN; //
- 5. Пример 1 using System; namespace ConsoleAppFunc{ class Building { public int Floors; // количество этажей public
- 6. Пример 1 // Присвоить значения полям в объекте house house.Occupants = 4; house.Area = 2500; house.Floors
- 7. Пример 1 // Вычислить площадь на одного человека в учреждении areaPP = office.Area / office.Occupants; Console.WriteLine("Учреждение
- 8. Классы Building house = new Building(); /* Объявление переменной house можно отделить от создания объекта, на
- 9. Методы Переменные экземпляра (объекта) и методы (подпрограммы, функции) являются двумя основными составляющими классов. Пользовательские функции (подпрограммы),
- 10. Методы Метод — это функциональный элемент класса, который реализует вычисления или другие действия, выполняемые классом или
- 11. Методы Общая форма определения метода: [модификаторы] тип_возвращаемого_значения название_метода ([список_формальных_параметров]) { // тело функции (метода) }
- 12. Модификаторы static делает метод доступным только через класс, в котором он определяется, но не через экземпляры
- 13. Модификаторы virtual (виртуальный) — метод может переопределяться. abstract (абстрактный) — метод должен обязательно переопределяться в не
- 14. Методы Определение метода в консольном приложении: static (){ return ; } В объектно-ориентированной среде программирования обработчик
- 15. Методы
- 16. Методы public void MyMeth() { // ... if (done) return; // ... } int Sqr(int i)
- 17. Пример 2 (ООП) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using
- 18. Пример 2 (ООП) private void button1_Click(object sender, EventArgs e) { Building house = new Building(); Building
- 19. Пример 2 (ООП) richTextBox1.AppendText ("Дом имеет:\n " + house.Floors.ToString() + " этажа\n " + house.Occupants.ToString() +
- 20. Пример 2 (ООП) class Building { public int Floors; // количество этажей public int Area; //
- 21. Методы Если член класса объявляется как static, то он становится доступным до создания любых объектов своего
- 22. Методы Ограничения на применение методов типа static: • В методе типа static должна отсутствовать ссылка this,
- 23. Пример 3 namespace ConsoleAppFunc{ /* в пространстве имен нельзя размещать переменные и подпрограммы, но можно пользовательские
- 24. Пример 3 class Program { static void Method1() { Console.WriteLine("Method1"); } void Method2() { // не
- 25. Пример 3 static void Main(string[] args) { // вызов статических методов и переменных Pr.Val = 1;
- 26. Пример 3 p.Method2(); Console.Write("Введите целое число - "); int j = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(j + " /
- 27. Параметры методов Параметры используются для обмена информацией с методом. Параметры, описываемые в заголовке метода – формальные
- 28. Параметры методов Параметры, которые передаются в метод вместо формальных параметров при вызове этого метода, называются аргументами
- 29. Параметры методов int y = 3; double x = 0.9; double S = Sum(y, x); Console.WriteLine(S);
- 30. Параметры методов Существуют два способа передачи параметров: по значению и по ссылке. При передаче по значению
- 31. Параметры методов При передаче по ссылке (по адресу) метод получает копии адресов аргументов, он осуществляет доступ
- 32. Пример 4 namespace ConsoleAppFunc{ class Test { public int a, b; public Test() { } public
- 33. Пример 4 /* Этот метод не оказывает никакого влияния на аргументы, используемые для его вызова. */
- 34. Пример 4 class CallByValue { static void Main() { Test ob = new Test(); int a
- 35. Параметры методов Модификатор параметра ref принудительно организует вызов по ссылке, а не по значению. Этот модификатор
- 36. Пример 5 namespace ConsoleAppFunc{ class RefTest { public void Sqr(ref int i, int j) { //
- 37. Пример 5 class RefDemo { static void Main() { RefTest ob = new RefTest (); int
- 38. Параметры методов Модификатор параметра out подобен модификатору ref, за одним исключением: он служит только для передачи
- 39. Пример 6 namespace ConsoleAppFunc{ class Decompose { public int GetParts(double n, out double frac){ int whole;
- 40. Пример 6 class UseOut { static void Main() { Decompose ob = new Decompose(); int i;
- 41. Параметры методов Применение модификаторов ref и out не ограничивается только передачей значений обычных типов. С их
- 42. Пример 7 namespace ConsoleAppFunc{ class RefSwap { int a, b; public RefSwap(int i, int j) {
- 43. Пример 7 // Этот метод изменяет свои аргументы public void Swap(ref RefSwap ob1, ref RefSwap ob2)
- 44. Пример 7 class RefSwapDemo { static void Main() { RefSwap x = new RefSwap(1, 2); RefSwap
- 45. Пример 7 // Смена объектов, на которые // ссылаются аргументы х и у. х.Swap(ref x, ref
- 46. Параметры методов Ссылка может использоваться как результат функции. Для возвращения из функции ссылки в сигнатуре функции
- 47. Пример 8 static void Main(string[] args){ int[] numbers = { 1, 2, 3, 4, 5, 6,
- 48. Пример 8 static ref int Find(int number, int[] numbers){ for (int i = 0; i if
- 49. Параметры методов C# позволяет использовать необязательные параметры. Для таких параметров необходимо объявить значение по умолчанию. После
- 50. Пример 9 static int OP(int x, int y, int z=5, int s=4){ return x + y
- 51. Параметры методов Язык С# позволяет указывать один (и только один последний в списке параметров) специальный параметр
- 52. Пример 10 static void Addition(params int[] integers){ // передача параметра с params int result = 0;
- 53. Пример 10 static void AdditionMas(int[] integers, int k){ // передача массива int result = 0; for
- 54. Пример 10 static void Main(string[] args){ Addition(1, 2, 3, 4, 5); int[] array = new int[]
- 55. Область видимости (контекст) переменных Каждая переменная доступна в рамках определенного контекста или области видимость. Вне этого
- 56. Пример 11 class Program{ // начало контекста класса static int a = 9; // переменная уровня
- 57. Пример 11 static void Display(){ // начало метода Display int a = 5; // локальная переменная
- 58. Организация закрытого и открытого доступа - Члены, используемые только в классе, должны быть закрытыми. - Данные
- 59. Организация закрытого и открытого доступа - Если изменение члена приводит к последствиям, распространяющимся за пределы области
- 60. Организация закрытого и открытого доступа - Члены, способные нанести вред объекту, если они используются неправильно, должны
- 61. Организация закрытого и открытого доступа - Методы, получающие и устанавливающие значения закрытых данных, должны быть открытыми.
- 62. Пример 12 namespace ConsoleAppFunc{ class MyClass { private int alpha; // закрытый доступ, // указываемый явно
- 63. Пример 12 public void SetBeta(int a) {// открытый доступ beta = a; } public int GetBeta()
- 64. Пример 12 class AccessDemo { static void Main() { MyClass ob = new MyClass(); // Доступ
- 65. Пример 12 // Следующие виды доступа к членам alpha // и beta данного класса не разрешаются.
- 66. Конструкторы Каждый объект (переменная типа класс) содержит свой экземпляр полей класса. Методы находятся в памяти в
- 67. Конструкторы
- 68. Конструкторы Конструктор - метод класса - предназначен для инициализации объекта. Он вызывается автоматически при создании объекта
- 69. Конструкторы Общая форма конструктора: [доступ] имя_класса([список_параметров]) { // тело конструктора }
- 70. Пример 13 namespace ConsoleApplication1{ class Demo { public Demo( int a, double y ) { //
- 71. Пример 13 class Class1{ static void Main() { // вызов конструктора Demo a = new Demo(
- 72. Пример 14 class Demo { public Demo() {} // конструктор 1 - по умолчанию public Demo(int
- 73. Пример 14 static void Main() { Demo a1 = new Demo(); // вызов конструктора 1 Demo
- 74. Конструкторы В C# существует возможность описывать статический класс, то есть класс с модификатором static. Экземпляры такого
- 75. Пример 15 namespace ConsoleApplication1{ static class D{ static int a = 200; static double b =
- 76. Пример 15 class Class1{ static void Main(){ D.Print(); } } }
- 77. Пример 16 class MathLib{ public const double PI=3.141; public const double E = 2.81; public const
- 78. Пример 17 class MathLib{ public readonly double K = 23; // инициализация public MathLib(double _k) {
- 79. Пример 17 class Program{ static void Main(string[] args) { MathLib mathLib = new MathLib(3.8); Console.WriteLine(mathLib.K); //
- 80. Деструкторы Система "сборки мусора" в С# освобождает память от лишних объектов автоматически, действуя незаметно и без
- 81. Деструкторы Общая форма деструктора: ~имя_класса() { // код деструктора } В деструкторе можно указать те действия,
- 82. Пример 18 class Destruct { public int x; public Destruct(int i) { x = i; }
- 83. Пример 18 class DestructDemo { static void Main() { int count; Destruct ob = new Destruct
- 84. Пример 19 // Масив объектов using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using
- 85. Пример 19 namespace ConAVar0{ [Serializable] class base0 { private double x, y; // координаты точки private
- 86. Пример 19 class child : base0 { private base0 []a = new base0 [5]; private int
- 87. Пример 19 try { BinaryFormatter formatter = new BinaryFormatter(); using (FileStream fout = new FileStream("in.txt", FileMode.OpenOrCreate)){
- 88. Пример 19 foreach (base0 p in a) Console.WriteLine($"{p.outn()} ({p.outx()}; {p.outy()})"); } } catch (IOException e) {
- 89. Пример 19 public void sort() { /*Реализация алгоритма линейной сортировки по координате Y в порядке возрастания*/
- 90. Пример 19 /* функция перегружает метод базового класса для определения точки, находящейся в 1 четверти координатной
- 91. Пример 19 /* функция выводит в файл "rezult.txt" характеристики точек, размещенных в первой четверти координатной оси
- 92. Пример 19 for (int i = 0; i if (space(a[i]) == 1) { formatter.Serialize(fout, a[i]); m++;
- 93. Пример 19 public int inrezfile() { int k; // - оптимизация int k = 0; k
- 94. Пример 19 Console.WriteLine($"Точка {b.outn()} с координатами {b.outx()} и {b.outy()}"); k++; } // end while fin.Close(); }
- 95. Пример 19 class Program { static void Main(string[] args) { child ob = new child(); ob.infile();
- 97. Скачать презентацию