OOP Concepts in Java

ups koncepcje w javie

Co to jest OOPS?

System programowania obiektowego (OOP) jest koncepcjฤ… programowania, ktรณra dziaล‚a na zasadach abstraccja, hermetyzacja, dziedziczenie i polimorfizm. Pozwala uลผytkownikom tworzyฤ‡ obiekty, ktรณrych potrzebujฤ…, i tworzyฤ‡ metody do obsล‚ugi tych obiektรณw. Podstawowฤ… koncepcjฤ… programowania obiektowego (OOP) jest tworzenie obiektรณw, ponowne ich wykorzystywanie w caล‚ym programie i manipulowanie nimi w celu uzyskania rezultatรณw.

OOP, czyli โ€žprogramowanie obiektoweโ€, jest popularnie znanฤ… i szeroko stosowanฤ… koncepcjฤ… we wspรณล‚czesnych jฤ™zykach programowania, takich jak Java.

OOP Concepts in Java z przykล‚adami

Poniลผej przedstawiono ogรณlne koncepcje programowania obiektowego Java:

1) Klasa

klasa jest jednym z podstawowych pojฤ™ฤ‡ OOP, ktรณre jest grupฤ… podobnych bytรณw. Jest to tylko logiczny skล‚adnik, a nie byt fizyczny. Zrozumiemy to jedno z OOP Concepts na przykล‚ad, jeล›li masz klasฤ™ o nazwie โ€žDrogie samochodyโ€, moลผe ona zawieraฤ‡ obiekty takie jak Mercedes, BMW, Toyota itp. Jej wล‚aล›ciwoล›ciami (danymi) mogฤ… byฤ‡ cena lub prฤ™dkoล›ฤ‡ tych samochodรณw. Chociaลผ metody te mogฤ… byฤ‡ wykonywane w przypadku tych samochodรณw, obejmujฤ… jazdฤ™, bieg wsteczny, hamowanie itp.

2) Przedmiot

Obiekt moลผna zdefiniowaฤ‡ jako instancjฤ™ klasy, a w programie moลผe istnieฤ‡ wiele instancji klasy. Obiekt jest jednym z Java Koncepcje OOPs, ktรณre zawierajฤ… zarรณwno dane, jak i funkcjฤ™, ktรณra dziaล‚a na danych. Na przykล‚ad โ€“ krzesล‚o, rower, marker, dล‚ugopis, stรณล‚, samochรณd itp.

3) Dziedziczenie

Dziedzictwo jest jednym z podstawowych Concepts OOP, w ktรณrych jeden obiekt przejmuje wล‚aล›ciwoล›ci i zachowania obiektu nadrzฤ™dnego. Tworzy relacjฤ™ rodzic-dziecko pomiฤ™dzy dwiema klasami. Oferuje solidny i naturalny mechanizm organizacji i struktury dowolnego oprogramowania.

4) Polimorfizm

Wielopostaciowoล›ฤ‡ odnosi siฤ™ do jednego z pojฤ™ฤ‡ OOP w Java czyli zdolnoล›ฤ‡ zmiennej, obiektu lub funkcji do przyjmowania wielu form. Na przykล‚ad w jฤ™zyku angielskim czasownik biegaฤ‡ ma inne znaczenie, jeล›li uลผyjesz go z laptop, wyล›cig stรณp, biznes. Tutaj rozumiemy znaczenie biegaฤ‡ w oparciu o inne sล‚owa uลผyte wraz z nim. To samo tyczy siฤ™ polimorfizmu.

5) Miฤ™ล›nie brzuchatraccja

Abstraccja jest jednym z OOP Concepts in Java ktรณry jest aktem reprezentowania istotnych cech bez uwzglฤ™dniania szczegรณล‚รณw tล‚a. Jest to technika tworzenia nowego typu danych, ktรณry jest odpowiedni dla konkretnej aplikacji. Zrozumiemy to jedno z OOP Concepts np. prowadzฤ…c samochรณd nie musisz martwiฤ‡ siฤ™ o jego wewnฤ™trzne dziaล‚anie. Tutaj musisz tylko zajฤ…ฤ‡ siฤ™ czฤ™ล›ciami takimi jak kierownica, przekล‚adnie, pedaล‚ gazu itp.

6) Hermetyzacja

Kapsuล‚kowanie jest jednฤ… z najlepszych Java Koncepcje OOPs dotyczฤ…ce zawijaniaping Dane i kod. W tej koncepcji OOP zmienne klasy sฤ… zawsze ukryte przed innymi klasami. Dostฤ™p do nich jest moลผliwy tylko za pomocฤ… metod bieลผฤ…cej klasy. Na przykล‚ad โ€“ w szkole uczeล„ nie moลผe istnieฤ‡ bez klasy.

7) Stowarzyszenie

Stowarzyszenie to relacja pomiฤ™dzy dwoma obiektami. To jeden z OOP Concepts in Java ktรณry okreล›la rรณลผnorodnoล›ฤ‡ pomiฤ™dzy obiektami. W tej koncepcji OOP wszystkie obiekty majฤ… swรณj odrฤ™bny cykl ลผycia i nie ma wล‚aล›ciciela. Na przykล‚ad wielu uczniรณw moลผe powiฤ…zaฤ‡ siฤ™ z jednym nauczycielem, a jeden uczeล„ moลผe takลผe powiฤ…zaฤ‡ siฤ™ z wieloma nauczycielami.

8) Agregacja

W tej technice wszystkie obiekty majฤ… swรณj oddzielny cykl ลผycia. Istnieje jednak wล‚asnoล›ฤ‡, tak ลผe obiekt podrzฤ™dny nie moลผe naleลผeฤ‡ do innego obiektu nadrzฤ™dnego. Na przykล‚ad rozwaลผ klasฤ™/obiekty department i teacher. Tutaj pojedynczy nauczyciel nie moลผe naleลผeฤ‡ do wielu departmentรณw, ale nawet jeล›li usuniemy department, obiekt teacher nigdy nie zostanie zniszczony.

9) Skล‚ad

Kompozycja jest wyspecjalizowanฤ… formฤ… agregacji. Nazywa siฤ™ to takลผe zwiฤ…zkiem โ€žล›mierciโ€. Obiekty podrzฤ™dne nie majฤ… swojego cyklu ลผycia, wiฤ™c gdy obiekt nadrzฤ™dny zostanie usuniฤ™ty, wszystkie obiekty podrzฤ™dne rรณwnieลผ zostanฤ… usuniฤ™te automatycznie. W tym celu weลบmy przykล‚ad domu i pokoi. Kaลผdy dom moลผe mieฤ‡ kilka pokoi. Jeden pokรณj nie moลผe staฤ‡ siฤ™ czฤ™ล›ciฤ… dwรณch rรณลผnych domรณw. Jeล›li wiฤ™c usuniesz, pokรณj w domu rรณwnieลผ zostanie usuniฤ™ty.

Zalety OOP (systemu programowania obiektowego):

  • OOP Concepts in Java oferujฤ… ล‚atwฤ… do zrozumienia i przejrzystฤ… strukturฤ™ moduล‚owฤ… programรณw.
  • Obiekty utworzone dla programรณw obiektowych moลผna ponownie wykorzystaฤ‡ w innych programach. W ten sposรณb oszczฤ™dza znaczne koszty rozwoju.
  • Pisanie duลผych programรณw jest trudne, ale jeล›li zespรณล‚ programistรณw i projektantรณw stosuje koncepcjฤ™ OOPS, mogฤ… oni projektowaฤ‡ lepiej, unikajฤ…c bล‚ฤ™dรณw.
  • Zwiฤ™ksza to moduล‚owoล›ฤ‡ programu, poniewaลผ kaลผdy obiekt istnieje niezaleลผnie.

Porรณwnanie OOPS z innymi stylami programowania na przykล‚adzie

Rozumiemy na przykล‚adzie, jak Java OOP Concepts rรณลผniฤ… siฤ™ od innych podejล›ฤ‡ do programowania.

Jฤ™zyki programowania moลผna podzieliฤ‡ na 3 podstawowe typy

  1. Niestrukturalne jฤ™zyki programowania: Najbardziej prymitywny ze wszystkich jฤ™zykรณw programowania, charakteryzujฤ…cy siฤ™ sekwencyjnym przepล‚ywem sterowania. Code powtarza siฤ™ w caล‚ym programie
  2. Strukturalne jฤ™zyki programowania: Ma niesekwencyjny przepล‚yw kontroli. Uลผycie funkcji pozwala na ponowne wykorzystanie kodu.
  3. Obiektowe jฤ™zyki programowania: ลฤ…czy dane i dziaล‚anie razem.

Kliknij w tym miejscu jeล›li film nie jest dostฤ™pny

Rozumiemy te 3 typy na przykล‚adzie.

Zaล‚รณลผmy, ลผe chcesz stworzyฤ‡ oprogramowanie bankowe z funkcjami takimi jak

  1. Depozyt
  2. Wypล‚aty
  3. Pokaลผ saldo

Niestrukturalne jฤ™zyki programowania

Najwczeล›niejszym ze wszystkich jฤ™zykรณw programowania byล‚ niestrukturalny jฤ™zyk programowania. Bardzo podstawowy kod aplikacji bankowej w nieustrukturyzowanym jฤ™zyku programowania bฤ™dzie miaล‚ dwie zmienne jednego numeru rachunku i drugiej dla salda konta

int account_number=20;
int account_balance=100;

Zaล‚รณลผmy, ลผe dokonano wpล‚aty w wysokoล›ci 100 dolarรณw.

account_balance=account_balance+100

Nastฤ™pnie musisz wyล›wietliฤ‡ saldo konta.

printf(โ€œAccount Number=%d,account_number)
printf(โ€œAccount Balance=%d,account_balance)

Teraz kwota 50 dolarรณw zostaล‚a wycofana.

account_balance=account_balance-50

Ponownie musisz wyล›wietliฤ‡ saldo konta.

printf(โ€œAccount Number=%d,account_number)
printf(โ€œAccount Balance=%d,account_balance)

Programowanie niestrukturalne

Przy kaลผdej kolejnej operacji wpล‚aty lub wypล‚aty bฤ™dziesz musiaล‚ wielokrotnie powtarzaฤ‡ te same linijki kodu.

Programowanie strukturalne

Wraz z pojawieniem siฤ™ programowania strukturalnego powtarzajฤ…ce siฤ™ linie kodu zostaล‚y umieszczone w strukturach takich jak funkcje lub metody. Jeล›li zajdzie taka potrzeba, wykonywane jest proste wywoล‚anie funkcji.

Programowanie strukturalne

Programowanie obiektowe

W naszym programie zajmujemy siฤ™ danymi lub wykonujemy okreล›lone operacje na danych. W rzeczywistoล›ci posiadanie danych i wykonywanie okreล›lonych operacji na tych danych jest bardzo podstawowฤ… cechฤ… kaลผdego programu. Eksperci w programowaniu oprogramowania pomyล›leli o poล‚ฤ…czeniu danych i Operations. Dlatego narodziล‚o siฤ™ Programowanie Obiektowe, ktรณre jest powszechnie nazywane OOPS. Ten sam kod w jฤ™zykach programowania obiektowego bฤ™dzie miaล‚ te same dane i pewne dziaล‚ania wykonywane na tych danych.

Class Account{
    int account_number;
    int account_balance;
public void showdata(){
    system.out.println(โ€œAccount Numberโ€+account_number)
    System.out.println(โ€œAccount Balanceโ€+ account_balance)
}
}

Programowanie obiektowe

ลฤ…czฤ…c dane i dziaล‚anie, uzyskamy wiele zalet w porรณwnaniu z programowaniem strukturalnym, takich jak:

  • Abstraccja
  • Kapsuล‚kowanie
  • Dziedzictwo
  • Wielopostaciowoล›ฤ‡

Sฤ… one omรณwione bardziej szczegรณล‚owo w kolejnych samouczkach

Podsumuj ten post nastฤ™pujฤ…co: