Sposoby przekazywania parametrów w metodach.



Podobne dokumenty
1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!!

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Definiowanie własnych klas

Wykład 4: Klasy i Metody

Metody Metody, parametry, zwracanie wartości

Rozdział 4 KLASY, OBIEKTY, METODY

Wykład 8: klasy cz. 4

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Materiały do zajęć VII

Enkapsulacja, dziedziczenie, polimorfizm

Definiowanie własnych klas

Wykład 5: Klasy cz. 3

Programowanie obiektowe i zdarzeniowe

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie obiektowe

Podstawy Programowania Obiektowego

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

PROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.

Proces tworzenia programu:

Programowanie obiektowe

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Podstawy programowania obiektowego

Dokumentacja do API Javy.

Programowanie obiektowe

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

Microsoft IT Academy kurs programowania

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation).

Polimorfizm. dr Jarosław Skaruz

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Klonowanie MAC adresu oraz TTL

PODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

PARADYGMATY PROGRAMOWANIA Wykład 4

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Programowanie komputerowe. Zajęcia 2

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

Projektowanie algorytmów rekurencyjnych

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!

Język C, tablice i funkcje (laboratorium, EE1-DI)

Programowanie obiektowe

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

4. Funkcje. Przykłady

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Programowanie komputerowe. Zajęcia 7

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Gramatyki regularne i automaty skoczone

Co to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu.

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Język C, tablice i funkcje (laboratorium)

Programowanie Komputerów

Programowanie obiektowe

Aplikacje w środowisku Java

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie obiektowe

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Wstęp do programowania

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Przekazywanie argumentów wskaźniki

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Języki i techniki programowania Ćwiczenia 2

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Klasy abstrakcyjne, interfejsy i polimorfizm

PROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory.

Język C++ zajęcia nr 2

Pola i metody statyczne

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Podstawy i języki programowania

Wykład 7: Pakiety i Interfejsy

WYKŁAD 10. Wzorce projektowe czynnociowe Command Strategy

Klasy cd. Struktury Interfejsy Wyjątki

Technologie i usługi internetowe cz. 2

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

W dowolnym momencie można zmienić typ wskaźnika.

C-struktury wykład. Dorota Pylak

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)

Klasy i obiekty cz I Klasy, obiekty, podstawy używania obiektów

Zmienne, stałe i operatory

Wykład 3 Składnia języka C# (cz. 2)

Programowanie w Internecie. Java

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Wykład 2: Podstawy Języka

Operator przypisania. Jest czym innym niż konstruktor kopiujący!

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy WSKAŹNIKI KLASOWE

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy

Transkrypt:

Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych przykładach program składał si tylko z jednej klasy, a klasa zawierała tylko jedn metod metod Main. Wszystkie deklaracje zmiennych i instrukcje programu były zapisywane wyłcznie w funkcji Main. Najwyszy czas to zmieni!!! W klasie mona zdefiniowa równie inne metody ni Main. Metoda to logiczna cz (fragment) programu, która realizuje okrelone zadanie. Metoda moe by wykorzystana (wywołana) dopiero wtedy, kiedy zostanie zdefiniowana. Definicja metody składa si z nagłówka i ciała. Definicja metody musi by zawarta w zakresie jakiej klasy. Ogólna posta definicji metody modyfikatory typ_wyniku_metody nazwa_metody(parametry) // nagłówek metody // ciało metody... 1

modyfikatory to słowa: public, private, protected i static. Ich znaczenie i rol poznamy wtedy, gdy w programie pojawi si wicej ni jedna klasa (ju wkrótce!). Na razie bdziemy uywali wyłcznie metod z modyfikatorem static. typ_wyniku_metody to typ wyniku zwracanego przez metod. Jeeli metoda nie zwraca wyniku to jest typu void. Jeeli metoda zwraca wynik, to zamiast void wpisujemy typ zwracanego wyniku. Jeeli funkcja nie jest typu void, to w jej ciele powinien by uyty co najmniej raz rozkaz return, który kopiuje wynik metody pod jej nazw. nazwa_metody to identyfikator metody podawany podczas jej wywołania. parametry okrelaj sposób komunikowania si metody z innymi elementami programu. Metoda moe nie mie adnych parametrów i w takim przypadku wpisujemy puste okrgłe nawiasy w jej nagłówku. ciało metody zawiera deklaracje lokalne i instrukcje realizowane przez metod. Przykład 1 Definicja metody class Program static void PrzykladowaMetoda( ) // nagłówek metody Console.WriteLine("Przykladowa metoda"); // ciało metody 2

static void Main() Console.WriteLine( Pracuje metoda Main ); Console.ReadLine(); Po zdefiniowaniu metody mona j wywoła (wykorzysta). Po to si j zreszt definiuje. Aby wywoła metod w innej metodzie tej samej klasy naley: uy jej nazwy, wymieni po przecinku, w nawiasach okrgłych parametry metody. Przykład 2 Wywołanie metody w innej metodzie tej samej klasy class Program static void PrzykladowaMetoda( ) // definicja metody Console.WriteLine("Przykladowa metoda"); static void Main( ) Console.WriteLine( metoda Main ); PrzykladowaMetoda(); // wywołanie metody PrzykladowaMetoda Console.ReadLine(); 3

2. Zmienne lokalne w metodach Wewntrz metod mona deklarowa zmienne. Zmienne lokalne metod alokuj si w pamici w momencie wywołania metody, a dealokuj w chwili zakoczenia wywołania metody. Przykład 3 Metoda ze zmiennymi lokalnymi zwracajca wynik. class Program static int Suma( ) // definicja metody int s=0,i=1,x; // zmienne lokalne metody Console.WriteLine("Podaj cig liczb zakoczony zerem"); do Console.Write("0:", i); x = int.parse(console.readline()); s += x; while (x!= 0); return s; // warto zmiennej s jest kopiowana pod nazw metody static void Main( ) Console.WriteLine("Wynik 0",Suma()); // wywołanie metody Suma Console.ReadLine(); 4

3. Sposoby przekazywania parametrów w metodach Deklaracja parametrów: Parametry metody deklarujemy w jej nagłówku, w nawiasach okrgłych, po nazwie metody. Kady parametr ma okrelony sposób przekazywania, typ oraz nazw. Deklaracja kolejnego parametru jest oddzielona przecinkiem od deklaracji parametru poprzedniego. Wywoływanie metod z parametrami: Jeeli metoda ma parametry, to musz by one okrelone w trakcie wywołania metody. Kolejne parametry s oddzielane w wywołaniu metody przecinkiem. Przykład 4 Przykład definicji wywołania metody z parametrami static void MetodazParametrami(int x, string n) for (int i=1 ;i<=x; i++) Console.WriteLine(n); MetodazParamertrami (2, "Hello, world"); int p = 7; string s = "Próbny komunikat"; MetodazParametrami(p, s); 5

W jzyku C# moemy przekazywa parametr przez warto (in), przez referencj (ref) lub jako parametr wyjciowy (out). Przekazujemy parametr przez warto, gdy warto tego parametru jest niezbdna do realizacji metody. Przekazujemy parametr przez referencj, gdy chcemy, aby metoda sigała do tego miejsca w pamici, w którym znajduje si reprezentowana referencj zmienna. Przekazujemy parametr jako parametr wyjciowy, gdy chcemy w tym parametrze zapamita wynik realizacji metody. a) Przekazywanie parametru przez warto Warto parametru okrelona przy wywołaniu metody jest kopiowana pod nazw parametru. Jeeli warto parametru jest zmieniana w metodzie, to po zakoczeniu wywołania nie bdzie to miało adnego efektu. Parametr przekazywany przez warto musi mie ten sam lub kompatybilny typ co parametr okrelony w definicji metody. Przez warto przekazywanych jest wikszo parametrów. Jest to domylny sposób przekazywania parametru, tzn. jeeli w nagłówku metody midzy typem parametru a jego nazw nie jest wstawione ani słowo ref ani out, to jest to parametr przekazywany przez warto. 6

