programowanie obiektowe 09

background image

Przestrzeni

e nazw.

Tablice

background image

Przegląd zagadnień

Przestrzenie nazw
Tablice
Podsumowanie
Pytania sprawdzające
Laboratorium

background image

Przestrzenie nazw (1)

Język C# jest przykładem języka

wykorzystującego wiele klas. W każdej

z nich istnieje wiele różnych

elementów o różnych nazwach, których

z oczywistych względów ilościowych

nie można zapamiętać
Prędzej, czy później przy nazywaniu

jakiegoś elementu wykorzysta się

użytą już w innej klasie przez kogoś

nazwę
Rozwiązanie – przestrzenie nazw –

ograniczają one zasięg ważności nazwy

elementu

background image

Przestrzenie nazw (2)

Przy pomocy dyrektywy using możliwe jest

skrócenie nieco zapisu pełnej nazwy klasy

wraz z przestrzeniami nazw
Załóżmy, że potrzebujemy doświadczonego

programisty. Musimy jednak wiedzieć, w jaki

sposób pisze on programy, bowiem inaczej

pracuje programista piszący struturalnie

(struktura.programista), a inaczej piszący

obiektowo (obiekty.programista). W obu

przypadkach słowo programista ma inny

wydźwięk
Ważną rolę pełni operator kropki,

pozwalający na uzyskanie dostępu do

metody i danych klasy, a zarazem

ograniczający zasięg ważności nazwy

background image

Przestrzenie nazw – przykład

Kod C#

using System;

namespace

PrzestrzenZewnetrzna {

namespace

PrzestrzenWewnetrzna {

class Owoc {
public static void Jablko() {
Console.WriteLine("Jablko - element

wywołany w innej przestrzeni nazw");

}
}
}
class PrzestrzenWywolujaca {
public static void Main() {

PrzestrzenWewnetrzna.Owoc.Jablko();

}
}
}

background image

Przestrzeń nazw – podsumowanie

Przestrzenie nazw pomagają w

podziale hierarchii obiektów oraz w

przezwyciężeniu jest jej złożoności
Używanie dyrektywy
using umożliwia

wielokrotnie skrócenie zapisu, jednak

ceną może być zmniejszenie

czytelności kodu. Problem może

pojawić się także, gdy pracujemy w

dwóch przestrzeniach zawierających

elementy o identycznej nazwie

background image

Tablice

Najprostszym przykładem kolekcji

elementów tego samego typu jest

tablica
Tablice posiadają wbudowany

mechanizm indeksowania, dzięki

czemu można natychmiast uzyskać

dostęp do dowolnego elementu
Elementy tablicy numerowane są od 0,

zatem ostatnim elementem tablicy k-

elementowej będzie element o

indeksie k-1

background image

Tablice – przykład obiektów

Tablice w języku C# są obiektami, co

pozwala udostępniać użyteczne

metody i właściwości
Deklaracja tablicy ma postać:

Mimo zwyczajnego wyglądu deklaracji,

w programie rzeczywistości powstaje

obiekt typu System.Array (lub

pochodnego typu)
Tablice są jedynym typem kolekcji

posiadającym wbudowaną obsługę w

języku C#

typ[] nazwa_tablicy

background image

Tablice - przykład

Kod C#:

namespace PrzykladTablicy {
public class Samochod {
public Samochod (int Lp) {
this.Lp = Lp;
}
public override string ToString() {
return Lp.ToString();
}
private int Lp;
}
public class Tester {
static void Main() {

int[]

TablicaCalkowitych;

Samochod[] TablicaLp;
TablicaCalkowitych =

new int[5]

;

TablicaLp = new Samochod[3];
for (int i = 0; i<TablicaLp.

Length

; i++) {

TablicaLp[i] = Samochod[i+5]

;

}
}
}
}

background image

Tablice - dalsze informacje

Do pracy z kolekcjami przygotowana

została nowa instrukcja foreach,

umożliwiająca kolejne użycie

wszystkich elementów kolekcji
Składnia:

Możliwa jest inicjalizacja elementów

tablicy w czasie tworzenia

egzemplarza, co można uczynić przy

pomocy dwojakiej składni,

przykładowo:

foreach(typ nazwa_elementu in wyrazenie) instrukcja

int[] TablicaCalkowitych = new int[3] {2, 5, 9}
int[] TablicaCalkowitych = {2, 5, 9}

background image

Tablice wielowymiarowe (1)

Tablice prostokątne - mają przynajmniej

dwa wymiary. Aby zadeklarować na

przykład prostokątną tablicę

trójwymiarową, używamy składni

Możliwe jest jednoczesne zadeklarowanie

i utworzenie egzemplarza tablicy

trójwymiarowej:

Dopuszczalne jest także inicjalizowanie

bezpośrednie elementów tablicy - na

przykład dla tablicy o wymiarach 2x4

miałoby to postać:

typ[ , , ] TablicaProstokatna3D

int[ , , ] TablicaProstokatna3D = new int[2,3,5];

int[,] TablicaProstokatna2D = { {1, 2, 3, 4}, {2, 3, 4,

5} };

background image

Tablice wielowymiarowe (2)

Tablice nieregularne - poszczególne

rzędy nie muszą być tej samej długości
Tworząc tablicę typu nieregularnego

należy podać liczbę rzędów każdej

tablicy. Każda z tablic musi zostać

zadeklarowana
Do deklaracji tablicy tego typu służy

składnia:

Przykładowo dostęp do czwartego

elementu drugiego rzędu powyższej

tablicy możemy uzyskać dzięki składni

typ[][] NazwaTablicy

NazwaTablicy[1][3]

background image

Podsumowanie

Przestrzenie nazw są ważnym

elementem pracy programisty –

umożliwiają ograniczenie zasięgu

ważności nazwy
Podstawowym rodzajem kolekcji

identycznych elementów jest tablica
W języku C# wyróżniamy dwa rodzaje

tablic wielowymiarowych – prostokątne

i nieregularne

background image

Pytania sprawdzające

Jaka jest rola operatora kropki w

przestrzeniach nazw?
Do czego służy instrukcja
foreach?
Omów rodzaje tablic.

background image

Laboratorium


Document Outline


Wyszukiwarka

Podobne podstrony:
programowanie obiektowe 09, c c++, c#
Programowanie obiektowe(ćw) 1
Zadanie projekt przychodnia lekarska, Programowanie obiektowe
Programowanie obiektowe w PHP4 i PHP5 11 2005
Programowanie Obiektowe ZadTest Nieznany
Egzamin Programowanie Obiektowe Głowacki, Programowanie Obiektowe
Jezyk C Efektywne programowanie obiektowe cpefpo
Programowanie Obiektowe Ćwiczenia 5
Programowanie obiektowe(cw) 2 i Nieznany
programowanie obiektowe 05, c c++, c#
Intuicyjne podstawy programowania obiektowego0
Programowanie obiektowe, CPP program, 1
wyklad5.cpp, JAVA jest językiem programowania obiektowego
projekt01, wisisz, wydzial informatyki, studia zaoczne inzynierskie, programowanie obiektowe, projek
przeciazanie metod i operatorow, Programowanie obiektowe
projekt06, wisisz, wydzial informatyki, studia zaoczne inzynierskie, programowanie obiektowe, projek
projekt07, wisisz, wydzial informatyki, studia zaoczne inzynierskie, programowanie obiektowe, projek
Programowanie Obiektowe Cz2, Dziedziczenie proste

więcej podobnych podstron