Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
12.02.2015
Размер:
1.25 Mб
Скачать

Массивы.

Пример совмещения инициализации массива с его передачей как параметра методу.

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); } }

Соседние файлы в папке лекции проги