IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 9. diel - Statika vo Visual Basic. NET

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
thejoeejoee
Člen
Avatar
thejoeejoee:29.5.2013 18:56

Super série článků, děkuji mnohokrát! Jen se mi trochu nezdá řazení článků - předchozí články (Aréna s mágem a dědičnost a polymorfismus) jsou zařazeny jako 1. a 2. díl, přitom by asi měly být 9. a 10. a tento článek potom 11.

 
Odpovedať
29.5.2013 18:56
Avatar
Odpovedá na thejoeejoee
Michal Žůrek - misaz:29.5.2013 19:07

Kde jste na to přišel?

 
Odpovedať
29.5.2013 19:07
Avatar
thejoeejoee
Člen
Avatar
thejoeejoee:29.5.2013 19:14

No "Aréna s mágem" a "Dědičnost s polymorfismus" před "Hello World"? Je to seřazené nějak špatně..

 
Odpovedať
29.5.2013 19:14
Avatar
Kit
Tvůrce
Avatar
Odpovedá na thejoeejoee
Kit:29.5.2013 19:26

Dědičnost a polymorfismus mají v OOP přednost. Mají se učit dřív.

Odpovedať
29.5.2013 19:26
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovedá na Kit
Michal Žůrek - misaz:29.5.2013 19:28

No, ale fakt je že se tam něco asi "pošmodrchalo".

 
Odpovedať
29.5.2013 19:28
Avatar
Kit
Tvůrce
Avatar
Odpovedá na Michal Žůrek - misaz
Kit:29.5.2013 19:34

Pošmodrchat se mohlo to, že v SQL dotazu chybí ORDER BY.

Odpovedať
29.5.2013 19:34
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na thejoeejoee
David Hartinger:30.5.2013 11:57

Díky za upozornění, už je to přerovnané.

Odpovedať
30.5.2013 11:57
New kid back on the block with a R.I.P
Avatar
Vetva
Člen
Avatar
Vetva:29.9.2015 9:40

Veľmi dobre vysvetlené - ďakujem - napriek tomu otázky ?

  1. Statický konštruktor - Shared Sub New() ?
  2. Vytvoril som podobnú triedu ako je tu Class Nastaveni . Avšak v konštruktore mám výpočet, na ktorom sú závislé odvzdávané dáta; takže triedu musím volať - inštancovať že ? Dá sa pomocou Call aby som zbytočne nevytváral premennú ? Akosi sa mi to nedarí.
 
Odpovedať
29.9.2015 9:40
Avatar
Odpovedá na Vetva
Michal Žůrek - misaz:30.9.2015 20:55

úplně nějlepší je ani nastavení nedělat statické. Protože teoreticky můžeš mezi nastaveními přepínat a tak.... Jinak článek je přepisem C# článků (což trochu odpovídá na tvůj dotaz v 1. díle)a ve VB se to většinou řeší přes Module než nějaké takové třídy. Lepší by bylo

Module Nastaveni

End Module

a pokud už děláš něco takhle statické, pak většinou nemá konstruktor smysl (konstruktor totiž vytváří instanci třídy, což statika nedělá, proto nedává smysl).

 
Odpovedať
30.9.2015 20:55
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Jaroslav Trojan:3.7.2016 15:15

Upravená Statika:

Module Module1

Sub Main()
Console.Write­Line(Uzivatel­.minimalniDel­kaHesla)
Dim u As New Uzivatel("Tomáš Marný", "heslojeveslo")
Console.Write­Line(u.minimal­niDelkaHesla)
Console.Write­Line(Uzivatel­.ZvalidujHeslo("hes­lojeveslo"))
Console.Write­Line("ID prvního uživatele:{0}", u.VratId())
Console.Write­Line(u) : Console.Write­Line("Tomáš Marný")
Dim v As New Uzivatel("Olda Novák", "csfd1fg")
Console.Write­Line("ID druhého uživatele:{0}", v.VratId())
Console.Write­Line(v) : Console.Write­Line("Olda Novák")
Console.Write­Line("Minimál­ní délka hesla uživatele je:{0}", Uzivatel.mini­malniDelkaHes­la)
Console.Write­Line("Validnost hesla""heslo"" je:{0}", Uzivatel.Zvali­dujHeslo("hes­lojeveslo"))
' Console.ReadKey()
Dim kalendar As New Kalendar()
Console.Write­Line(kalendar­.VratNastaveni())
Console.ReadKey()

End Sub

End Module

Třída Uzivatel:

Class Uzivatel
Public jmeno As String
Public heslo As String
Private prihlaseny As Boolean
Private id As Integer
'statická proměnná Shared
Public Shared minimalniDelkaHesla As Integer = 6
Private Shared dalsiId As Integer = 1
Public Sub New(jmeno As String, heslo As String)
Me.jmeno = jmeno
Me.heslo = heslo
prihlaseny = False
id = dalsiId
dalsiId += 1
End Sub
Public Function PrihlasSe(zada­neHeslo As String) As Boolean
If zadaneHeslo = heslo Then
prihlaseny = True
Return True
Else
Return False
End If
'hesla nesouhlasí
End Function
'privátní statická proměnná dalsiId
'pomocná stat.metoda ZvalidujHeslo()
Public Shared Function ZvalidujHeslo(heslo As String) As Boolean
If heslo.Length >= minimalniDelkaHesla Then
'podrobnou logiku validace hesla vynecháme
Return True
End If
Return False
End Function
Public Function VratId()
Return Me.id + 1 - 1

End Function
Public Function VratMinimalni­DelkuHesla()

Return Me.minimalniDel­kaHesla
End Function

End Class

Třída Nastaveni

Class Nastaveni
Private Sub New()

End Sub
Private Shared jazyk As String = "český"
Private Shared barevneSchema As String = "červené"
Private Shared spustitPoStartu As Boolean = True

Public Shared Function Jazyk1() As String
Return jazyk
End Function

Public Shared Function BarevneSchema1() As String
Return barevneSchema
End Function

Public Shared Function SpustitPoStartu1() As Boolean
Return spustitPoStartu
End Function

End Class

Třída Kalendar

Class Kalendar
Public Function VratNastaveni() As String
Dim s As String = ""
s += [String].Format("Ja­zyk:{0}" & vbLf, Nastaveni.Jazyk1())
s += [String].Format("Ba­revné schéma: {0}" & vbLf, Nastaveni.Barev­neSchema1())
s += [String].Format("Spus­tit po startu: {0}" & vbLf, Nastaveni.Spus­titPoStartu1())
Return s
End Function
End Class

Odpovedať
3.7.2016 15:15
statik
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!