Tutki perintöä Java -ohjelmointikielellä

Tutki perintöä Java -ohjelmointikielellä

Perintö on yksi olio-ohjelmoinnin peruskäsitteistä. Ohjelmoinnissa sana perintö edustaa suhdetta, jossa lapsiluokka ottaa vanhemman luokan tilan ja käyttäytymisen.





Ohjelmistokehityksen perinnön tarkoitus on helpottaa turvallisten ja luotettavien ohjelmistojen uudelleenkäyttöä. Yksi perinnön käytön suurimmista eduista on se, että se poistaa tarpeettoman koodin ohjelmastasi.





puoliväli kahden osoitteen välillä

Kuinka perintö toimii

Perinnön periaate on, että monilla luokilla tai objekteilla on joitakin samoja määritteitä ja menetelmiä. Siksi luotettavien ohjelmistojen tuottamisen hengessä uudet luokat voivat nyt hyödyntää jo olemassa olevia aiheeseen liittyviä luokkia ja tarvittaessa laajentaa olemassa olevia tiloja ja käyttäytymistä.





Todellinen esimerkki siitä, miten perintö toimii, olisi harkita hedelmiä. Tämä on laaja etiketti, jonka tarkoituksena on koteloida erilaisia ​​kohteita.

Omena on hedelmä ja samoin appelsiini. Oranssi ei kuitenkaan ole omena, joten jos sinulla olisi kauppa, sinulla ei olisi hedelmiä yhdeksi varastotuotteistasi. Ehkä sinulla voisi olla inventaariossasi hedelmiä käsittelevä osa, ja sen alla olisi tarkempia tuotteita, kuten omenoita ja appelsiineja.



Näin perintö toimii.

Perinnön käyttö Javassa

Perintöä voidaan käyttää millä tahansa ohjelmointikielellä, joka käyttää olio-ohjelmointimallia. Kuitenkin tarkka perinnän käyttötapa riippuu tietystä ohjelmointikielestä.





Esimerkiksi, C ++ on myös olio-ohjelmointikieli . C ++ tukee useaa perintöä, kun taas Java tukee vain yksittäistä perintöä.

Tämä tarkoittaa sitä, että Javassa vanhempainluokalla voi olla monia lapsiluokkia, mutta jokaisella lapsiluokalla voi olla vain yhden vanhemman luokka (yksi perintö). On kuitenkin olemassa tapa saavuttaa epäsuora moninkertainen perintö Javassa luomalla isovanhemman, vanhemman ja lapsen suhde.





Pääluokan luominen Javassa

Pääluokan valitseminen ohjelmistovaatimusten asiakirjasta tunnetaan olio-analyysina. Tämän prosessin aikana ilmausta a käytetään usein tunnistamaan mahdolliset perintösuhteet. Yllä olevasta esimerkistämme voit nähdä, että hedelmät olisivat vanhempi luokkamme.

Esimerkki hedelmien vanhempien luokasta


public class Fruit {
//Variable Declaration
protected String seed;
protected String skinColor;
protected String taste;
//Default Constructor
public Fruit(){
seed = '';
skinColor ='';
taste ='';
}
//Primary Constructor
public Fruit(String seed, String skinColor, String taste){
this.seed = seed;
this.skinColor = skinColor;
this.taste = taste;
}
//getters and setters
public String getSeed() {
return seed;
}
public void setSeed(String seed) {
this.seed = seed;
}
public String getSkinColor() {
return skinColor;
}
public void setSkinColor(String skinColor) {
this.skinColor = skinColor;
}
public String getTaste() {
return taste;
}
public void setTaste(String taste) {
this.taste = taste;
}
//eat method
public void eat(){
//general code on how to eat a fruit
}
//juice method
public void juice() {
//general code on how to juice a fruit
}
}

Yksi edellä mainitun pääluokan merkittävimmistä näkökohdista on kulun muuttujan ilmoituksen yhteydessä käytettävä käyttömuokkaaja. Suojattu pääsynmuunnin on ihanteellinen käytettäväksi vanhempainluokissa, koska se estää muita kuin lapsiluokkia pääsemästä pääluokan tietomääritteisiin.

Alempana koodissa esitellään konstruktorit, getterit ja setterit, jotka ovat yleisiä rakennuspalikoita mille tahansa Java -luokalle. Lopuksi esittelemme kaksi menetelmää (mehu ja syöminen), jotka on luotu ohjelmamme pääluokassa, koska ne ovat yleisiä kaikille hedelmille - kaikki hedelmät voidaan syödä ja mehuttaa.

Lapsiluokkien luominen Javassa

Lapsiluokkia kutsutaan yleensä erikoistuneiksi tai johdetuiksi luokiksi, koska ne perivät tilan ja käyttäytymisen vanhemmalta ja mukauttavat usein näitä määritteitä tarkemmiksi.

