lezione 06 - ereditarietà · CC BY DIAPOSITIVA 3 ALESSANDRO URSOMANDO EREDITARIETÀ OOP...
Transcript of lezione 06 - ereditarietà · CC BY DIAPOSITIVA 3 ALESSANDRO URSOMANDO EREDITARIETÀ OOP...
![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()](https://reader034.fdocuments.net/reader034/viewer/2022052518/5f0416ce7e708231d40c43f4/html5/thumbnails/1.jpg)
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()](https://reader034.fdocuments.net/reader034/viewer/2022052518/5f0416ce7e708231d40c43f4/html5/thumbnails/2.jpg)
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()](https://reader034.fdocuments.net/reader034/viewer/2022052518/5f0416ce7e708231d40c43f4/html5/thumbnails/3.jpg)
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()](https://reader034.fdocuments.net/reader034/viewer/2022052518/5f0416ce7e708231d40c43f4/html5/thumbnails/4.jpg)
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()](https://reader034.fdocuments.net/reader034/viewer/2022052518/5f0416ce7e708231d40c43f4/html5/thumbnails/5.jpg)
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()](https://reader034.fdocuments.net/reader034/viewer/2022052518/5f0416ce7e708231d40c43f4/html5/thumbnails/6.jpg)
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()](https://reader034.fdocuments.net/reader034/viewer/2022052518/5f0416ce7e708231d40c43f4/html5/thumbnails/7.jpg)
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()](https://reader034.fdocuments.net/reader034/viewer/2022052518/5f0416ce7e708231d40c43f4/html5/thumbnails/8.jpg)
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()](https://reader034.fdocuments.net/reader034/viewer/2022052518/5f0416ce7e708231d40c43f4/html5/thumbnails/9.jpg)
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()](https://reader034.fdocuments.net/reader034/viewer/2022052518/5f0416ce7e708231d40c43f4/html5/thumbnails/10.jpg)
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()](https://reader034.fdocuments.net/reader034/viewer/2022052518/5f0416ce7e708231d40c43f4/html5/thumbnails/11.jpg)
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���������-���������������!�������� ����������������!����
�������"���������� ������ ������������������������ ��������&������� �
��� ������"������������������ ����������������� �,� ����������������
���������� ����������� ���!������ ������� �������"���� �� �,� ��������� ���������������������