Welcome to Our Website

Oops concepts in Java (Polski)

Object-oriented programming System(Oops) to paradygmat programowania oparty na koncepcji „obiektów” zawierających dane i metody. Podstawowym celem programowania obiektowego jest zwiększenie elastyczności i łatwości obsługi programów. Programowanie obiektowe gromadzi dane, a ich zachowanie (metody) w jednym miejscu (obiekcie) ułatwia zrozumienie działania programu. Szczegółowo omówimy każdą funkcję OOPs, abyś nie musiał napotykać trudności ze zrozumieniem koncepcji OOPs.,

Oops Concepts – spis treści

  1. czym jest obiekt
  2. czym jest klasa
  3. Konstruktor w Javie
  4. funkcje programowania obiektowego
    • abstrakcja
    • enkapsulacja
    • dziedziczenie
    • polimorfizm
  5. abstrakcyjna klasa i metody
  6. Interfejsy w Javie

co to jest obiekt


object: jest pakietem danych i ich zachowaniem(często nazywanymi metodami).

obiekty mają dwie cechy: mają stany i zachowania.,

przykłady stanów i zachowań
przykład 1:
Object: House
State: Address, Color, Area
Behavior: Open door, close door

więc gdybym miał napisać klasę opartą na stanach i zachowaniach House ' a. Mogę to zrobić tak: Stany mogą być reprezentowane jako zmienne instancji, a zachowania jako metody klasy. Jak tworzyć klasy zobaczymy w następnej sekcji tego przewodnika.

class House { String address; String color; double are; void openDoor() { //Write code here } void closeDoor() { //Write code here } ... ...}

Uwaga: jak widzieliśmy powyżej, stany i zachowania obiektu mogą być reprezentowane odpowiednio przez zmienne i metody w klasie.,

charakterystyka obiektów:

Jeśli trudno ci zrozumieć abstrakcję i enkapsulację, nie martw się, ponieważ omówiłem te tematy szczegółowo z przykładami w następnej sekcji tego przewodnika.

  1. abstrakcja
  2. enkapsulacja
  3. przekazywanie wiadomości

abstrakcja: abstrakcja jest procesem, w którym pokazujesz tylko „istotne” dane i „ukrywasz” niepotrzebne szczegóły obiektu przed użytkownikiem.

enkapsulacja: enkapsulacja oznacza po prostu powiązanie stanu obiektu(pól) i zachowania (metod) razem. Jeśli tworzysz klasę, robisz enkapsulację.,

przekazywanie wiadomości
pojedynczy obiekt sam w sobie może nie być zbyt użyteczne. Aplikacja zawiera wiele obiektów. Jeden obiekt wchodzi w interakcję z innym obiektem poprzez wywołanie metod na tym obiekcie. Jest również określany jako wywołanie metody. Patrz schemat poniżej.

czym jest klasa w koncepcjach OOPs

klasa może być traktowana jako schemat, za pomocą którego można utworzyć dowolną liczbę obiektów. Na przykład, mamy tutaj klasę Website, która ma dwa elementy danych (znane również jako pola, zmienne instancji i stany obiektów)., To tylko schemat, nie reprezentuje żadnej strony internetowej, jednak za pomocą tego możemy tworzyć obiekty witryny (lub instancje), które reprezentują strony internetowe. Stworzyliśmy dwa obiekty, podczas tworzenia obiektów przekazaliśmy osobne właściwości obiektom za pomocą konstruktora.

Output:

beginnersbook 5google 18

czym jest konstruktor

Konstruktor wygląda jak metoda, ale w rzeczywistości nie jest metodą. Jego nazwa jest taka sama jak nazwa klasy i nie zwraca żadnej wartości., Musisz widzieć to polecenie w prawie wszystkich programach, które udostępniłem powyżej:

MyClass obj = new MyClass();

Jeśli spojrzysz na prawą stronę tego polecenia, wywołujemy domyślny konstruktor klasy myClass aby utworzyć nowy obiekt (lub instancję).

możemy mieć również parametry w konstruktorze, takie konstruktory są znane jako parametryzowane konstruktory.,

przykład konstruktora

Wyjście:

Chaitanya 30Steve 56

funkcje programowania obiektowego


te cztery funkcje są głównymi pojęciami OOPs, których musisz nauczyć się rozumieć Programowanie obiektowe w Javie

abstrakcja

abstrakcja jest procesem, w którym pokazujesz tylko „istotne” dane i „ukrywasz” niepotrzebne szczegóły obiektu przed użytkownikiem., Na przykład, gdy logujesz się na swoje konto bankowe online, wpisujesz user_id i hasło i naciskasz login, co się dzieje po naciśnięciu login, jak dane wejściowe wysyłane do serwera, jak są weryfikowane, są abstrakcyjne od Ciebie. Czytaj więcej na ten temat tutaj: Abstrakcja w Javie.

enkapsulacja

enkapsulacja oznacza po prostu powiązanie stanu obiektu(pól) i zachowania(metod) razem. Jeśli tworzysz klasę, robisz enkapsulację.,

przykład enkapsulacji w Javie

jak
1) uczynić zmienne instancji prywatnymi, aby nie mogły być dostępne bezpośrednio spoza klasy. Wartości tych zmiennych można ustawić i pobrać tylko za pomocą metod klasy.
2) mają w klasie metody getter i setter do ustawiania i pobierania wartości pól.

