la programmazione orientata agli oggetti (o.o.p.) a oggetti... · informatica – la programmazione...

16
Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta Gerboni Informatica – La Programmazione Orientata agli Oggetti

Upload: nguyenminh

Post on 15-Feb-2019

320 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

La Programmazione

Orientata agli Oggetti (O.O.P.)

Roberta Gerboni

Informatica – La Programmazione Orientata agli Oggetti

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

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

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

!

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

������� � ���!���& � ������� ������ ����������� �� ������������ ��������� ���� �������� �$ ������ � �� �������� ���������� ��� � �����

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

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

'� ���� �� � ������� ��������� �� �������� �� �����#& �������& ���������������� ��� �����'� ���� �� ���� �� ���� �������� ()��*�+� ���� # ������������ �� �� �� ����������������% � ������� �� $�%��� �� ������� �� ���������� ��� ������������ � ������ � ���� �

Page 2: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

��������������&��������������&

������������������������������������&��������������&

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

����%���&

����%����

�������

����%����

,

�������������&��

����������������������&��

�����#&

�����������'�������(

Informatica – La Programmazione Orientata agli Oggetti

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

-���������� �� ������� ��� ������� ���������� ��� �����������

-���������� �� ������� ��� ������� ���� ����� ����������

-���������� ����������

)���%���&%�&�������������&

�&�%&������������&��&�������&��)�*���&��%��&����%����

.

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

• � ���� ������� ���� ����������� �������� ����� ������� ��� ���������� � ��� ������� �������� �� �� ������

• �$ ������ �������� � ���������� �� ������� �� ������ ����������

• ��������/ � ���� �� ������

• ������� �� �������� ������� �������� �� ����� �� ���������� ��� �� ��� �������� ���������� �� ������� �� ��������

• 0���� �� �� ������ ��� ������ �� ���� ������� ����� �� ����������� ������� �� ���� ��������� �� ���� # ������� �� ��������������

Page 3: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

1��������� ������������ ����� 22- # �� �%�����

1� �%���� # � �� � ��������� ��� ������� ����� �������� ��� �� ����������

"� �������� �� ����� ����� ������������ �� ���� ����� ������� ����������������������� ��� ���� ����������� ���������� 3�4 �������� �� ������ ��������� ��������� ��� ������ ��������� � ���� ���������� �� ������� ���������� ��� ���������

1� �%���� # �� ����������� �������� �� � �� � �� ���� ()��* � �������� ��

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

5

1� �%���� # �� ����������� �������� �� � �� � �� ���� ()��* � �������� ��)����%�� �� ������� ��� ����������� � � ���� ���� �������

+� ������� # �� ������� ��%%� �%����% ���� �� ������� �� �������������������� �� �� ����� ������& �� ���� � ������� �� ���������� �� ��������� ��� ���� ����� ��������� ����������

1� ��������� ��� ������ � ������� # �� ������ ��������� ��� ��# ��� �� � �� ����� �����

Informatica – La Programmazione Orientata agli Oggetti

'��������%6�67���������

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

8

Page 4: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

OrcoOrco CavaliereCavaliere

Classi

Istanze (Oggetti)

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

9

Informatica – La Programmazione Orientata agli Oggetti

2��� ������� # �������� ��%

• ��������� ��� �� ��������� �� �� �������������+� � ��������# ������������ � ������� �� ��� ����� � ���� ��� � ��������� � ���������

• ������ ��� �� ��������� � ������������� ���������%� � �� ������&�� ��������# �������+�& ���# �� ���������/ ������������ ������ � ����� ��������� 4 ����������" ������ ������� �������� ��� �� )������� ���������� �� ��������

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

" ������ ������� �������� ��� �� )������� ���������� �� ����������� �� ��������� �� ����� ������������ � ������ ����� �������� �������� ������ �� ��������

1� ����� �� �� �������& # �:������� ��� ������ ����� �� �� ����/ �� ������������ ������� �� ��� � ($�%��� ������� ��%%� $������%�*� '� ����������� � ���� ������ �� �� �� ����/ �� � �������& �� �� ����� ������/ ������������

��� ����� ����:�����������& � ������� # �������/ �������� �� �����������& �� � ��� ���%���� �& ������& ���� �� ������������

Page 5: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

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

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

�������&,

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

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

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

Attributo

Attributo

Attributo

�����)�����" ������ �� �� ������������������ �������)���������� ������ (���# ��������� ��� ��������� 4 ����� ������* � �����:���� ����������������� �� ��� # �������� ���������� ���� ������� ����� �������

Informatica – La Programmazione Orientata agli Oggetti

���������

��� ��%%�

�%����

������

��

������

Page 6: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

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

������

��

