V každém objektu mohou být definovány:
- Vlastnosti
- Události
- Metody
Vlastnost
= vidíme v okně vlastností např. BackColor, Text, Width…
Události
= vidíme v okně událostí např. Click, MouseHover, Enter…
Metoda (= funkce)
= pojmenovaný blok kódu, který obsahuje řadu příkazů. Program způsobí spuštění příkazů voláním metody a zadáním požadovaných argumentů metody.V jazyku C se používá pojem funkce, v jazyku C# pojem metoda.
Příklad:
Objekt TextBox – mohu jich mít v projektu několik, mají stejné vlastnosti, události i metody
- vlastnosti – Text, ReadOnly, BackColor…
- události – TextChanged, MouseHover…
- metody – Cut, Copy, Show…
TŘÍDA (myšleno tím druh objektů)
- třída TextBoxů, Labelů, Buttonů…
- má jméno např. TextBox, Label, Button…
- jména tříd jsou shodná se jmény příslušných objektů (komponent, ovládacích prvků) v ToolBoxu= Panelu nástrojů
- funguje jako šablona objektů
INSTANCE TŘÍDY = 1 případ = 1 konkrétní výskyt dané třídy = 1 konkrétní objekt
Např. ButtonPozdrav je instance třídy Button, TextBoxJmeno je instance třídy TextBox…
Hledání v dokumentaci MS:
obsahuje informaci o:
- Konstruktory = metody, které se volají při vytváření nového objektu -> v C# vždy shodné se jménem třídy!
- Vlastnosti
- Metody
Někdy jsou třídy stejně pojmenované (např. TextBox – jeden pro aplikace windows a druhý pro webové stránky – nutno rozlišit!), proto se organizují do větších celků tzv. jmenných prostorů např. System.Windows.Forms
Použití tříd z vybraných jmenných prostorů se ve zdrojovém kódu zapisuje úvodními řádky začínajícími slovy using
např.:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
Příklad použítí tříd:
private void oknoProgramu_Paint(object sender, PaintEventArgs e) { Graphics kp = e.Graphics; // Vytvoříme nové pero Pen modréPero = new Pen(Color.Blue); kp.DrawLine(modréPero, 20, 0, 20, 100); // Změníme tloušťku pera na 10 pixelů modréPero.Width = 10; kp.DrawLine(modréPero, 40, 0, 40, 100); // Změníme barvu pera na světle modrou modréPero.Color = Color.LightBlue; kp.DrawLine(modréPero, 60, 0, 60, 100); // Další pero dvouparametrickým konstruktorem Pen červenéPero = new Pen(Color.Red, 20); kp.DrawLine(červenéPero, 100, 0, 100, 100); }
private void panelŽlutá_Paint(object sender, PaintEventArgs e) { Graphics kp = e.Graphics; // Žlutou barvu do proměnné (autogenerující vlastnost) Color žlutáBarva = Color.Yellow; Pen žlutéPero = new Pen(žlutáBarva); kp.DrawEllipse(žlutéPero, 0, 0, 70, 70); }
private void panelMíchaná_Paint(object sender, PaintEventArgs e) { Graphics kp = e.Graphics; try { // Hodnoty z textových polí do číselné formy int R = Convert.ToInt32(poleMíchanáR.Text); int G = Convert.ToInt32(poleMíchanáG.Text); int B = Convert.ToInt32(poleMíchanáB.Text); // Namíchání barvy (autogenerující metoda) Color míchanáBarva = Color.FromArgb(R, G, B); // Pero z míchané barvy (volání konstruktoru) Pen pero = new Pen(míchanáBarva); // Elipsa připraveným perem kp.DrawEllipse(pero, 0, 0, 70, 70); } catch { }
2 druhy proměnných:
- ČLENSKÉ PROMĚNNÉ (globální) – mohu definovat ve třídě, existují po celou dobu existence třídy
- LOKÁLNÍ PROMĚNNÉ
Použití např.program, který spočítá, kolikrát jsme stiskli tlačítko (nutno členská proměnná na počet stisků)
namespace Počítání_stisků { public partial class Form1 : Form { int početStisků = 0; public Form1() { InitializeComponent(); }
Vytvoření verze projektu pro intalaci k distribuci:
Sestavit -> Publikovat NázevProjektu