lezione 06 - ereditarietà · cc by diapositiva 3 alessandro ursomando ereditarietÀ oop...

11
OOP Ereditarietà CC BY ALESSANDRO URSOMANDO DIAPOSITIVA 2 LE TRE CARATTERISTICHE FONDAMENTALI DELLA OOP OOP

Upload: others

Post on 08-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: lezione 06 - ereditarietà · CC BY DIAPOSITIVA 3 ALESSANDRO URSOMANDO EREDITARIETÀ OOP EREDITARIET ˆ Punto ˙ - int x - int y + Punto() + Punto(int x, int y) + int getAscissa()

OOP

Ereditarietà

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 2

LE TRE CARATTERISTICHEFONDAMENTALI DELLA OOP

� OOP

���������������� ���������������� �����������

������������������������������� ������ �� ���� �

���� ��� �������������������������

Page 2: lezione 06 - ereditarietà · CC BY DIAPOSITIVA 3 ALESSANDRO URSOMANDO EREDITARIETÀ OOP EREDITARIET ˆ Punto ˙ - int x - int y + Punto() + Punto(int x, int y) + int getAscissa()

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 3

EREDITARIETÀ

� OOP � EREDITARIET��

���������������������� �������������Punto

- int x

- int y

+ Punto()

+ Punto(int x, int y)

+ int getAscissa()

+ int getOrdinata()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ String toString()

Punto3d

- int x

- int y

- int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getAscissa()

+ int getOrdinata()

+ int getQuota()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ void setQuota(int z)

+ String toString()

�������������������������� �������������

�� ���� ����!�������������������������� �����������������������

��� ���������������� �"� �������������""���������������������� �������������������

��� ���������������������� ��������������� #�� �����������$

��������� ��������� ������ �� ������ #�� ����������� $

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 4

QUALCOSA DA EREDITARE

� OOP � EREDITARIET������

Punto

- int x

- int y

+ Punto()

+ Punto(int x, int y)

+ int getAscissa()

+ int getOrdinata()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ String toString()

Punto3d

- int x �

- int y �

- int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getAscissa() �

+ int getOrdinata() �

+ int getQuota()

+ void setAscissa(int x) �

+ void setOrdinata(int y) �

+ void setQuota(int z)

+ String toString()

�������� �������������������������������������������������#�����������$����������� ������

Punto3d

- int x

- int y

- int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getAscissa()

+ int getOrdinata()

+ int getQuota()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ void setQuota(int z)

+ String toString()

Page 3: lezione 06 - ereditarietà · CC BY DIAPOSITIVA 3 ALESSANDRO URSOMANDO EREDITARIETÀ OOP EREDITARIET ˆ Punto ˙ - int x - int y + Punto() + Punto(int x, int y) + int getAscissa()

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 5

QUALCOSA DA AGGIUNGERE

� OOP � EREDITARIET�

Punto

- int x

- int y

+ Punto()

+ Punto(int x, int y)

+ int getAscissa()

+ int getOrdinata()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ String toString()

Punto3d

- int x

- int y

- int z �

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getAscissa()

+ int getOrdinata()

+ int getQuota() �

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ void setQuota(int z) �

+ String toString()

�������� �������������������������������������������������#�����������$����������� ������

�������� �������������#����� �������$��������� ������ ���

�����������������%�������

Punto3d

- int x

- int y

- int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getAscissa()

+ int getOrdinata()

+ int getQuota()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ void setQuota(int z)

+ String toString()

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 6

QUALCOSA DA RIDEFINIRE

� OOP � EREDITARIET�

Punto

- int x

- int y

+ Punto()

+ Punto(int x, int y)

+ int getAscissa()

+ int getOrdinata()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ String toString()

Punto3d

- int x

- int y

- int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getAscissa()

+ int getOrdinata()

+ int getQuota()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ void setQuota(int z)

+ String toString() �

�������� ������������������������������������������������#�����������$����������� ������

�������� �������������#����� �������$��������� ������ ���

�����������������%�������

�������� �����������������#����� �������$����������������%����������

���������� ������ ��������������&�'����������(

Punto3d

- int x

- int y

- int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getAscissa()

+ int getOrdinata()

+ int getQuota()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ void setQuota(int z)

+ String toString()

Page 4: lezione 06 - ereditarietà · CC BY DIAPOSITIVA 3 ALESSANDRO URSOMANDO EREDITARIETÀ OOP EREDITARIET ˆ Punto ˙ - int x - int y + Punto() + Punto(int x, int y) + int getAscissa()

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 7

RAPPRESENTAZIONE UML

� OOP � EREDITARIET�

Punto

- int x

- int y

+ Punto()

+ Punto(int x, int y)

+ int getAscissa()

+ int getOrdinata()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ String toString()

