лекции проги / lec20
.pdfМассивы.
Пример совмещения инициализации массива с его передачей как параметра методу.
using System;
public class ArrayClass{
static void PrintArray(int[,] w){ for (int i=0; i < 4; i++)
for (int j=0; j < 2; j++) Console.WriteLine("Element({0},{1})={2} i, j, w[i,j]);
}
public static void Main(){
PrintArray(new int[,] {{1,2}, {3,4}, {5,6}, {7,8}}); } }
Методы обработки массивов.
public int Length{get;} Возвращает целое число представляющее общее количество элементов во всех измерениях массива.
public int Rank{get;} Возвращает целое число представляющее количество измерений массива.
public static Array CreateInstance(Type, int, int); Статический метод (один из вариантов), созда¸т массив элементов заданного типа и определ¸нной размерности.
public void SetValue(object, int, int); Присваивает элементу массива значение, представленное первым параметром (один из вариантов).
public object GetValue(int, int); Извлекает значение из двумерного массива по индексам (один из вариантов).
Методы обработки массивов. Пример.
using System;
public class DemoArray{ public static void Main(){
// Создали и проинициализировали двумерный массив строк. Array myArray=Array.CreateInstance( typeof(String), 2, 4 ); myArray.SetValue( "The quarter moon " , 0, 0 ); myArray.SetValue( "comes out, " , 0, 1 );
myArray.SetValue( "leaves" , 0, 2 ); myArray.SetValue( "a fog," , 0, 3 ); myArray.SetValue( "takes out" , 1, 0 ); myArray.SetValue( "a knife" , 1, 1 ); myArray.SetValue( "from" , 1, 2 ); myArray.SetValue( "a pocket." , 1, 3 );
Методы обработки массивов. Пример.
// Показали содержимое массива.
Console.WriteLine( "The Array contains the following values:"); for ( int i = myArray.GetLowerBound(0); i <= myArray.GetUpperBound(0); i++ )
for ( int j = myArray.GetLowerBound(1); j <= myArray.GetUpperBound(1); j++ )
Console.WriteLine( "\ t[{0},{1}]:\ t{2}" , i, j, myArray.GetValue( i, j ) ); } }
Создание объекта. Конструктор.
Конструктором называется группировка кода, которой переда¸тся управление при создании объекта. Синтаксис объявления конструктора аналогичен обявлению метода. Те же спецификаторы доступа, имя, список параметров. Особенности конструктора заключаются в том, что:
-конструктор не имеет никакого возвращаемого спецификатора даже void,
-имя конструктора полностью совпадает с именем класса или структуры,
-в классе и в структуре можно объявлять множество вариантов конструкторов. Они должны отличаться списками параметров. В структуре невозможно объявить конструктор с пустым списком параметров,
-не существует выражения вызова для конструктора, управление в конструктор переда¸тся посредством выполнения специальной операции new.
Создание объекта. Конструктор.
using System; class NewTest { struct MyStruct { public int x; public int y; //конструктор
public MyStruct (int x, int y) { this.x = x;
this.y = y; } }
Создание объекта. Конструктор.
class MyClass { public string name; public int id;
// конструктор
public MyClass (int id, string name) { this.id = id;
this.name = name;
} }
Создание объекта. Конструктор.
public static void Main() {
// Create objects using parameterized constructors: MyStruct Location2 = new MyStruct(10, 20);
MyClass Employee2 = new MyClass(1234, "John Martin Smith"); Console.WriteLine("Assigned values:"); Console.WriteLine("Struct members: 0, 1
Location2.x, Location2.y); Console.WriteLine("Class members: 0, 1" , Employee2.name, Employee2.id); } }
Наследование.
Наследование является одним из принципов ООП. Основы классификации и реализация механизмов повторного использования и модификации кода. Базовый класс зада¸т общие признаки и общее поведение для классов-наследников. Общие (наиболее общие) свойства и методы наследуются от базового класса, в дополнение к которым добавляются и определяются новые свойства и методы. Таким образом, прежде всего, наследование реализует механизмы расширения базового класса.
Наследование. Пример.
using System;
namespace Inheritance_1 { public class A {
public int val1_A;
public void fun1_A (String str) { Console.WriteLine("A’s fun1_A:"+ str); } } public class B:A {
public int val1_B;
public void fun1_B (String str) { Console.WriteLine("B’s fun1_B:"+ str); } }