wyjście:

No Of Employees: 5613

KlasaEncapsulationExample używająca obiektu klasyEmployeeCount nie będzie w stanie bezpośrednio pobrać NoOfEmployees., Musi użyć metod setter i getter tej samej klasy, aby ustawić i uzyskać wartość.
więc jakie są korzyści z enkapsulacji w programowaniu java
cóż, w pewnym momencie, jeśli chcesz zmienić szczegóły implementacji klasy EmployeeCount, możesz to zrobić swobodnie bez wpływu na klasy, które go używają.

dziedziczenie

proces, w którym jedna klasa nabywa właściwości i funkcjonalności innej klasy, nazywa się dziedziczeniem., Dziedziczenie dostarcza idei wielokrotnego użytku kodu i każda podklasa definiuje tylko te cechy, które są dla niej unikalne, reszta cech może być dziedziczona od klasy nadrzędnej.

  1. Dziedziczenie jest procesem definiowania nowej klasy w oparciu o istniejącą klasę poprzez rozszerzenie jej wspólnych elementów danych i metod.
  2. dziedziczenie pozwala nam na ponowne użycie kodu, poprawia możliwość ponownego użycia w Twojej aplikacji java.
  3. Klasa nadrzędna nazywana jest klasą bazową lub klasą super. Klasa potomna, która rozszerza klasę bazową, nazywana jest klasą pochodną lub klasą podrzędną lub klasą potomną.,

Uwaga: największą zaletą dziedziczenia jest to, że kod w klasie bazowej nie musi być przepisywany na nowo w klasie potomnej.
zmienne i metody klasy bazowej mogą być również używane w klasie potomnej.

składnia: dziedziczenie w Javie

do dziedziczenia klasy używamy słowa kluczowego extends. Tutaj Klasa A jest klasą dziecięcą, A Klasa B jest klasą rodzica.

class A extends B{}

przykład dziedziczenia

w tym przykładzie mamy klasę nadrzędnąTeacher i klasę potomnąMathTeacher., W klasie MathTeacher nie musimy pisać tego samego kodu, który jest już obecny w obecnej klasie. Tutaj mamy nazwę uczelni, oznaczenie i metodę does (), która jest wspólna dla wszystkich nauczycieli, więc Klasa MathTeacher nie musi pisać tego kodu, wspólne elementy danych i metody mogą dziedziczyć z klasy Teacher.,

wyjście:

BeginnersbookTeacherMathsTeaching

Uwaga: dziedziczenie wielopoziomowe jest dozwolone w języku Java, ale nie dziedziczenie wielokrotne

rodzaje dziedziczenia:
dziedziczenie pojedyncze: odnosi się do relacji między klasami potomnymi i macierzystymi, w których Klasa rozszerza inną klasę.

wielopoziomowe dziedziczenie: odnosi się do relacji klasy dziecka i rodzica, gdzie Klasa rozszerza klasę dziecka. Na przykład klasa a rozszerza klasę B, A Klasa B rozszerza klasę C.,

dziedziczenie hierarchiczne: odnosi się do relacji klasy potomka i rodzica, gdzie więcej niż jedna klasa rozszerza tę samą klasę. Na przykład Klasa B rozszerza klasę A, A Klasa C rozszerza klasę A.

dziedziczenie wielokrotne: odnosi się do koncepcji jednej klasy rozszerzającej więcej niż jedną klasę, co oznacza, że Klasa potomna ma dwie klasy nadrzędne. Java nie obsługuje dziedziczenia wielokrotnego, przeczytaj więcej o tym tutaj.

większość nowych języków OO, takich jak Small Talk, Java, C#, nie obsługuje dziedziczenia wielokrotnego. Dziedziczenie wielokrotne jest obsługiwane w C++.,

polimorfizm

polimorfizm jest funkcją programowania obiektowego, która pozwala nam wykonać jedną akcję na różne sposoby. Na przykład, powiedzmy, że mamy klasę Animal która ma metodę animalSound(), tutaj nie możemy podać implementacji tej metody, ponieważ nie wiemy, która Klasa zwierząt rozszerzyłaby Animal Klasa., Tak więc, uczynimy tę metodę abstrakcyjną w następujący sposób:

public abstract class Animal{ ... public abstract void animalSound();}

teraz Załóżmy, że mamy dwie klasy zwierząt Dog I Lion, która rozszerza Animal Klasa. Możemy tam dostarczyć szczegóły realizacji.

public class Lion extends Animal{... @Override public void animalSound(){ System.out.println("Roar"); }}

i

public class Dog extends Animal{... @Override public void animalSound(){ System.out.println("Woof"); }}

jak widać, chociaż mieliśmy wspólną akcję dla wszystkich podklasanimalSound() ale były różne sposoby wykonania tej samej akcji., Jest to doskonały przykład polimorfizmu (cecha, która pozwala nam wykonać jedną akcję na różne sposoby).

typy polimorfizmu
1) polimorfizm statyczny
2) polimorfizm dynamiczny

polimorfizm statyczny:

polimorfizm rozwiązywany w czasie kompilatora znany jest jako polimorfizm statyczny. Przeciążenie metody można uznać za przykład polimorfizmu statycznego.
metoda Overloading: pozwala nam to na posiadanie więcej niż jednej metody o tej samej nazwie w klasie różniącej się podpisem.,

wyjście:

aa 10

Kiedy mówię o podpisie metody, nie mówię o typie zwracanej metody, na przykład jeśli dwie metody mają tę samą nazwę, te same parametry i inny typ zwracanej metody, to nie jest to poprawny przykład przeciążenia metody. Spowoduje to błąd kompilacji.

polimorfizm dynamiczny

znany jest również jako metoda dynamiczna. Dynamiczny polimorfizm jest procesem, w którym wywołanie nadpisanej metody jest rozwiązywane w trybie runtime, dlatego nazywa się to polimorfizmem runtime.,

przykład

Wyjście:

Woof

ponieważ obie klasy, Klasa potomna i klasa rodzica mają tę samą metodęanimalSound. Która z metod zostanie wywołana jest określana w trybie runtime przez JVM.

kilka innych nadrzędnych przykładów:

is-a & has-a Relationships

a Car IS-a Vehicle and HAS-a licence then the code would look like this:

public class Vehicle{ }public class Car extends Vehicle{ private License myCarLicense;}