Punto3d

- int x

- int y

- int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getAscissa()

+ int getOrdinata()

+ int getQuota()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ void setQuota(int z)

+ String toString()

Punto

- int x

- int y

+ Punto()

+ Punto(int x, int y)

+ int getAscissa()

+ int getOrdinata()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ String toString()

Punto3d

- int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getQuota()

+ void setQuota(int z)

+ String toString()

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 8

CODIFICA JAVA

� OOP � EREDITARIET�

������ ����� ��� �

Punto

- int x

- int y

+ Punto()

+ Punto(int x, int y)

+ int getAscissa()

+ int getOrdinata()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ String toString()

Punto3d

- int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getQuota()

+ void setQuota(int z)

+ String toString()

Page 5: lezione 06 - ereditarietà · CC BY DIAPOSITIVA 3 ALESSANDRO URSOMANDO EREDITARIETÀ OOP EREDITARIET ˆ Punto ˙ - int x - int y + Punto() + Punto(int x, int y) + int getAscissa()

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 9

������ ����� ��� �

CODIFICA JAVA

� OOP � EREDITARIET�

������ ����� ��� �������� �� �� ��

Punto

- int x

- int y

+ Punto()

+ Punto(int x, int y)

+ int getAscissa()

+ int getOrdinata()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ String toString()

Punto3d

- int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getQuota()

+ void setQuota(int z)

+ String toString()

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 10

������ ����� ��� �������� �� �� ��

CODIFICA JAVA

� OOP � EREDITARIET�

Punto

- int x

- int y

+ Punto()

+ Punto(int x, int y)

+ int getAscissa()

+ int getOrdinata()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ String toString()

Punto3d

- int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getQuota()

+ void setQuota(int z)

+ String toString()

������ ����� ��� �������� �� �� �������� ����� � ���������� ������� ������ �� �� �� �

����������������������������

Page 6: lezione 06 - ereditarietà · CC BY DIAPOSITIVA 3 ALESSANDRO URSOMANDO EREDITARIETÀ OOP EREDITARIET ˆ Punto ˙ - int x - int y + Punto() + Punto(int x, int y) + int getAscissa()

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 11

������ ����� ��� �������� �� �� �������� ����� � ���������� ������� ������ �� �� �� �

����������������������������

CODIFICA JAVA

� OOP � EREDITARIET�

Punto

- int x

- int y

+ Punto()

+ Punto(int x, int y)

+ int getAscissa()

+ int getOrdinata()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ String toString()

Punto3d

- int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getQuota()

+ void setQuota(int z)

+ String toString()

������ ����� ��� �������� �� �� �������� ����� � ���������� ������� ������ �� �� �� �

����������������������������

������� �� ������������ � ����� �� ������� �� ������������ � ����� �� ������� ���� ������������� �� � ������ �� ������� ���� ������������� �� � ������ �� �

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 12

������ ����� ��� �������� �� �� �������� ����� � ���������� ������� ������ �� �� �� �

����������������������������

������� �� ������������ � ����� �� ������� �� ������������ � ����� �� ������� ���� ������������� �� � ������ �� ������� ���� ������������� �� � ������ �� �

CODIFICA JAVA

� OOP � EREDITARIET�

Punto

- int x

- int y

+ Punto()

+ Punto(int x, int y)

+ int getAscissa()

+ int getOrdinata()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ String toString()

Punto3d

- int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getQuota()

+ void setQuota(int z)

+ String toString()

������ ����� ��� �������� �� �� �������� ����� � ���������� ������� ������ �� �� �� �

����������������������������

������� �� ������������ � ����� �� ������� �� ������������ � ����� �� ������� ���� ������������� �� � ������ �� ������� ���� ������������� �� � ������ �� ������� !���� ��!������ �

����� "�" # � # "�" # � # "�"��

������������������������������� ����� �������������������)�

���!������ �������������������"���������!�����������������������������

����������������� �*��������������� ���� ������������������ �"� ����� �������

Page 7: lezione 06 - ereditarietà · CC BY DIAPOSITIVA 3 ALESSANDRO URSOMANDO EREDITARIETÀ OOP EREDITARIET ˆ Punto ˙ - int x - int y + Punto() + Punto(int x, int y) + int getAscissa()

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 13

������ ����� ��� �������� �� �� �������� ����� � ���������� ������� ������ �� �� �� �

����������������������������

������� �� ������������ � ����� �� ������� �� ������������ � ����� �� ������� ���� ������������� �� � ������ �� ������� ���� ������������� �� � ������ �� ������� !���� ��!������ �

����� "�" # � # "�" # � # "�"��

CODIFICA JAVA

� OOP � EREDITARIET�

Punto

- int x

- int y

+ Punto()

