Studiuj dzięki licznym zasobom udostępnionym na Docsity
Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium
Przygotuj się do egzaminów
Studiuj dzięki licznym zasobom udostępnionym na Docsity
Otrzymaj punkty, aby pobrać
Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium
Społeczność
Odkryj najlepsze uniwersytety w twoim kraju, według użytkowników Docsity
Bezpłatne poradniki
Pobierz bezpłatnie nasze przewodniki na temat technik studiowania, metod panowania nad stresem, wskazówki do przygotowania do prac magisterskich opracowane przez wykładowców Docsity
zachowanie (działanie), przez definicje metod i właściwości. • Klasa jest typem dla obiektu, a obiekt danej klasy to jej instancja ...
Typologia: Publikacje
1 / 29
obiektowego to możliwość wielokrotnego użycia kodu.
(np. przez Ctrl-C, Ctrl-V), do czego właśnie służą wyższe metodyki:fragment kodu można "zamknąć" w postaci oddzielnej funkcji lub klasyi odwołać się do niego, zamiast go kopiować.
potrzebny na ich poprawianie) – jeżeli funkcja zawiera błędy, to trzebaje poprawić tylko w jednym miejscu, zaś raz opracowana i pozbawionabłędów funkcja już zawsze będzie działać poprawnie
trzeba ulepszyć (np. zastosować szybszy algorytm), to wystarczy tozrobić w jednym miejscu
stosowanie zasady jeden plik = jedna klasa (publiczna)– w ten sposób każda klasa może łatwo być użyta wielokrotnie
np. użycia narzędzi programistycznych, kompilacji warunkowej,szablonów klas, a nawet definiowania stałych (1. W ilu miejscachtrzeba zmienić kod, jeżeli węzłów będzie 5 zamiast 4; 2. Które "4" wkodzie oznacza liczbę węzłów, a które coś zupełnie innego)
const Int
NumberNodes
=
4;
Node[]
Nodes
=
new
Node[NumberofNodes];
for
(Int
n
=
0;
n
<
NumberOfNodes;
n++)
Nodes[n].Open();
stan
obiektu (wartości jego pól) oraz
zachowanie
(działanie), przez definicje metod i właściwości
instancja
[
<[>
Atrybuty<]>
]
[
]
class
[
:
<Klasa-bazowa>
]
{
//
elementy
składowe
klasy
}
kodu klasy; wg MS stanowią odpowiednik słów kluczowych (jak np.modyfikatory dostępu private/public), ale dowolnie definiowanych;Mogą być wykorzystane na różne sposoby – np. mogą stanowićwytyczne dla kompilatora JIT, mogą dodawać pewne funkcjonalności
(abstract, sealed) oraz modyfikator static
wszystkie elementy składowe; Domyślnie klasa object (System.Object)
internal
(domyślnie!) – klasa jest dostępna tylko w obrębie tego
samego pakietu (assembly = plik .dll lub .exe)
public
dostępna tylko dla klasy zawierającej i jej klas potomnych
dostępna tylko dla klasy zawierającej
static
utworzyć obiektu takiej klasy
obiektu takiej klasy, ale można zdefiniować jej klasy potomne
nazwy klas i pól – rzeczowniki, metod – czasowniki:
DaneWykresu
(klasa
unikać nazw
na
"I")
KolorLinii (pole)ZapiszDane (metoda)
ISortable
p,
k,
poleKoła,
kolorLinii
Kod powinien być czytelny, kiedy do niego zajrzeć po kilku miesiącachalbo dla innego programisty (tzw. samodokumentujący się)
Typy wartościowe
Struktury
Typy referencyjne
Klasa Interfejs Tablica
Typy wyliczeniowe
Typy proste
Obiekt
Należy do klasy, nie do obiektów, podobnie jak metody statyczne
Pole
Zwykle pola są prywatne (dostępne wyłącznie dla metod obiektu)
Właściwość
w kontrolowany sposób
Metoda
wykonać obiekt klasy (nie dotyczy metod statycznych)
Konstruktor
stanu; w praktyce zmienna typu delegacji
wewnętrzny stan; Z zasady powinny być prywatne, natomiast doudostępniania stanu obiektu powinny służyć właściwości
i później nie może być zmieniona; należy do klasy (≈ static readonly)
class Sample{
public const Double
PI
=
3.1415;
public static readonly
DateTime Start
=
DateTime.Now;
private Int
length;
umożliwiają odczyt i zmianę stanu (tj. wartości prywatnych pól)
mutator (zmiana wartości pola); w językach C++/Java służą do tegooddzielne metody (w slangu Java nazywane getter i setter), natomiastw C# połączone w jedną konstrukcję składniową
Obie sekcje są w pewnym sensie metodami – można dla nich używaćmodyfikatorów takich jak dla metod (np. virtual, override)
JIT może zastępować wywołania prostych (niewirtualnych) właściwościkodem sekcji get lub set
private
Double
promień;
public
Double
Promień
{
get {
return
promień;
} set {
if
(
valuevaluevaluevalue
<0)
throw new
ArgumentException();
promień =
valuevaluevaluevalue
;
} public
Double
Powierzchnia
{
get {
return
Math
.PI * promień * promień;
} }
obiektów (można powiedzieć że definiują polecenia, które możnawydawać obiektom)
Przeciążenie metody to definiowanie wielu metod o tej samej nazwie,ale różniących się liczbą i/lub typami argumentów (do przeciążenia niewystarczy inna nazwa argumentu lub inny typ rezultatu)