Jatkaessamme esimerkkiämme sinun pitäisi pystyä ymmärtämään, miksi oranssi olisi sopiva hedelmäluokan lapsiluokka edellä.

Esimerkki oranssista lapsiluokasta


public class Orange extends Fruit{
//variable declaration
private int supremes;
//default constructor
public Orange() {
supremes = 0;
}
//primary constructor
public Orange(String seed, String skinColor, String taste, int supremes){
super(seed, skinColor, taste);
this.supremes = supremes;
}
//getters and setters
public int getsupremes() {
return supremes;
}
public void setsupremes(int supremes) {
this.supremes = supremes;
}
//eat method
public void eat(){
//how to eat an orange
}
//juice method
public void juice() {
//how to juice and orange
}
//peel method
public void peel(){
//how to peel an orange
}
}

Tavallisen Java -luokan ilmoituksen ulkonäön ja yllä olevan koodin välillä on ero. Extends -avainsanaa käytetään Javassa perinnän mahdollistamiseksi.

Yllä olevassa esimerkissämme lapsiluokka (oranssi) laajentaa yläluokkaa (hedelmä). Siksi oranssiluokka voi nyt tarkastella ja muokata hedelmäluokan tilaa ja käyttäytymistä.

Ainutlaatuinen ominaisuus, jonka oranssiluokassamme on, tunnistetaan muuttujanimellä supremes (joka on virallinen nimi appelsiinien pienille segmenteille). Tässä tulee erikoistuminen; Kaikilla hedelmillä ei ole päällimmäisiä, mutta kaikilla appelsiineilla on, joten supremes -muuttujan varaaminen oranssiluokalle on loogista.

Kuorintamenetelmän lisääminen olemassa oleviin syömis- ja mehumenetelmiin on myös loogista, koska vaikka kaikkia hedelmiä ei voi kuoria, appelsiinit kuoritaan usein.

Muista, että jos emme aikoneet muuttaa olemassa olevia syömis- ja mehumenetelmiä, meidän ei tarvitse sisällyttää niitä appelsiiniluokkaan. Appelsiiniluokan menetelmät ohittavat kaikki vastaavat menetelmät hedelmäluokassa. Joten jos kaikki hedelmät syötäisiin ja mehutettaisiin samalla tavalla, meidän ei tarvitse luoda näitä menetelmiä appelsiiniluokkaan.

Roolinrakentajat pelaavat perinnössä

Oletuksena yliluokkarakentajat peritään aliluokilta. Siksi, jos aliluokkaobjekti luodaan, tämä tarkoittaa, että myös pääluokan objekti luodaan automaattisesti.

Palataksemme esimerkkiimme, joka kerta kun luodaan uusi oranssi esine, luodaan myös hedelmäobjekti, koska appelsiini on hedelmä.

Kun kulissien takana luodaan aliluokkaobjekti, ensin kutsutaan pääluokan rakentajaa ja sen jälkeen lapsiluokan rakentajaa. Yllä olevassa oranssissa lapsiluokassamme, jos oranssi objekti luodaan ilman parametreja, kutsutaan oletushedelmäluokan konstruktori, jota seuraa oranssin luokan oletusurakoitsijamme.

Edellä mainitun ensisijaisen konstruktorin supermenetelmä on välttämätön, koska se määrittää, että päähedelmäluokan ensisijainen konstruktori - eikä oletusrakentaja - tulisi kutsua aina, kun luodaan oranssi objekti, jolla on parametrit.

Nyt voit käyttää perintöä Javassa

Tästä artikkelista voit oppia, mitä perintö on, miten se toimii ja miksi se on niin tärkeä käsite ohjelmoinnissa. Voit nyt luoda perintösuhteesi Java -ohjelmointikielellä. Lisäksi tiedät nyt, miten voit kiertää Javan yksittäisen perintösäännön luomalla isovanhemman suhteen.

Kuva: Andreas Wohlfahrt / Pexels

Jaa Jaa Tweet Sähköposti Kuinka järjestää olio-koodisi perinnöllä

Objektisuuntautuneen ohjelmoinnin oikea saaminen tarkoittaa, että sinun on tiedettävä perinnöstä ja miten se voi yksinkertaistaa koodausta ja vähentää virheitä.

Lue seuraava
Liittyvät aiheet
  • Ohjelmointi
  • Java
  • Olio-ohjelmointi
Kirjailijasta Kadeisha Kean(21 artikkelia julkaistu)

Kadeisha Kean on täyspinoinen ohjelmistokehittäjä ja tekninen/teknologinen kirjoittaja. Hänellä on selkeä kyky yksinkertaistaa joitain monimutkaisimpia teknologisia käsitteitä; tuottaa materiaalia, jonka jokainen tekniikan aloittelija voi helposti ymmärtää. Hän on intohimoinen kirjoittamiseen, mielenkiintoisten ohjelmistojen kehittämiseen ja maailman matkustamiseen (dokumenttielokuvien kautta).

Lisää Kadeisha Keanilta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi