Понятие инкапсуляции

 

Технология объектно-ориентированного программирования базируется на трех основных принципах – инкапсуляции, наследовании и полиморфизме.

Принцип инкапсуляции – объединение в одной структуре данных и методов их обработки лежит в основе самой организации класса.

Формально инкапсуляция это объединение полей и методов класса с целью защиты данных от непосредственного доступа из программы.

Поля объекта должны использоваться через его интерфейс – совокупность правил доступа или свойства. Скрытие полей объекта – их инкапсуляция (от слова «капсула») осуществляется через свойства.

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

Используем класс treyg в качестве учебного примера, для демонстрации роботы со свойствами класса.

Задача 9.1 В классе treyg сторонам треугольника, через свойства, присваиваются случайные целые числа в диапазоне от минус 5 до 5. Свойства выполняют проверку, чтобы вводимые значения были больше 0. После ввода значений сторон треугольника, отдельным методом класса выполняется проверка, что сумма любых двух сторон больше третьей. Каждый шаг работы программы сопровождать комментариями.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

public class treyg

{

private int a, b, c, p;

public string ss;

public treyg()

{

a = b = c = 0;

}

public int Aa

{

get { return a; }

set { if (value > 0) a = value; else a = 0; }

}

public int Bb

{

get { return b; }

set { if (value > 0) b = value; else b = 0; }

}

public int Cc

{

get { return c; }

set { if (value > 0) c = value; else c = 0; }

}

public int Pp

{

get { return p; }

}

public void proverka()

{

if (a + b > c && a + c > b && b + c > a)

{

p = a + b + c;

ss = ss + "Периметр треугольника = " + p.ToString();

}

else

MessageBox.Show("Одна из сторон треугольника больше суммы двух других Повторите ввод ");

}

}

 

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

Random rnd = new Random();

int A=1, B=1, C=1;

bool ok = true;

treyg t = new treyg();

while (ok)

{

A = rnd.Next() % 11 - 5; t.Aa = A;

B = rnd.Next() % 11 - 5; t.Bb = B;

C = rnd.Next() % 11 - 5; t.Cc = C;

textBox1.Text = Convert.ToString(t.Aa);

textBox2.Text = Convert.ToString(t.Bb);

textBox3.Text = Convert.ToString(t.Cc);

 

if (A + B + C == t.Aa + t.Bb + t.Cc)

{

t.proverka();

if (t.Pp != 0) ok = false;

}

else

MessageBox.Show("Одна из сторон треугольника меньше 0! Повторите ввод ");

}

textBox1.Text = Convert.ToString(t.Aa);

textBox2.Text = Convert.ToString(t.Bb);

textBox3.Text = Convert.ToString(t.Cc);

textBox4.Text = t.ss;

}

}

}

Работа программы:

 

 

Рисунок 9.1 – Окна работающей программы

 

При появлении окна MessageBox.Show() одновременно в главном окне программы отображались значения свойств сторон треугольника.

 

 








Дата добавления: 2018-11-25; просмотров: 316;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.