Abstract Class and methods in Oops Concepts

Abstract method:
1) Metoda zadeklarowana, ale nie zdefiniowana. Tylko podpis metody bez ciała.,
2) zadeklarowane przy użyciu słowa kluczowego abstract
3) Przykład :

abstract public void playInstrument();

5) używane do nakładania pewnego rodzaju przymusu na klasę, która dziedziczy klasę z abstrakcyjnymi metodami. Klasa, która dziedziczy musi dostarczyć implementację wszystkich abstrakcyjnych metod klasy nadrzędnej else deklaruje podklasę jako abstrakcyjną.
6) nie mogą to być abstrakcyjne

  • konstruktory
  • metody statyczne
  • metody prywatne
  • metody zadeklarowane jako „ostateczne”

klasa abstrakcyjna
klasa abstrakcyjna opisuje metody, ale niekoniecznie implementuje wszystkie metody.,

abstract class A{ abstract void myMethod(); void anotherMethod(){ //Does something }}

Uwaga 1: mogą występować scenariusze, w których trudno jest zaimplementować wszystkie metody w klasie bazowej. W takich scenariuszach można zdefiniować klasę bazową jako klasę abstrakcyjną, co oznacza, że ta klasa bazowa jest specjalnym rodzajem klasy, która sama w sobie nie jest kompletna.

Klasa wywodząca się z abstrakcyjnej klasy bazowej musi implementować te metody, które nie są implementowane(czyli są abstrakcyjne) w klasie abstrakcyjnej.

Uwaga 2: klasy abstrakcyjnej nie można utworzyć instancji, co oznacza, że nie można utworzyć obiektu klasy abstrakcyjnej., Aby użyć tej klasy, musisz utworzyć inną klasę, która rozszerza tę abstrakcyjną klasę, która zapewnia implementację abstrakcyjnych metod, a następnie możesz użyć obiektu tej klasy potomnej do wywołania nieabstraktowych metod klasy nadrzędnej, jak również zaimplementowanych metod (tych, które były abstrakcyjne w rodzicu, ale zaimplementowane w klasie potomnej).

Uwaga 3: jeśli dziecko nie implementuje wszystkich abstrakcyjnych metod klasy nadrzędnej( klasy abstrakcyjnej), to klasa potomna musi być zadeklarowana jako abstrakcyjna.,

przykład abstrakcyjnej klasy i metod

tutaj mamy abstrakcyjną klasę Animal, która ma abstrakcyjną metodę animalSound (), ponieważ dźwięk zwierzęcy różni się od jednego zwierzęcia do drugiego, nie ma sensu dawać implementacji tej metodzie, ponieważ każda klasa potomna musi nadpisać tę metodę, aby podać własne szczegóły implementacji. Dlatego uczyniliśmy to abstrakcyjnym.
Teraz każde zwierzę musi mieć dźwięk, czyniąc tę metodę abstrakcyjną, uczyniliśmy obowiązkowym dla klasy dziecięcej, aby podać szczegóły implementacji tej metody. W ten sposób zapewniamy, że każde zwierzę ma dźwięk.,

Output:

Woof

Interfejsy w Javie

interfejs jest schematem klasy, który można zadeklarować za pomocą słowa kluczowego interface. Interfejsy mogą zawierać tylko stałe i metody abstrakcyjne(metody z tylko podpisami bez ciała).Podobnie jak klasy abstrakcyjne, Interfejsy nie mogą być tworzone jako instancje, mogą być implementowane tylko przez klasy lub rozszerzane przez inne Interfejsy. Interfejs jest powszechnym sposobem osiągnięcia pełnej abstrakcji w Javie.,

Uwaga:

  1. Java nie obsługuje dziedziczenia wielokrotnego, jednak klasa może zaimplementować więcej niż jeden interfejs
  2. interfejs jest podobny do klasy abstrakcyjnej, ale zawiera tylko metody abstrakcyjne.,
  3. interfejsy są tworzone przez użycie słowa kluczowego interface zamiast słowa kluczowego class
  4. używamy słowa kluczowego implements podczas implementacji interfejsu(podobnego do rozszerzenia klasy ze słowem kluczowym extends)

Interface: Syntax

class ClassName extends Superclass implements Interface1, Interface2, ....

przykład interfejsu:

Uwaga:

  1. wszystkie metody w interfejsie są jawnie publiczne i abstrakcyjne. Użycie słowa kluczowego abstract przed każdą metodą jest opcjonalne.
  2. interfejs może zawierać zmienne końcowe.,
  3. klasa może rozszerzyć tylko jedną inną klasę, ale może zaimplementować dowolną liczbę interfejsów.
  4. gdy klasa implementuje interfejs, musi podać definicję wszystkich abstrakcyjnych metod interfejsu, w przeciwnym razie może być zadeklarowana jako klasa abstrakcyjna
  5. odniesienie do interfejsu może wskazywać na obiekty swoich klas wykonawczych.

uogólnienie i specjalizacja:
aby zaimplementować koncepcję dziedziczenia w OOPs, należy najpierw zidentyfikować podobieństwa między różnymi klasami, aby wymyślić klasę bazową.,

ten proces identyfikacji podobieństw między różnymi klasami nazywa się uogólnieniem. Generalizacja to proces wyodrębniania wspólnych cech z dwóch lub więcej klas i łączenia ich w uogólnioną superklasę. Wspólne cechy mogą być atrybutami lub metodami.

w przeciwieństwie do uogólniania, specjalizacja oznacza tworzenie nowych podklas z istniejącej klasy. Jeśli okaże się, że pewne atrybuty lub metody mają zastosowanie tylko do niektórych obiektów klasy, można utworzyć podklasę.,

access Specifiiers

cóż, musisz zobaczyć publiczne, prywatne słowo kluczowe w przykładach, które udostępniłem powyżej. Są one nazywane specyfikatorami dostępu, ponieważ decydują o zakresie elementu danych, metody lub klasy.

w Javie istnieją cztery typy specyfikacji dostępu:
public: Accessible to all. Inne obiekty mogą również uzyskać dostęp do tej zmiennej członkowskiej lub funkcji.
prywatny: niedostępny dla innych obiektów. Do członków prywatnych można uzyskać dostęp tylko za pomocą metod z tej samej klasy. Obiekt dostępny tylko w klasie, w której są zadeklarowane.,
protected: zakres chronionej zmiennej znajduje się w klasie, która ją deklaruje oraz w klasie, która dziedziczy z klasy (Zakres to klasa i podklasa).
domyślnie: zakres jest poziomem pakietu. Nie musimy wyraźnie wspominać o domyślnym, ponieważ gdy nie wymieniamy żadnego specyfiku dostępu, jest on uważany za domyślny.,

czego dowiemy się w następnych tutorialach na temat koncepcji OOPs

chociaż omówiliśmy prawie wszystkie koncepcje OOPs tutaj, ale cokolwiek nauczyliśmy się w tym przewodniku jest w skrócie, tematy te są szerokie i jest tak wiele możliwości, aby nauczyć się tych tematów szczegółowo za pomocą przykładów. Dlatego omówiłem szczegółowo każdy temat wraz z przykładami i diagramami w kolejnych samouczkach.
Jak można czytać kolejne tutoriale w sposób sekwencyjny? Istnieje kilka sposobów, aby to zrobić – 1) linki do samouczka znajdują się na lewym pasku bocznym, przejdź do nich w danej kolejności.,
2) Przejdź do głównej strony samouczka java, która zawiera wszystkie linki do samouczków w sposób sekwencyjny.
Jeśli znajdziesz jakiekolwiek trudności ze zrozumieniem tych koncepcji OOPs to napisz komentarz poniżej, a ja odezwę się do ciebie tak szybko, jak to możliwe.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *