Visual4


Visual3

KLASY

Klasa to abstrakcyjny model danych.

Elementy składowe klasy:

  1. dane,

  2. metody, czyli operacje jakie można wykonać na danych z tej klasy,

  3. właściwości, czyli sposoby dostępu do danych.

Obiekt jest typem referencynym (przekazywanym do metod jako referencja), a zmienne typu podstawowego przekazywane są jako kopie.

Przykład: Klasa Student

Student1

Module Module1

Class Student

Dim oceny(2) As Integer

Function Srednia() As Double

Dim suma As Integer = 0

Dim i As Integer

For Each i In oceny

suma = suma + i

Next

Return suma / oceny.Length()

End Function

Sub WystawOceny()

oceny(0) = 3

oceny(1) = 5

oceny(2) = 4

End Sub

End Class

Sub Main()

Dim s As New Student()

s.WystawOceny()

Console.WriteLine(s.Srednia())

Console.WriteLine()

End Sub

End Module

0x01 graphic

Konstruktory

Student2

Module Module1

Class Student

Dim oceny(2) As Integer

Dim nazwisko As String

Public Sub New()

WystawOceny()

nazwisko = "brak"

End Sub

Function PobierzNazwisko() As String

Return nazwisko

End Function

Function Srednia() As Double

Dim suma As Integer = 0

Dim i As Integer

For Each i In oceny

suma = suma + i

Next

Return suma / oceny.Length()

End Function

Sub WystawOceny()

oceny(0) = 3

oceny(1) = 5

oceny(2) = 4

End Sub

End Class

Sub Main()

Dim s As New Student()

Console.WriteLine("{0} : średnia ocen {1} ", s.PobierzNazwisko(), s.Srednia())

Console.WriteLine()

End Sub

End Module

0x01 graphic

Student3

Module Module1

Class Student

Dim oceny(3) As Integer

Dim nazwisko As String

Public Sub New()

nazwisko = "brak "

WystawOceny()

End Sub

Public Sub New(ByVal nazwisko As String)

Me.nazwisko = nazwisko

WystawOceny()

End Sub

Public Function Srednia() As Double

Dim suma As Integer = 0

For Each i As Integer In oceny

suma = suma + i

Next

Return suma / oceny.Length()

End Function

Sub WystawOceny()

oceny(0) = 3

oceny(1) = 5

oceny(2) = 4

End Sub

Public Function PobierzNazwisko() As String

Return Me.nazwisko

End Function

End Class

Sub Main()

Dim s As New Student()

Console.WriteLine("{0} : {1} ", s.PobierzNazwisko(), s.Srednia())

s = New Student("Iksiński")

Console.WriteLine("{0} : {1} ", s.PobierzNazwisko(), s.Srednia())

Console.WriteLine()

End Sub

End Module

0x01 graphic

Przeciążanie metod

Przeciążenie polega na zdefiniowaniu kilku wersji tej samej metody (o takiej samej nazwie), różniącej się typem parametrów, ale zwracany typ musi być taki sam dla wszystkich wersji. Dobrym przykładem jest metoda WriteLine klasy Console, która posiada 19 różnych wariantów.

Module Module1

Sub Main()

Console.WriteLine(IleZnakow("abc"))

Console.WriteLine(IleZnakow(1234))

Console.WriteLine()

End Sub

Function IleZnakow(ByVal s As String) As Integer

Return s.Length()

End Function

Function IleZnakow(ByVal i As Integer) As Integer

Dim s As String

s = String.Format("{0}", i)

Return IleZnakow(s)

End Function

End Module

0x01 graphic

Właściwości (properties)

Właściwości mogą być traktowane jak wirtualne składowe klasy. Z punktu widzenia użytkownika klasy właściwości wyglądają jak zwykłe składowe klasy, ale wewnątrz klasy możemy na nie spojrzeć jak na specyficzne metody.

Deklarując właściwość w języku VB.NET korzystamy ze słowa kluczowego Property,

po którym występuje nazwa właściwości oraz jej typ. Kolejne dwa bloki Get oraz Set

są wykorzystywane odpowiednio jako metody do pobrania oraz ustawienia wartości.

Przykład: Properties

Module Module1

Class Osoba

Dim _wiek As Integer

Public Property Wiek() As Integer

Get

Return Me._wiek

End Get

Set(ByVal value As Integer)

If value < 0 Then

_wiek = 0

ElseIf value > 100 Then

_wiek = 100

Else

_wiek = value

End If

End Set

End Property

End Class

Sub Main()

Dim o As New Osoba()

Dim w As Integer

w = 0

Console.Write("Podaj wiek osoby: ")

w = Console.ReadLine()

o.Wiek = w

Console.WriteLine("Osoba ma {0} lat", o.Wiek)

Console.WriteLine()

End Sub

End Module

Zadanie: zaprojektuj samodzielnie takie rozwiązanie, by program chodził tak długo, aż poda się wiek >=999.

Przykład: Properties (z pętlą)

Module Module1

Class Osoba

Dim _wiek As Integer

Public Property Wiek() As Integer

Get

Return Me._wiek

End Get

Set(ByVal value As Integer)

If value < 0 Then

_wiek = 0

ElseIf value > 100 And value < 999 Then

_wiek = 100

Else

_wiek = value

End If

End Set

End Property

End Class

Sub Main()

Dim o As New Osoba()

Dim w As Integer

w = 0

Do While w < 999

Console.Write("Zakończ (wiek = 999) lub podaj wiek osoby: ")

w = Console.ReadLine()

o.Wiek = w

If o.Wiek <= 100 Then

Console.WriteLine("Osoba ma {0} lat", o.Wiek)

Else

Console.WriteLine("Koniec zabawy")

End If

Console.WriteLine()

Loop

End Sub

End Module

0x01 graphic

Zadanie domowe: zaprojektuj takie rozwiązanie powyższego problemu, by program kończył się po wpisaniu dowolnymi wielkościami liter słów stop, koniec lub przerwij.

Propozycja rozwiązania została podana na następnej stronie.

Visual4.doc 6/6



Wyszukiwarka

Podobne podstrony:
Lab 2 Visual Analyser oraz kompresje v2
ASP NET 2 0 Tworzenie witryn internetowych z wykorzystaniem C i Visual Basica aspntw
Visual Basic Przykładowe zadania , Studia i nauka, Visual Basic
Visual1
Programowanie w Visual?sic dla Excel
Visual?sic lekacje
Lab6, Visual Basic Lab 6a, Visual Basic Lab 3
Leksykon VISUAL BASIC, r00-05, Rozdział X
MS Visual C Ćwiczenia
Visual Basic Zdarzenia , Studia i nauka, Visual Basic
67 Audio and Visual System
adudczak visualvm
Visual 5
Visualization Exercises
Visual3
visual methodologies chapter4 content analysis pages 1 5

więcej podobnych podstron