Контрольные вопросы:
1. Объясните деструктор объекта, опишите его назначение при вызове, синтаксис, приведите примеры программного кода.
2. Опишите статические поля и методы класса, приведите примеры использования.
3. Опишите объекты и функции в C#, приведите примеры их использования.
4. Объясните термины геттеры и сеттеры, опишите их назначение, форму написания, приведите примеры их использования.
Лекция 27. формирование простого приложения графического редактора в среде Visual C#.
Цель лекции: формирование у студентов умений демонстрировать свои представления о формирование простого приложения графического редактора в среде Visual C#.
В результате освоения данной лекции студенты приобретают следующие способности: технология объектно-ориентированного программирования базируется на трех основных принципах-инкапсуляция, наследование и полиморфизм.
Принцип инкапсуляции-объединение данных и методов их обработки в единую структуру. Формализованная инкапсуляция - это объединение полей и методов класса с целью защиты данных от прямого доступа к программе. Поля объекта должны использоваться через интерфейс - доступ или набор правил свойств. Сокрытие полей объекта-инкапсуляция (от слова» капсула") осуществляется через свойства. Понятие свойств подробно рассмотрено в предыдущей лекции, поэтому в программе рассмотрим только пример использования свойства. Мы используем класс treyg в качестве примера для работы со свойствами класса.
Задача 23.1. в классе treyg через свойства к стенкам треугольника присваиваются случайные целые числа, числа находятся в интервале от минус 5 до 5. Свойства проверяют условие: введенные числа должны быть больше 0. После ввода значений треугольных стенок отдельный метод класса проверяет условие: сумма двух любых стенок должна быть больше третьей стенки. Даны разъяснения по каждому шагу работы программы.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
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;
}
}
}
Работа программы представлена на рис. 23.1.
Рисунок 23.1 - рабочее окно программы
MessageBox При выходе окна Show() в главном окне программы отображаются значения свойств треугольных стенок.
Достарыңызбен бөлісу: |