Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Информатика.doc
Скачиваний:
16
Добавлен:
27.10.2018
Размер:
1.05 Mб
Скачать

3 Этап Составление программ

Самостоятельное составление программ и решение задач.

9.Методика введения понятия «Наследование классов»

1 Этап Подготовительный

1.Методы классов

Метод – это функция, которая принадлежит классу и выполняет какое-либо действие.

Class Worker

'Добавляем свойство salary (Зарплата)

Property salary() As Integer

'Чтение свойства

Get

Return salaryValue

End Get

'Запись свойства

Set(ByVal Value As Integer)

salaryValue = Value

End Set

End Property

'Переменная для хранения свойства

Private salaryValue As Integer

'Метод для увеличения зарплаты

Public Sub IncSalary(ByVal inc As Integer)

salaryValue = salaryValue + inc

End Sub

End Class

2. Наследование - одна из самых важных черт ООП. Вкратце она представляет из себя следующее - вы создаете один класс как потомок другого. Эти два класса называется потомок и предок соответственно. Часто говорят еще о дочернем и родительском классе. Созданный вами класс автоматически получает все способности своего родительского класса. Плюс в классе-потомке вы добавляете еще что-нибудь, чего не было в классе родительском - какие-нибудь методы или поля.

Class A

Public n As Integer

Public Sub incN()

'Увеличиваем n

n = n + 1

End Sub

End Class

'Класс B - потомок класса A

Class B

Inherits A

Public m As Integer

Public Sub decN()

'Уменьшаем n

n = n - 1

End Sub

End Class

2 Этап Работа с готовыми программами

Пример программы:

Процесс программирования состоит из 2 частей:

  • визуальное конструирование;

  • программирование событий;

Проект «Дом»

Public Class Dom

Protected picGr As Graphics

Protected X, Y, Shirina As Integer

Protected Pen As Pen

' Констуктор

Public Sub SetDom(ByVal posX As Integer, ByVal posY As Integer, ByVal A As Integer, ByVal picG As Graphics, ByVal PenDraw As Pen)

MyClass.X = posX

MyClass.Y = posY

MyClass.Shirina = A

MyClass.picGr = picG

MyClass.Pen = PenDraw

End Sub

Public Overridable Sub Show()

picGr.DrawRectangle(Pen, X, Y - Shirina, Shirina, Shirina)

Dim pointsKrisha As Point() = _

{New Point(X + Convert.ToInt16(-Shirina / 10), Y - Shirina), _

New Point(X + Convert.ToInt16(0.5 * Shirina), Y - 2 * Shirina), _

New Point(X + Convert.ToInt16(1.1 * Shirina), Y - Shirina), _

New Point(X + Convert.ToInt16(-Shirina / 10), Y - Shirina)}

picGr.DrawLines(Pen, pointsKrisha)

picGr.DrawRectangle(Pen, X + Convert.ToInt16(0.25 * Shirina), Y - Convert.ToInt16(0.75 * Shirina), Convert.ToInt16(0.5 * Shirina), +Convert.ToInt16(0.5 * Shirina))

picGr.DrawEllipse(Pen, X + Convert.ToInt16(0.4 * Shirina), Y - Convert.ToInt16(1.5 * Shirina), Convert.ToInt16(0.2 * Shirina), Convert.ToInt16(0.25 * Shirina))

End Sub

End Class

Public Class DomTruba

Inherits Dom

Public Overrides Sub Show()

MyBase.Show()

Dim pointsTruba As Point() = _

{New Point(X + Convert.ToInt16(Shirina * 0.15), Y - Convert.ToInt16(Shirina * 1.42)), _

New Point(X + Convert.ToInt16(Shirina * 0.15), Y - 2 * Shirina), _

New Point(X + Convert.ToInt16(Shirina * 0.3), Y - 2 * Shirina), _

New Point(X + Convert.ToInt16(Shirina * 0.3), Y - Convert.ToInt16(Shirina * 1.66))}

picGr.DrawLines(Pen, pointsTruba)

End Sub

End Class

Imports System

Imports System.Windows.Forms

Imports System.Drawing

Public Class frmDom

Dim picGraphics As Graphics

Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click

End

End Sub

Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click

Dim whiteBrush = New SolidBrush(Color.White)

picGraphics.FillRectangle(whiteBrush, 0, 0, picDom.Width, picDom.Height)

End Sub

Private Sub frmDom_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

picGraphics = picDom.CreateGraphics()

End Sub

Private Sub btnDraw_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDraw.Click

Dim X, Y, A As Integer

X = Convert.ToInt16(txtX.Text)

Y = Convert.ToInt16(txtY.Text)

A = Convert.ToInt16(txtA.Text)

Dim greenPen = New Pen(Color.Green)

Dim DomN = New Dom()

DomN.SetDom(X, Y, A, picGraphics, greenPen)

DomN.Show()

Dim redPen = New Pen(Color.Red)

Dim DomM = New DomTruba()

DomM.SetDom(X + 100, Y, A, picGraphics, redPen)

DomM.Show()

End Sub

End Class