Podstawy języka Visual Basic 2005
Podstawy programowania w Visual Basic 2005
dr inż. Przemysław Tymków
Wydział Inżynierii Kształtowania Środowiska i Geodezji
Uniwersytet Przyrodniczy we Wrocławiu
21 kwietnia 2010
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Każdy obiekt języka Visual Basic musi mieć określony typ. Typ
określany jest przez nazwę.
typy wbudowane (podstawowe, wewnętrzne)
typy użytkownika (klasy, struktury)
Typy mają różny rozmiar.
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Typy wbudowane
Typ
Rozmiar [b]
typ.NET
Opis
Boolean
1
Boolean
true/false
Byte
1
Byte
0-255 bez znaku
Char
2
Char
Unicode
Date
8
DateTime
0:00:00 1-1-0001 do 11:59:59 31-12-9999
Decimal
12
Decimal
Stałoprzecinkowa do 28 cyfr
Double
8
Double
Zmiennoprzecinkowa; od ±5.0 ∗ 10
−324
do ±1, 8 ∗ 10
308
Integer
4
Int32
Całkowita od −2147483648 do 2147483647
Long
8
Int64
Całkowita; od −9223372036854775808 do 9223372036854775807
Short
2
Int16
Całkowita; od −32768 DO 32767
Single
4
Single
Zmiennoprzecinkowa; od ok. ± − 1, 5 ∗ 10
−45
do ok. ±3, 4 ∗ 10
38
String
dowolny
String
Ciąg znaków Unicode
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Zmienne
Deklaracja zmiennej:
Dim Nazwa As typ
Deklaracja zmiennej wraz inicjalizacją:
Dim liczba As Integer = 15
Dim tekst As String =”jakiś tekst”
Dim obiekt As MojaKlasa = new MojaKlasa()
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Wartości domyślne zmiennych
VB2005 nie wymaga inicjowania zmiennych przez programistę.
Typ
Wartość domyślna
Integer, Short, Long
0
Double, Single
0
Boolean
False
Date
01/01/0001 12:00:00 AM
Decimal
0
String
””
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Zmienne użytkownika - klasy
Klasa jest to definicja obiektu. Obiekt to egzemplarz klasy.
W językach zorientowanych obiektowo definiuje się klasy, a więc
typy własne, które opisują abstrakcyjne lub rzeczywiste obiekty na
jakich program pracuje. W języku VB każdy typ jest klasą (nawet
typy wbudowane). Np klasa Button (przycisk) definiuje wygląd i
zachowanie przycisku. W programie można użyć wielu przycisków,
z których każdy będzie innym egzemplarzem klasy Button.
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Definicja klasy
[modyfikatory dostępu] Class Nazwa
{
ciało klasy tj. głównie zmienne składowe i funkcje
}
End Class
np:
Public Class Pies
Dim wiek As Integer
Dim waga As Integer
Public Sub Szczekanie()
...
End Sub
End Class
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Stałe
Stała to to pewna wartość powiązana z nazwą, która nie może podlegać modyfikacjom
w trakcie działania programu.
Kategorie stałych:
literały np. 2, 3.1415
stałe symboliczne np: Public Const stala1 As Integer = 2
stałe wyliczeniowe np:
Public Enum stale As Integer
stala1 = 2
stala2 = -34
End Enum
Odwołanie do stałej wyliczeniowej:
Dim zmienna1 As Integer = stale.stala1
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Modyfikatory dostępu
Zmienne, stałe klasy i funkcje mogą być poprzedzone
modyfikatorem dostępu wskazującym zasięg ich działania.
Najważniejsze modyfikatory dostępu
Public - Składowe widoczne dla wszystkich metod wszystkich
klas,
Private - Składowe widoczne dla wszystkich metod w klasie,
w której są zdeklarowane,
Protected - Składowe dostępne dla wszystkich metod w
klasie, w której są zdeklarowane i w klasach potomnych
(patrz. dziedziczenie)
W obrębie funkcji nie można deklarować zmiennych Public. Jeżeli
składowa nie posiada modyfikatora domyślnie jest Private.
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Zmienne lokalne i globalne
Zmienne deklarowane poza obrębem funkcji są zmiennymi
globalnymi tj. obowiązują we wszystkich funkcjach w klasie (z
modyfikatorem Public we wszystkich klasach). Zmienne
definiowane wewnątrz funkcji widoczne są tylko w niej.
Dim zmienna1 As Integer
Public zmienna2 As Double
Sub funkcja1 ()
Dim zmienna1 As String
End Sub
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Rzutowanie
Obiekty jednego typu można rzutować (przekształcać, kopiować)
na obiekty innego typu.
rzutowanie zawężające - przekształcanie zmiennej typu
szerszego na węższy (np. Integer na Short),
rzutowanie rozszerzające - rzutowanie zmiennej typu węższego
na szerszy (np. Char na String).
Rodzaje rzutowania
jawne (CBool, CByte, CChar, CDate, CDbl, CDec, CInt, CLng, CShort, CStr)
np: Dim zmienna1 As Double = 2
CInt(zmienna1)
Funkcja Convert:
Convert.ToInt32(zmienna1 )
niejawne np:
Dim zmienna1 As Double = 2.3
Dim zmienna2 As Integer
zmienna2 = zmienna1
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Operatory
Operator to symbol, na podstawie którego VB wykonuje się
operacje matematyczne, logiczne czy przypisanie.
np: operatory matematyczne: =, <, >, +, −, /, ∗,
,
Mod
operatory logiczne: And, AndAlso, Or, OrElse, Xor, Not
Kolejność operatorów
nawiasy
operatory arytmetyczne:
potęgowanie
dzielenie i mnożenie
Dzielenie całkowitoliczbowe
Mod
Dodawanie i odejmowanie
konkatenacja
operatory logiczne: Not, And, Or, Xor
operator przypisania
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Operatory porównania
Dwa wyrażenia (zmienne, stałe, obiekty, itp.) moga byc
porównywane miedzy sobą za pomoca operatorów porównania:
<, <=, >, >=, =, <>, Is, Like
Kolejność operatorów
Uwaga! Należy uważać przy porównywaniu wartości o różnych
typach. Np. porównanie dwóch wartości zmiennoprzecinkowych
typu Single i Double moze dać wynik rózny ze wzgledu na
konwersje niejawną!
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Instrukcje
Pisanie programów za pomocą języków proceduralnych (jak
VB2005) wymaga definiowania szeregu instrukcji, które np.
definiują zmienne, powodują, że fragment kodu wykonywany jest
wiele razy lub wykonywany jest skok (warunkowy lub
bezwarunkowy) do innego fragmentu kodu.
Instrukcje rozgałęzień
Instrukcje przetwarzane są w kolejności w jakiej są napisane
(sekwencyjnie). Dzięki rozgałęzieniom można wymusić różne
zachowanie programu w zależności od sytuacji.
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Rozgałęzienie bezwarunkowe
Wywołanie metody np:
Method1()
return, throw, exit, goto np:
Sub method1 (ByVal zmienna1 As Integer)
Return zmienna1+10
End Sub
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Rozgałęzienia warunkowe
Instrukcja If
If wyrażenie Then instrukcja
If wyrażenie Then
instrukcje
End If
np:
If zmienna1 >20 Then
Zmienna2 = zmienna1
End If
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Rozgałęzienia warunkowe
Instrukcja If...Else
If wyrażenie Then
instrukcja1
Else
instrukcja2
End If
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Instrukcje iterujące
Pętla Do
Do While warunek
instrukcje
Loop
Do Until wyrażenie
instrukcje
Loop
Do
instrukcje
Loop While wyrażenie
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Instrukcje iterujące
Pętla Do c.d.
Do
instrukcje
Loop Until wyrażenie
Do
instrukcje
Loop
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Instrukcje iterujące: Pętla While
While wyrażenie
instrukcje
End While
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Instrukcje iterujące
Pętla For
For zmienna = wyrażenie To wyrażenie [Step wyrażenie]
instrukcje
Next [lista zmiennych]
np:
For zmienna1 As Integer = 0 To 100
MessageBox.Show(zmienna1.ToString)
Next
For zmienna1 As Integer = 0 To 10 Step 2
MessageBox.Show(zmienna1.ToString)
Next zmienna1
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Tablice
Tablica to kolejka obiektów tego samego typu.
Deklaracja tablic
Dim tablica1() As Integer
tablica1 = New Integer(5){}
Dim tablica2 (10) As Double
Inicjalizacja tablic
Dim tablica1() As Integer = new Integer(5){1,2,3,4,5,6}
Dim tablica2() As Integer = {1,2,3,4,5,6}
For i As Integer = 0 To tablica1.Length
tablica1(i)=i
Next
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Tablice
Tablice wielowymiarowe
Dim tablica1(,) As Integer = New Integer(10,5){}
Dim tablica2(10,5) As Integer
Dostęp do elementów tablic
Dim tablica2() As Integer = {1,2,3,4,5,6}{}
Dim tablica2(,) As Integer = New Integer(10,5){}
tablica1(3) = 5
Dim zmienna1 As Integer = tablica2(2,2)
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Typy, zmienne
Operatory
Instrukcje języka Visual Basic 2005
Programowanie zorientowane obiektowo
Procedury/Funkcje
Definicja procedury/Funkcji
Sub/Function Nazwa(parametry)
instrukcje
End Sub/Function
Metody mogą przyjmować dowolną liczbę parametrów. Po nazwie parametru należy
podać jego typ np:
Function Funkcja1 (parametr1 As Integer, parametr2 As Double)
parametr1 = CInt(parametr2 )
Return parametr1
End Function
Wywołanie procedury/funkcji np:
Funkcja1(2, 3.4)
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Typy, zmienne
Operatory
Instrukcje języka Visual Basic 2005
Programowanie zorientowane obiektowo
Przekazywanie zmiennych do procedury/funkcji
Przekazywanie przez wartość: ByVal - w obrębie metody tworzona
jest zmienna lokalna (kopia parametru) np:
Sub metoda1( ByVal zmienna1 As Integer) zmienna1=zmienna1+10
End Sub
Dim zmienna1 As Integer = 2
metoda1 (zmienna1 )
Console.WriteLine(zmienna1 )
Wynik programu: 2
Przekazywanie przez referencję: ByRef - operacje w obrębie
metody tworzone są na pierwotnym parametrze. np:
Sub metoda1( ByRef zmienna1 As Integer) zmienna1=zmienna1+10
End Sub
Dim zmienna1 As Integer = 2
metoda1 (zmienna1 )
Console.WriteLine(zmienna1 )
Wynik programu: 12
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Typy, zmienne
Operatory
Instrukcje języka Visual Basic 2005
Programowanie zorientowane obiektowo
Przeciążanie metod
Aby przeciążyć metodę należy stworzyć więcej niż jedną metodę o
tej samej nazwie ale różnych parametrach. Kompilator dopasuje
odpowiednią metodę w momencie wywołania dzięki nim. Metody
przeciążone mogą różnić się:
różną liczba parametrów,
różnymi typami parametrów,
różną liczbą i typami parametrów.
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Typy, zmienne
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Cechy podejścia obiektowego
Zależności między klasami
asocjacja
agregacja
dziedziczenie
Cechy klas
enkapsulacja
polimorfizm
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Typy, zmienne
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Konstruktory
Konstruktor to funkcja mająca na celu utworzenie obiektu klasy i
ustawienie jego parametrów. W VB2005 każda klasa ma
przynajmniej jeden konstruktor (konstruktor domyślny).
Przykład definicji konstruktora:
Public Class Klasa1
Dim zmienna2 As Integer
Public Sub New(ByVal zmienna1 As Integer)
zmienna2 = zmienna1
InitializeComponent()
End Sub
End Class
Jeżeli programista w klasie nie użył konstruktora program
wykorzystuje konstruktor domyślny.
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Typy, zmienne
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
obiekt Me
Słowo kluczowe Me odwołuje się do bieżącego egzemplarza klasy
(obiektu). Metody klasy wykonywane są na rzecz konkretnego
obiektu. Dzięki słowu Me mamy do niego szybki dostęp.
Przykłady
Odwołanie do zmiennej globalnej o tej samej nazwie co parametr
funkcji:
Public Class Klasa1
Dim zmienna1 as Integer
Public Sub funkcja1(ByVal zmienna1 As Integer)
Me.zmienna1 = zmienna1
End Sub
End Class
Przekazywanie bieżącego obiektu
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Typy, zmienne
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Dziedziczenie
Dziedziczenie (specjalizacja) jest właściwością klas polegającą na tym, że klasy mogą
przekazywać pewne swoje właściwości innym klasom, które stanowią ich specjalizację.
Mechanizm dziedziczenia uwalnia programistę od ponownego tworzenia i
implementowania struktur danych oraz funkcji działających na tych strukturach.
Udostępnia on możliwość korzystania z własnej bądź cudzej pracy jedynie poprzez
rozszerzanie już zaimplementowanych elementów. Np. można zdefiniować klasę
Człowiek i w niej zmienne jak np. wiek, waga, wzrost. Następnie można zdefiniować
klasę Student, który jest też człowiekiem ale ma dodatkowe właściwości np.
średnia ocen. Nie trzeba w klasie Student definiować od nowa wszystkich cech
człowieka, wystarczy zaznaczyć, że te cechy są dziedziczone z klasy Człowiek.
Implementacja dziedziczenia
Public Class Student
Inherits Człowiek
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Typy, zmienne
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Polimorfizm
Polimorfizm (wielopostaciowość) to wykazywanie różnych form
działania podczas wywoływania metody w zależności od tego
jakiego typu obiekt jest wskazywany. Polimorfizm to najważniejsza
cecha, która umożliwia dostosowanie działania obiektów do
własnych oczekiwań poprzez łączenie funkcjonalności zarówno
dziedziczonej, jak i implementowanej samodzielnie. Idea
polimorfizmu bazuje na tym, że użytkownik obiektu nie wie i nie
musi wiedzieć, czy konkretne zachowanie wykorzystywanego
obiektu zostało zrealizowane bezpośrednio w tym obiekcie czy też
w tym, po którym dziedziczy on swoje właściwości.
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Typy, zmienne
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Enkapsulacja (hermetyzacja)
Enkapsulacja to sposób odizolowania od otoczenia wybranych
danych i funkcji (operujących na tych danych) zgromadzonych w
jednej strukturze. Widoczne są tylko niezbędne fragmenty
programu, natomiast zmienne i funkcje pomocnicze są ukryte i
niedostępne z zewnątrz. Dzięki takiemu połączeniu programista
uwalnia się od pamiętania o wszystkich szczegółach
implementacyjnych, co zapewnia zmniejszenie liczby błędów oraz
prostszą strukturę programu końcowego.
dr inż. Przemysław Tymków
Podstawy języka Visual Basic 2005
Typy, zmienne
Operatory
Instrukcje języka Visual Basic 2005
Metody
Programowanie zorientowane obiektowo
Obsługa wyjątków
Instrukcja Try ... Catch
Aby uodpornić aplikację na wyjątki (np. dzielenie przez 0) można
stosować blok Try ... Catch. W części Try umieszczamy kod
mogący powodować wyjątek, a w części Catch kod, który ma się
wykonać, gdy wyjątek zaistnieje np.:
Try
Dim a = 1 / Convert.ToDouble(TextBox1.Text)
Catch ex As Exception
’komunikat z opisem wyjtku
MessageBox.Show(ex.Message)
End Try
dr inż. Przemysław Tymków