Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб. работа 1 с C# и Java.doc
Скачиваний:
1
Добавлен:
17.08.2019
Размер:
94.21 Кб
Скачать

9

К лабораторной работе 1 по ООП

Часть 1. Классы и наследование в языке с#

Каркас консольного С# приложения

using System;

namespace csLab1_k2_1

{

/// <summary>

/// Summary description for Class1.

/// </summary>

class Class1

{

/// <summary>

/// The main entry point for the application.

/// </summary>

[STAThread]

static void Main(string[] args)

{

//

// TODO: Add code to start application here

//

}

}

}

Структура Book с открытыми данными и с функцией Main()

using System;

struct Book

{

public int pages;

public string name ;

static void Main()

{

Book book= new Book();

book.name= "BOOK";

book.pages= 500;

Console.WriteLine("book.name= " + book.name);

Console.WriteLine("book.pages= " + book.pages);

}

}

Класс Book с открытыми данными и с функцией Main()

using System;

class Book

{

public int pages;

public string name ;

static void Main()

{

Book book= new Book();

book.name= "BOOK";

book.pages= 500;

Console.WriteLine("book.name= " + book.name);

Console.WriteLine("book.pages= " + book.pages);

}

}

Структура или класс Book с открытыми данными и без функции Main()

using System;

class Book // или структура Book

{

public int pages;

public string name ;

}

class Class1

{

static void Main()

{

Book book= new Book();

book.name= "BOOK";

book.pages= 500;

Console.WriteLine("book.name= " + book.name);

Console.WriteLine("book.pages= " + book.pages);

}

}

Класс Book с закрытыми данными и открытыми функциями

using System;

class Book

{

private int pages;

private string name;

public void SetPages (int Pages) {pages= Pages;}

public int GetPages ( ) {return pages;}

public void SetName (string Name) {name= Name;}

public string GetName ( ) {return name;}

}

class Class1

{

static void Main()

{

Book book= new Book();

book.SetName("BOOK");

book.SetPages(500);

Console.WriteLine("book.name= " + book.GetName());

Console.WriteLine("book.pages= " + book.GetPages());

}

}

Наследование

using System;

class Book

{

private int pages;

private string name;

public void SetPages (int Pages) {pages= Pages;}

public int GetPages ( ) {return pages;}

public void SetName (string Name) {name= Name;}

public string GetName ( ) {return name;}

}

class ManualBook: Book

{

bool manual;

public void SetMenual (bool Manual) {manual= Manual;}

public bool IsManual ( ) {return manual;}

}

class Class1

{

static void Main()

{

ManualBook manualBook= new ManualBook();

manualBook.SetName("BOOK");

manualBook.SetPages(500);

manualBook.SetMenual (true);

Console.WriteLine("book " + manualBook.GetName()+

" contains " + manualBook.GetPages()+ " pages");

if (manualBook.IsManual()) Console.WriteLine("book is manual\n");

else Console.WriteLine("book isn't manual\n");

}

}

Задание

  1. Самостоятельно создать класс калькулятора Calc с интерфейсом:

void Init (int n) – инициализировать скрытый аккумулятор accumulator

числом n,

int Get ( ) – получить значение accumulator,

void Add (int n) – прибавить n к значению accumulator,

void Sub (int n) – вычесть n из значения accumulator.

  1. Создать класс OtherCalc, порождённый из класса Calc и расширяющий его интерфейс следующей функцией

void Mul (int n) – умножить значение accumulator на указанное число n.

  1. Создать класс AnotherCalc, порождённый из класса OtherCalc и расширяющий его интерфейс следующей функцией

void ChangeSign ( ) – изменить знак значения accumulator,

bool IsSign ( ) – получить знак значения accumulator.