Przykład 5 Metoda z parametrem przekazywanym przez warto static void Inc(int x) x++; static void Main( ) int k = 6; Inc(k); Console.WriteLine(k); b) Parametr przekazywany przez referencj Co to jest parametr przekazywany przez referencj? Jest to odwołanie do miejsca pamici, w którym znajduje si zmienna wstawiana w taki parametr w wywołaniu metody. Deklaracja parametru przekazywanego przez referencj : Naley wpisa słowo ref w definicji metody oraz w jej wywołaniu przed parametrem przekazywanym przez referencj. Typ parametru przekazywanego przez referencj i typ zmiennej wstawianej w miejsce tego parametru w wywołaniu metody musz by zgodne. Zmiany wartoci zmiennej wstawionej w wywołaniu metody w miejsce parametru przekazywanego przez referencj s widoczne w programie po zakoczeniu wywołania. Parametr przekazywany przez referencj powinien mie ustalon warto przed wywołaniem metody. 7

Przykład 6 Metoda z parametrem przekazywanym przez referencj static void PrzezReferencje (ref int n, long v) n++; v++; static void Main() int a=3; long b,c; PrzezReferencje(ref a,b); Console.WriteLine("0 1",a,b); PrzezReferencje(a,b); // błd!!! PrzezReferencje(ref b,3); // błd!!! PrzezReferencje(3,3); // błd!!! PrzezReferencje(a,ref b); // błd!!! PrzezReferencje(ref c,a); // błd!!! c) Parametry wyjciowe Co to jest parametr wyjciowy? Jest to parametr, który ma nieustalon warto w momencie wywołania metody, a ustalon warto po zakoczeniu wywołania metody. Deklaracja parametru wyjciowego Naley wpisa słowo out przed parametrem wyjciowym zarówno w deklaracji metody jak i w jej wywołaniu. 8

W kodzie metody z parametrem wyjciowym musi doj do ustalenia wartoci tego parametru. Przykład 7 Metoda z parametrem wyjciowym static void PrzykladOut(int n,out int p) p=0; for (int i=1;i<=n;i++) p+=i; int r,k=20; PrzykladOut(100,out r); PrzykladOut(10,out k); Przykład 8 Metoda z parametrem wyjciowym static void Wynik(out int p) p++; // błd!!! int k=10; Wynik(k); 9

4. Pojcie klasy i obiektu wprowadzenie Klasa to typ bdcy wspóln kapsuła dla danych oraz metod (operacji), które realizuj przetwarzanie tyche danych. Ogólna deklaracja klasy class NazwaKlasy // definicje danych i metod nalecych do klasy Przykład 9 class Konto // definicja danej okrelajcej StanKonta oraz metod Wyplata i Wplata, // które realizuj odpowiednio proces zmniejszania i zwikszania danej StanKonta class Pralka // definicja danych Temperatura, Obroty // oraz metod Pierz i Wiruj, Obiekt to zmienna, której typem jest klasa. 10

Ogólna deklaracja obiektu NazwaKlasy NazwaObiektu; Przykład 10 class Konto // definicja danej okrelajcej StanKonta oraz metod Wyplata i Wplata, // które realizuj odpowiednio proces zmniejszania i zwikszania danej // StanKonta Konto Konto_Ani; // deklaracja obiektu o nazwie Konto_Ani klasy Konto Konto Konto_Adama; // deklaracja obiektu o nazwie Konto_Adama klasy Konto Obiekt klasy Naczynie Obiekt klasy Naczynie Obiekt klasy Owoc Obiekt klasy Owoc Program to kolekcja klas, a klasa to zestaw danych (pól) i metod realizujcych przetwarzanie tych danych. 11