; ���� � ������� ������ �� ��� �� ��������� ������ "� ��������� �� ���������������� � ������� ��� �� � �� �������%

< � ������� ������� �� �������

< � ����� ��� ���� �� � ���

< � ��������� ������ �� ������

; "� ���������=��� ��� ���� ������� �� ����� �� ������� � ���� �������� �� ����������� �� ������ ���� ������������ ��� �� ��

Informatica – La Programmazione Orientata agli Oggetti

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

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

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

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

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

Che succede se devo

aggiungere nuovi tipi di

soldato?

�!

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

�������� ��

��������

�������

��������

Se devo aggiungere

nuovi tipi di soldato il

codice non cambia!

Page 7: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

-" �������%������ � ��)�������� +�����

+�� ��� ������ �������� # ���������%������& ���# �� �� ����/ ����� ������� �� ������� �� ��� ������ ��� ��� ������� (�� ���������* ��� � ������ (�� ������*& ������������� ��� ����������� �� ����� � �� ����� ��������� ������������

'� �� ���� ���� �� �� ��� ��� ���%� ��������� ������������� ������� ���������� ��������� ������� 1����� � ���� �������� ��# ����� ���� ����)�������� +����� (����+�������� ��%%� ��)��������� ���� ���� ��$�����%�

������������*�

��������%� ��������#

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

�,

������������*�

"������ ������ ��������%• �������� %.���%����������� �������% ����������������� ������ / ���� ���� )� � ������ ������& ���# ���� ������� ������������� (���������/ ������& ���������� �������� � �� � ���������*&�� ��� / ���� ���� %� )��

• �������� �� ������� �������� � >���������?������������% �� ���� �� # �������� ��������� ���������� � �������� ����������� ������ ��� ���������� � ������ ������ ��� �� ������������ �������

Informatica – La Programmazione Orientata agli Oggetti

1� ������� ������ ������� �� � ������� ��� ������� � ��%�$����� # ���� ����� � ������� ����:����������� ��� �� ��� ���:������� �� ���� ������������������ ���������������� ��� ��������� �� ���������� ��� �:������� �������

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

������

�.

Page 8: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

�5

Informatica – La Programmazione Orientata agli Oggetti

�8

Page 9: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

�9

Informatica – La Programmazione Orientata agli Oggetti

0" ����������#

+�� �������� ����� �������� ����� ������������ �� ������� # �������������#& ����������� ��%

�������� �� ���� ������ ��� �������� �� �� ����/ �� �� ������ ��/ ��������� &

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

��������%� ��������#

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

��

Page 10: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

1" ��%����)����

"� ��%����)���� # �� ���������/ �� ���������� � ���� ������ ��� ���/ ���� ��������� ������� �� ���� �� �� � �� ������� � �� ����� � �������

@���� # ���� �������� ����� ���������������# � �����$��%������% ������� �������� ������� ��� �� ������ ���� � �� ������� 0���������� �� ���� ��� ��������������� �������� ������� �� ���� �� �� � �� ������� � �� # ����� �����������

��������%� ��������#

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

��

Informatica – La Programmazione Orientata agli Oggetti

!%���� � �������2 ��������� � ������ ��� ��������� �

