programowanie obiektowe 07

background image

Operatory

background image

Przegląd zagadnień

Rodzaje operatorów
Konwersja typów
Porównywanie obiektów
Przeciążanie operatorów
Podsumowanie
Pytania sprawdzające
Laboratorium

background image

Rodzaje operatorów (1)

Operatory binarne

arytmetyczne

bitowe

logiczne

Operatory unarne

+
-
*
/
%

++
--

&
|
^

<<
>>

~

&&
||

!

background image

Rodzaje operatorów (2)

Operatory porównania

Operatory przypisania

Operator ternarny

==
!=

>
<

>=
<=

+=
-=
*=
/=
%=

&=
|=
^=

<<=
>>=

? :

background image

Konwersja typów

Konwersja niejawna (implicit)

Konwersja jawna (explicit)

byte b = 10;
int i = b;
long l = i;

float f = 1.5f;
double d = f;

long l = 100;
int i = (int) l;

double d = 13.45;
int j = (int) d;

background image

Porównywanie obiektów (1)

Referencje

Gruszka g = new Gruszka();
Gruszka h = g;

if (g == h) { // prawda }

Kwadrat k = new Kwadrat(5);
Kwadrat l = new Kwadrat(5);

if (k == l) { // fałsz }

background image

Porównywanie obiektów (2)

Metody Equals

if (EqualsReference(g,h)) ...
if (Equals(k,l)) ...
if (k.Equals(l)) ...

class Student
{

private int NumerIndeksu
public

override bool Equals(Object s)

{

if (s == null) return false;
if (s is Student)
{

if (NumerIndeksu == s.NumerIndeksu)
return true;

}
return false;

}

}

background image

Przeciążanie operatorów (1)

class Wektor
{

public double x,y,z;

public static bool operator == (Wektor l, Wektor p)

{

if (l.x == p.x && l.y == p.y && l.z == p.z)

return true;

return false;
}

public static bool operator != (Wektor l, Wektor p)

{

if (l == p) return false;

return true;

}
}

Pary operatorów

==, !=

<, >

<=, >=

background image

Przeciążanie operatorów (2)

class Wektor
{

public double x,y,z;

public static Wektor operator + (Wektor l, Wektor p)

{

Wektor w = new Wektor();

w.x = l.x + p.x;
w.y = l.y + p.y;
w.z = l.z + p.z;
return w;
}

public static Wektor operator * (Wektor l, double p)

{

Wektor w = new Wektor();

w.x = l.x * p;
w.y = l.y * p;
w.z = l.z * p;
return w;

}

}

background image

Podsumowanie

Rodzaje operatorów: unarne i binarne,

arytmetyczne, bitowe i logiczne, porównania

i przypisania
Przypisaniu może towarzyszyć konwersja

typu – niejawna lub jawna (gdy istnieje

ryzyko utraty danych)
Domyślnie porównywane są referencje

obiektów
Klasy mogą przeciążać metodę Equals()
oraz

operatory:

arytmetyczne

bitowe

porównania

background image

Pytania sprawdzające

Czym się różnią operatory binarne od

unarnych?
Kiedy stosujemy jawną konwersję

typów?
Jakie jest domyślne działanie

operatora porównywania stosowanego

do obiektów?
Na czym polega przeciążanie

operatorów?
Jakie operatory można przeciążać?

background image

Laboratorium


Document Outline


Wyszukiwarka

Podobne podstrony:
programowanie obiektowe 07, c c++, c#
07 Programowanie obiektowe klasy, obiekty, ochrona danych
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 lata 07
Nowy Dokument programu Word 07
Nowy Dokument programu Word 07 (4)
programowanie obiektowe 05, c c++, c#
Intuicyjne podstawy programowania obiektowego0
Programowanie obiektowe, CPP program, 1
wyklad5.cpp, JAVA jest językiem programowania obiektowego
Nowy Dokument programu Word 07 (2)1
projekt01, wisisz, wydzial informatyki, studia zaoczne inzynierskie, programowanie obiektowe, projek

więcej podobnych podstron