+ Punto(int x, int y)

+ int getAscissa()

+ int getOrdinata()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ String toString()

Punto3d

- int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getQuota()

+ void setQuota(int z)

+ String toString()

������ ����� ���$� ������ ��� �

+���������� ��� �������������� �����������!���������������

������ �,� �����������������

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 14

������ ����� ��� �������� �� �� �������� ����� � ���������� ������� ������ �� �� �� �

����������������������������

������� �� ������������ � ����� �� ������� �� ������������ � ����� �� ������� ���� ������������� �� � ������ �� ������� ���� ������������� �� � ������ �� ������� !���� ��!������ �

����� "�" # � # "�" # � # "�"��

CODIFICA JAVA

� OOP � EREDITARIET�

������ ����� ���$� ������ ��� �

������ ����� ���$� ������ ��� �������� �� %�

+���������� ��� �������������� �����������!���������������

������ �,� �����������������

Page 8: lezione 06 - ereditarietà · CC BY DIAPOSITIVA 3 ALESSANDRO URSOMANDO EREDITARIETÀ OOP EREDITARIET ˆ Punto ˙ - int x - int y + Punto() + Punto(int x, int y) + int getAscissa()

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 15

������ ����� ���$� ������ ��� �������� �� %�

������ ����� ���$� ������ ��� �������� �� %������� ���$��� ��������������

������ ����� ��� �������� �� �� �������� ����� � ���������� ������� ������ �� �� �� �

����������������������������

������� �� ������������ � ����� �� ������� �� ������������ � ����� �� ������� ���� ������������� �� � ������ �� ������� ���� ������������� �� � ������ �� ������� !���� ��!������ �

����� "�" # � # "�" # � # "�"��

CODIFICA JAVA

� OOP � EREDITARIET�

+���������� ��� �������������� �����������!���������������

������ �,� �����������������

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 16

������ ����� ���$� ������ ��� �������� �� %������� ���$��� ��������������

������ ����� ��� �������� �� �� �������� ����� � ���������� ������� ������ �� �� �� �

����������������������������

������� �� ������������ � ����� �� ������� �� ������������ � ����� �� ������� ���� ������������� �� � ������ �� ������� ���� ������������� �� � ������ �� ������� !���� ��!������ �

����� "�" # � # "�" # � # "�"��

CODIFICA JAVA

� OOP � EREDITARIET�

������ ����� ���$� ������ ��� �������� �� %������� ���$��� �������������������� ���$���� �� �� �� �� %� �

��������������&�����%��

+���������� ��� �������������� �����������!���������������

������ �,� �����������������

�������� ������� ��������������������� ������

������������������� �����������

Page 9: lezione 06 - ereditarietà · CC BY DIAPOSITIVA 3 ALESSANDRO URSOMANDO EREDITARIETÀ OOP EREDITARIET ˆ Punto ˙ - int x - int y + Punto() + Punto(int x, int y) + int getAscissa()

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 17

������ ����� ���$� ������ ��� �������� �� %������� ���$��� �������������������� ���$���� �� �� �� �� %� �

��������������&�����%��

������ ����� ��� �������� �� �� �������� ����� � ���������� ������� ������ �� �� �� �

����������������������������

������� �� ������������ � ����� �� ������� �� ������������ � ����� �� ������� ���� ������������� �� � ������ �� ������� ���� ������������� �� � ������ �� ������� !���� ��!������ �

����� "�" # � # "�" # � # "�"��

CODIFICA JAVA

� OOP � EREDITARIET�

������ ����� ���$� ������ ��� �������� �� %������� ���$��� �������������������� ���$���� �� �� �� �� %� �

��������������&�����%��

������� �� ���&������ ������ %�������� ���� ���&������� %� � �����% %� �

��

+���������� ��� �������������� �����������!���������������

������ �,� �����������������

�������� ������� ��������������������� ������

������������������� �����������

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 18

������ ����� ���$� ������ ��� �������� �� %������� ���$��� �������������������� ���$���� �� �� �� �� %� �

��������������&�����%��

������� �� ���&������ ������ %�������� ���� ���&������� %� � �����% %� �

��

������ ����� ��� �������� �� �� �������� ����� � ���������� ������� ������ �� �� �� �

����������������������������

������� �� ������������ � ����� �� ������� �� ������������ � ����� �� ������� ���� ������������� �� � ������ �� ������� ���� ������������� �� � ������ �� ������� !���� ��!������ �

����� "�" # � # "�" # � # "�"��

CODIFICA JAVA

� OOP � EREDITARIET�

������ ����� ���$� ������ ��� �������� �� %������� ���$��� �������������������� ���$���� �� �� �� �� %� �

��������������&�����%��

