background image

kokos324 

 

Wprowadzanie danych w trakcie działania aplikacji. Program z wprowadzoną obsługą wyjątku 

try

catch

            

try

 

            { 
                

Console

.Write(

"Pobierz liczbę "

); 

                

int

 liczba = 

int

.Parse(

Console

.ReadLine()); 

                

Console

.WriteLine(

"Wpisana liczba to {0}"

, liczba); 

                

Console

.ReadLine(); 

            } 
            

catch

 (

Exception

            { 
                

Console

.WriteLine(

"Wprowadzona wartość nie jest liczbą."

);  

            } 
            

Console

.ReadLine(); 

 
 
 

 

 

Pętla 

for

 

            { 

                

for

 (

int

 i = 0; i <= 2; i++) 

                { 
                    

Console

.Write(

" "

 + (3 - i)); 

                } 
                

Console

.WriteLine(

" Start!"

); 

                

Console

.ReadLine(); 

            } 
 
 
 
 

 
 

Pętla  

while

 

        { 
            

int

 i = 0; 

            

while

 (i < 5) 

            { 
                

Console

.WriteLine(

"PĘTLA"

); 

                i++; 
            } 
           

Console

.ReadLine(); 

        } 
 
 
 
 

 
 

Pętla  

foreach

 

        { 
            

int

[] fibarray = 

new

 

int

[] { 0, 1, 2, 3, 5, 8, 13 }; 

            

foreach

 (

int

 i 

in

 fibarray) 

            { 
                System.

Console

.WriteLine(i); 

            } 
           

Console

.ReadLine(); 

        } 
 
 

background image

kokos324 

 
 

Generowanie liczb pseudolosowych zmiennoprzecinkowych

 

        {  
            

Random

 g1 = 

new

 

Random

();  

             

for

 (

int

 i = 0; i < 5; i++)  

              {  
                

double

 liczba = 9 * g1.NextDouble() + 1;  

                

Console

.WriteLine(

"{0}. {1:F4}"

, i+1, liczba);  

              }  
            

Console

.ReadLine(); 

        } 
 
 
 

 
 

Metody zawierają kod, który operuje na polach danej klasy lub też danych dostarczonych z zewnątrz. 

Wywołanie metody:   

nazwa_zmiennej.nazwa_metody(argumenty_metody); 

 
 

 

 

Obiekty to byty programistyczne, które potrafią przechowywać jakieś wartości oraz wykonywać pewne 
operacje. 
 
Klasy to opisy takich obiektów. Klasa to specyfikacja na podstawie której tworzone są obiekty. 

 

 

 
 

 

Konstruktory to specjalne metody, które są wykorzystywane podczas tworzenia obiektu.  
Konstruktory

 są publiczne i nie mogą zwracać wyniku.  

Konstruktory

 mają identyczną nazwę jak nazwa klasy. 

 
 
    

class

 

Robot

 

    {  
        

public

 

int

 x;  

// pola

 

        

public

 

int

 y; 

//

 

         
        

public

 Robot() 

// konstruktor

 

        { 
            x = 10; 
            y = -10; 
        } 
        

// metody

 

    } 

 

 

 

 

 

background image

kokos324 

 

 

Modyfikatory dostępu 

 

public  

dane składowe można zmieniać a metody wywoływać z dowolnego miejsca 
w kodzie programu  
 

protected  

dostęp możliwy wyłącznie z klasy w której zostały one zadeklarowane lub z 
klas dziedziczących po tej klasie  
 

private  

dostępne wyłącznie z klasy w której znajduje się ich deklaracja  
 

 

 

 

 
 
Składniki statyczne klasy  
Słowo kluczowe 

static

 oznacza, że taki składnik należy do danego typu danych, a nie do konkretnego obiektu 

(analogia do zmiennej statycznej w języku C). 

 

 

 

 
Metody statyczne 

Statyczne mogą być także metody. Przykład klasy posiadającej metody "zwykłe" i statyczne:  

 
        { 
            

PewnaKlasa

 obiekt1 = 

new

 

PewnaKlasa

(); 

            obiekt1.metoda1(); 
            

PewnaKlasa

.metoda2(); 

            

Console

.ReadLine(); 

        } 
 

########################################################## 

 
 
    

class

 

PewnaKlasa

 

    { 
        

public

 

int

 zmienna1; 

        

public

 

void

 metoda1() 

        { 
            

Console

.WriteLine(

"Wywołano metodę 1 (zwykłą)"

); 

        } 
        

public

 

static

 

void

 metoda2() 

        { 
            

Console

.WriteLine(

"Wywołano metodę 2 (statyczną)"

); 

        } 
    } 

 

 

 

background image

kokos324 

 

Dziedziczenie: 

   

using

 System; 

    

class

 

Osoba

 

     { 
        

public

 

string

 Imie; 

        

public

 

string

 Nazwisko; 

        

public

 

string

 PodajDaneOsobowe() 

        { 
            

return

 Imie + 

" "

 + Nazwisko; 

        } 
     } 
 
    

class

 

Student

 : 

Osoba

 

     { 
        

public

 

int

 RokStudiow; 

        

public

 

string

 KierunekStudiow; 

     } 
 
    

class

 

Pracownik

 : 

Osoba

 

     { 
        

public

 

string

 Stanowisko; 

     } 

 

 

 

Tworzenie obiektu i wywołanie metody do odczytu danych 

 

        { 
            

WeWy

 ob1 = 

new

 

WeWy

(); 

            

int

 liczba = ob1.odczytLiczby(); 

             

Console

.WriteLine(

"Wpisana liczba to {0}"

, liczba); 

             

Console

.ReadLine(); 

        } 

 

################################################# 

class

 

WeWy

 

    { 
        

public

 

int

 odczytLiczby() 

        { 
            

int

 liczba = 0; 

            

bool

 udany = 

false

            

do

 

            { 
                

Console

.Write(

"Podaj liczbę "

); 

                

try

 

                { 
                    liczba = 

int

.Parse(

Console

.ReadLine()); 

                    udany = 

true

                } 
                

catch

 (

Exception

                { 
                    

Console

.WriteLine(

"Niepoprawne wprowadzenie danej."

); 

                } 
            } 
            

while

 (!udany); 

            

return

 liczba; 

        } 
    } 
 

background image

kokos324 

 
 
Tablice  
•W C# tablice są obiektami potrzeba więc utworzyć nowy obiekt  

•Deklaracja zmiennej tablicowej i tworzenie nowego obiektu odbywa się według schematu poniżej 
 
           

Typ_tablicy[] nazwa_tablicy = new typ_tablicy[liczba_elementów];

 

 

 

 
 

 

Definicja stałych rzeczywistych 

 
 

Stałe znakowe reprezentują pojedynczy znak i zwykle zawierają dany znak umieszczony w apostrofach.  

 char

 c = 

'a'

, d = 

'1'

 

 

 
 
Obsługa błędów z blokiem 

try

 i 

catch

 

 
Wyjątek jest obiektem klasy System.Exception lub pochodnych. W związku z tym posiada on swoje własności 
(pola obiektu). Najbardziej interesujące z nich to:  
Message – łańcuch tekstu zawierający opis błędu  
StackTrace – łańcuch zawierający wszystkie wywołane metody od miejsca wystąpienia bloku Catach 

 
 

 

 

 

Dziedziczenie konstruktora 

 

   class

 

Osoba

 

    { 
        

protected

 

string

 imie, nazwisko; 

        

public

 Osoba(

string

 im, 

string

 nazw) 

        { 
            imie = im; 
            nazwisko = nazw; 
        } 
    } 
 

[ . . . ] 

    

class

 

Student

 : 

Osoba

 

    { 
        

private

 

int

 numeralbumu; 

        

public

 Student(

string

 im, 

string

 nazw, 

int

 nra) : 

base

(im, nazw) 

        { 
            numeralbumu = nra; 
        } 

 

 

 

background image

kokos324 

 
Tablice nieregularne – tablica tablicy 

 

int

[][] tab = 

new

 

int

[4][]; 

 
 tab[0] = 

new

 

int

[3] { 5, 7, 9 }; 

 tab[1] = 

new

 

int

[2] { 1, 10 }; 

 tab[2] = 

new

 

int

[5] { 3, 10, 7, 0, -32 }; 

 tab[3] = 

new

 

int

[1] { 8 }; 

 

for

 (

int

 x = 0; x < tab.Length; x++) 

 

[ . . . ] 

 

 Console

.Write(

" "

 + tab[x][y]); 

 

 

 

Polimorfizm w programowaniu obiektowym, to wykazywanie przez metodę różnych form działania, w 

zależności od tego jaki typ obiektu jest wskazywany. 

 

 
 

I

nterfejs 

jest to nazwa grupy metod, o

kreśla jakie funkcje dana klasa musi zawierać

(interfejs nie może zawierać 

zmiennych) 

 

interface

 

IZapis

 

 { 

  void

 ZapiszDaneObiektu(); 

 } 

 

 

 

 

 

AS    i    IS 
 
as:        

obiekt as interfejs

 
is:

    if(obiekt is interfejs