��� � ���� ���������� ������� ��� +A1 ����� � ��� ������� �� ���������� �������� �� ���� �� � ������� �������� � ����� ���� ������� �� ���������& �� �� ���������� �������� �� �������� ������� �� ���������� �� ������ � ���������� ��� ������������ ��� �� ����% �� ��������� ��%%� �%���� (������������*%

B ������� �������� ������������ ����� ������%

�� ����

!�

��� ������%

�����%�

���$��� 3

����%��+� 4

�������� 5

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

>3?666666>4?666666>5?6

�� ����

� �������

Page 11: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

-�� ���� ������& ����� �� �� ������� �� ���������/ ( ������ � ������* #

� , ��������� ��%%� �%����

!�

-�� ���� ������& ����� �� �� ������� �� ���������/ ( ������ � ������* #���������� ��������%

• � ���� � � ���� ���%� �$�����%� ��������� � �� %��� ���%� (��=��=�����*C

• �� ���� ��%%6�$�����%� $�%��� ���������� (��� ����� ������� �� � �� �������� � �� ������� D , � *�

Informatica – La Programmazione Orientata agli Oggetti

������

!%���� ��%�$�����

• ���� ��� �������� ���� ������ � ���� ������� ���� ������C

• �� �������� ���� �������� ���������� ����� �������� ���������������������� ���� ����������=������%� +� ������ �� �� ���� ����� ��� �� ������� ���& ������ ��� ���� �� �

!!

������� ���& ������ ��� ���� �� ��������� ����� ������& ��������� ��

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

� +� ������ �� �� ���� ����� ��� �� ������� ���& ������ ��� ���� �� ���������& �� �� ��� � �� �� �����

� ���� ����� �� �� �������/����� ����������� ��� �������������

Page 12: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

• ��� �� ���� ��� �������� ���� ������������� ��� ������ ������% �� ���������� ����� �������� �� ����������� ��� ���� ������������ �������� ����� �� �������� � ������������ �� ������ ���� ��� ������

����������� �+� ������ �% ����

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

������

!%���� ��%�$�����

!,

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

• " ������ ��� ���������� ������������ ��� ������������������� � ����������� �������� ������ ������ �� ����������� ���� ��� ��� ������ �� ������������ ��������� �� ������ ������ ����������& � � ������ �� ������������� ���������� �� ���� ���������

Informatica – La Programmazione Orientata agli Oggetti

-��6��������6�6 ��������6���������6����6�������6�������%6

• "����������� ��� ������� ��� ������������ �� ������� ��� �������

• �������� �� �%���� & ��������� ��� ��������� � �������

• '�������� ���� ��� ������� ������������� ��� ���� ���������� ������������ ����� ������� �� ���������

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

!.

Page 13: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

��)��������&��&���&�%����&&��&!44

�%��� ���������� E== )��������� �� ��������� C�� �! ��������� CFF== A������� �� ���������C�� �! ���������C

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

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

�%��� ���������� E== )�������

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

��������%�

�����%6�����������%6�����

G�������(��6�%�����&6�� �%�����*%6����G����(6*%6�����

�� �� �� ���

!5

�� �! ���������CF��

HC

== )������������ ����� ������� C

���%��,== A��������� �������(����� �& ����� �* E���� I �C����� I �C

H����� ����( * E����� ����J�����C

HHC

)��K�L"2�K%

1� ������� ���$��� # �� �������

-�� ��� �������� � � ������ ������ ������ � ��������� ���%���

Informatica – La Programmazione Orientata agli Oggetti

���+���������&��&��&�������&��&���&�%����&&��&!44'���������&��&��.�������(

���������� �����������C��� ���� (*

E ��������%� 7�����C

������������(���� & ��8�*C

���MMN"� ���� ��� � �� � �������

�� NMM ���������(*MMN � OC

����� �C

H

+�� ����� ����������� ������ �� ��������& # ���������������� �� ������������ ����������� N"O

!8

����� ������������ 22- �� ��������� �� �� ������� �� ���� ����������� ����� ����� ������%

• �%%����� �:���� �� ������� �� �� ����������� ����:������� ������C

• ������%������ � $�%��� ���%� ��������� ��� ������������ �� ��� ����������������� ����:��������

1� ������� ����� ����� �� ������ ��� ����������� ����� ������& ����� �� ��� ������ ������& ����������� ���������� ��� �� ������ ���� ��%%� �%�����

Page 14: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

��������%�

�����%6�����������%6�����

4��������%�'&(

G�������(��6�%�����&6�� �%�����*%6����G�����������(*%6����G����(6*%6�����

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

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

�%��� ���������� E== )������������ ����� ������� C

���%��,== 3���������0��������� (* E

���� I ���C����� I ���C

H

== A��������� �������(����� �& ����� �* E

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

"� �����������%

!9

== A��������� �������(����� �& ����� �* E���� I �C����� I �C

H���� $����%��������(* E���MMNP��� I NMM����MM����C���MMN)����INMM�����MM����C

H����� ����( * E����� ����J�����C

HHC

• Q� �� ������ ���� ��%%� �%����

• ����� ���+������ ��������������� �� ����

���%����� ���� �������� �� �������� (������� ��� # ����� ����������*

• ��� ���$��� %� ������������ �� �%��� $�%���

�& �� ���������& ��� ���� ������� ��������� ���� �� � �� ���� �������

• "� ������������ 4 �������� ���������������� ������ �� �� ��� ������������� ������������� ��������� � ������ ��� �������� ���� ����� ������

Informatica – La Programmazione Orientata agli Oggetti

��������%�

�����%6�����������%6�����

4��������%�'&(

G�������(��6�%�����&6�� �%�����*%6����G�����������(*%6����G����(6*%6�����

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

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

�%��� ���������� E== )������������ ����� ������� C

���%��,== 3���������0��������� (* E

���� I ���C����� I ���C

H== A��������� �������(����� �& ����� �* E���� I �C

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

��� ���� ( *

!�

���� I �C����� I �C

H

���� �����%��������(* E���MMNP��� I NMM����MM����C���MMN)����INMM�����MM����C

H

����� ����( * E����� ����J�����C

HHC

��� ���� ( *E ��������%� 7�����C ����������������( *C ������������(���� & ��8�*C���MMN)���INMM ���������(*CH

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

��������

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

Page 15: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

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

�%��� ������E== )������������ �����P�������C

���%��,== )����������� ����R�5S& �������R�5HC���� ��������R!�S C���� �����R,�S C== A��������� �����%��8�������(����� �* E�� (�M�*

��� MM N'���� ��� ���������T�OC ��� ���� ( *

�������

-�����P�������%6�����G����%6����R�5SG�������%6����R�5SG��������%6����R!�SG�����%6����R,�S

G���'����P�������(��6�%6�����*%6����G���'����P�������(��6�%6�����*%6�����

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

!�

��� MM N'���� ��� ���������T�OC����

�����P������� I �CH����� �����%��8�������( *E����� �����P�������C

HHC

��� ���� ( *E ������� ��C����� �����C���MMN"��������6����%6OC666666���UU"������C���MMN"��������6�������%6OC66666666���UU"���������CF���MMN"��������6�����6��������%6OC666666666���UU�����C"�����'����P�������(�����*CFFH

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

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

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

Informatica – La Programmazione Orientata agli Oggetti

V������ M��������U���� ����� ��� ���C

�%��� ��������� E99 ��������� �������������+� ��������+��

��� ������C������ �������C������ ������C

99 ��������� ����� ��������+��

��� ������C��� �����C��� ������C

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

,�

��� ������C���� ������C

���%��,

99 �����������

����������(��� ������& ������ �������& ������ ������* E���-������( ������*C���'������(�������*C���3�����(������*C������ I �C����� I ��C������ I ,�C������ I �����C

H

Page 16: La Programmazione Orientata agli Oggetti (O.O.P.) a oggetti... · Informatica – La Programmazione Orientata agli Oggetti La Programmazione Orientata agli Oggetti (O.O.P.) Roberta

Informatica – La Programmazione Orientata agli Oggetti

99 ������9������

���$���,

���� ���-������(��� * E ������ I CH���� ���3�����(������ �* E������ I �CH���� ���'������(������ �* E������� I �CH

���%��,

��� ���-������(* E����� ������CH������ ���3�����(* E����� ������CH������ ���'������(*E����� �������CH��� ���3�����(*E����� ������CH��� ���7����(*E����� �����CH��� ���1�����(*E����� ������CH���� ���3�����(��� �* E�� (�U� WW �M��* ������ I �CH

���� ������7����(*E�� (�����M5�* �����GGCH���� ���������7����(*E�� (�����U�* �������CH���� ������1�����(*E�� (������M��* ������ GGCH���� ���������1�����(*E

,�

��� ���� '( E���������� ������I ����������(,!&X1K�X&X����X*C��������������(*C�������������'��������(*C�������������7����(*C���MM����������3�����(*MM����C���MM����������3�����(*MM����C���MM ����������7����(*MM����CH

���� ���3�����(��� �* E�� (�U� WW �M��* ������ I �CH���� ��)�����(* E����� ������CH

99 ����������

���%��,

���� �������(* E������ I ���CH���� � ����(*E������ I �����CH���� ������3�����(*E�� (������M��* ������GGCH���� ���������3�����(*E�� (������U�* ��������CH

E�� (������U�* ��������CH

HC

Informatica – La Programmazione Orientata agli Oggetti

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

-�� ������� ��� ������� ������� ��������� �� ��������� ����� ������ (+A1*&��� ������� ������������� �� ��������& � �� ��������� �� ������ ������� �������� ��3GG �������� �� ������� �� ������������ �� �������%

�* 0������� � ��������� ����� � ��� �� ���� ������������ � ������������ �� �����/ �� ���������

!* '� ���� �� ��������� � ��� � ���������� ����� ��� ���� ����������� �� � ����� ��� �� ���� �� ��� �� ��� ������� �� ������ "� ��� 4 ������ �������� �� ������Y � �����Z� -�������� � ���������� ���� �������� �� ��������� �� ���������� ����� ���� ����������& � ���������� ����������� ��� ���� � ���

,!

������� ����� ���� ����������& � ���������� ����������� ��� ���� � ����������� ����� ������� � � ���������� ����������� �� ��������� � ��� ������� ��� ���������� ��������� �� ���������

,* "� ��������� �� ������ ������� ������������ ����� ���������� ��� ������ ��� �������������� � ����� ����� ��� ������� ("� ���������� �� ������ ������� � ������� ��������� ������������ ����� ���� ����������*�

.* '������ �� ��� ��������� �� � ��������� ��� ����� � �������� �� ��� ����� "� ���������� �� �������� ���� ������� � ������� �� ������ ����� ��������� ��������1� ��������� ������ �� ���������� �� ����� ��� ���� � �� ������� 1���������� ���� # ����� �� � ���� �� �� ���� � �����