������� �� ���&������ ������ %�������� ���� ���&������� %� � �����% %� ������� !���� ��!������ �

����� "�" # ������������ # "�" #������������ # "�" # % # "�"�

��

+���������� ��� �������������� �����������!���������������

������ �,� �����������������

�������� ������� ��������������������� ������

������������������� �����������

�������� ������������������������������������������������������

���������������������-������� �*�� ������������������������� ����� ����������������������������� ����)�� ����� �*�

����������������

���� �� ���������������������� ��������� ���������������������������������������������������������

��� �"� ����� �� �������

Page 10: lezione 06 - ereditarietà · CC BY DIAPOSITIVA 3 ALESSANDRO URSOMANDO EREDITARIETÀ OOP EREDITARIET ˆ Punto ˙ - int x - int y + Punto() + Punto(int x, int y) + int getAscissa()

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 19

������ ����� ���$� ������ ��� �������� �� %������� ���$��� �������������������� ���$���� �� �� �� �� %� �

��������������&�����%��

������� �� ���&������ ������ %�������� ���� ���&������� %� � �����% %� �

��

������ ����� ��� �������� �� �� �������� ����� � ���������� ������� ������ �� �� �� �

����������������������������

������� �� ������������ � ����� �� ������� �� ������������ � ����� �� ������� ���� ������������� �� � ������ �� ������� ���� ������������� �� � ������ �� ������� !���� ��!������ �

����� "�" # � # "�" # � # "�"��

CODIFICA JAVA

� OOP � EREDITARIET�

������ ����� ���$� ������ ��� �������� �� %������� ���$��� �������������������� ���$���� �� �� �� �� %� �

��������������&�����%��

������� �� ���&������ ������ %�������� ���� ���&������� %� � �����% %� ������� !���� ��!������ �

����� "�" # ������������ # "�" #������������ # "�" # % # "�"�

��

.������������� �����#����������$��� ����������������������

���������������������������� ��������� �"� ����� �� ������

����������������������������������� ������������������������������

�������� �������"��������������

������ ����� ��� �������� ��������� �� �� �������� ����� � ���������� ������� ������ �� �� �� �

����������������������������

������� �� ������������ � ����� �� ������� �� ������������ � ����� �� ������� ���� ������������� �� � ������ �� ������� ���� ������������� �� � ������ �� ������� !���� ��!������ �

����� "�" # � # "�" # � # "�"��

������ ����� ���$� ������ ��� �������� �� %������� ���$��� �������������������� ���$���� �� �� �� �� %� �

��������������&�����%��

������� �� ���&������ ������ %�������� ���� ���&������� %� � �����% %� ������� !���� ��!������ �

����� "�" # ������������ � # "�" #������������ � # "�" # % # "�"�

��

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 20

������ ����� ��� ���������� �� �� �������� ����� � ���������� ������� ������ �� �� �� �

����������������������������

������� �� ������������ � ����� �� ������� �� ������������ � ����� �� ������� ���� ������������� �� � ������ �� ������� ���� ������������� �� � ������ �� ������� !���� ��!������ �

����� "�" # � # "�" # � # "�"��

������ ����� ���$� ������ ��� �������� �� %������� ���$��� �������������������� ���$���� �� �� �� �� %� �

��������������&�����%��

������� �� ���&������ ������ %�������� ���� ���&������� %� � �����% %� ������� !���� ��!������ �

����� "�" # � # "�" # � # "�" # % # "�"��

ISTANZIAZIONE DI SOTTOCLASSI

� OOP � EREDITARIET�

���$� � �' ���$�����������������($���������������)(�������&�����*��!����+��������������

���$� � �' ���$��,�-.�(��!����+��������������

Page 11: lezione 06 - ereditarietà · CC BY DIAPOSITIVA 3 ALESSANDRO URSOMANDO EREDITARIETÀ OOP EREDITARIET ˆ Punto ˙ - int x - int y + Punto() + Punto(int x, int y) + int getAscissa()

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 21

PROTECTED IN UML

� OOP � EREDITARIET�

Punto

# int x

# int y

+ Punto()

+ Punto(int x, int y)

+ int getAscissa()

+ int getOrdinata()

+ void setAscissa(int x)

+ void setOrdinata(int y)

+ String toString()

Punto3d

# int z

+ Punto3d()

+ Punto3d(int x, int y, int z)

+ int getQuota()

+ void setQuota(int z)

+ String toString()

��/0���� �������������������������������

������ ��������������������������

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 22

EREDITARIETÀ

� OOP � EREDITARIET�

1���������-���������������!�������� ����������������!����

�������"���������� ������ ������������������������ ��������&������� �

��� ������"������������������ ����������������� �,� ����������������

���������� ����������� ���!������ ������� �������"���� �� �,� ��������� ���������������������