- - Opetusohjelma: Menetelmän ylikuormitus Java-koodilla

Opastus: Menetelmän ylikuormitus Java-koodilla

Nyt nyt olet perehtynyt pikakuvaukseenJava-sisäkursseissa, voidaan puhua polymorfismista ja menetelmien ylikuormituksesta. Polymorfismi on Java-objektin kyky reagoida tasaisesti saavuttaa erityinen käyttäytyminen saman nimen menetelmäkutsuihin, mutta erilaisin toteutuksin. Java-sovelluksessa polymorfismin käsite voidaan saavuttaa monin tavoin. Tässä on Java-opetusohjelma, jossa on menetelmä menetelmän ylikuormitusta varten.

Java-opetusohjelma menetelmän ylikuormituksen koodilla.

Mikä on menetelmän ylikuormitus

Java-ohjelmassa on mahdollista määritellä kaksi tai useampiasaman luokan menetelmät, joilla on sama nimi. Niiden parametrien ilmoitusten tulisi kuitenkin olla erilaisia. Tämän tyyppisten menetelmien sanotaan olevan ylikuormitettuja, ja prosessiin viitataan menetelmän ylikuormituksena.

Menetelmän ylikuormitus tukee polymorfismia koska se on yksi tapa, jolla Java toteuttaa ”yksi käyttöliittymä, useita menetelmiä” -paradigman.

ominaisuudet

  • Luokassa menetelmän ylikuormituksen käsite ei salli ulkoisen käyttäjän olla tietoinen järjestelmän sisäisestä prosessoinnista.
  • Ylikuormitetut menetelmät eroavat joko parametrien lukumäärästä tai parametrien tyypistä tai parametrien järjestyksestä.
  • Ylikuormitetut menetelmät ratkaistaan ​​seuraavissa sekvensseissä:
    1. Parametrien lukumäärä.
    2. Parametrien tyyppi.
    3. Parametrien sarja.

Näiden menetelmien perusteella vedotaan vastaavasti halutun tuloksen palauttamiseksi.

  • Menetelmä Ylikuormitus antaa käyttäjän saavuttaa koota aikapolymorfismi.
  • Ylikuormitetut menetelmät voivat olla samoja tai erilaisia ​​palautustyyppejä.

Java-ohjelma menetelmien ylikuormitukseen

class Figure{
/* Calculate Area of Square */
void area(double length){
System.out.println("Area of Square is: "+Math.pow(length,2));
}
/* Calculate Area of Rectangle */
void area(double length,double breadth){
System.out.println("Area of Rectangle is: "+(length*breadth));
}
/* Calculate Area of Cylinder */
void area(double radius,int height){
System.out.println("Area of Cylinder is: "+(2*3.14*Math.pow(radius,2)*height));
}
/* Calculate Area of Cube */
void area(int arms){
System.out.println("Area of Cube is: "+(6*arms*arms));
}
}
class CalculateArea{
public static void main(String args[]){
Figure fig = new Figure();
fig.area(5.25);
fig.area(4.5,5.5);
fig.area(2);
fig.area(3.2,6);
}
}

Menetelmän ylikuormituksen tulos.

Java-opetusohjelma menetelmän ylikuormituksen koodilla.

Java-koodin ja tulosteen selitys

Tässä luokan sisällä Kuva-alue () on ylikuormitettumenetelmä, jolla on sama nimi erilaisilla toteutuksilla, ts. ”yksi käyttöliittymä, useita menetelmiä” paradigma. Voit helposti päätellä, että samaa menetelmää käytetään erilaisten toimintojen suorittamiseen, ts. Erilaisten geometristen alueiden alueiden laskemiseen kuluneiden parametrien lukumäärän / tyypin / sekvenssin perusteella ja halutun tulosteen tuottamiseksi.

Menetelmään kutsuminen voi olla mikä tahansa järjestys. Menetelmäalueena () lasketun kuution pinta-alan laskemiseksi ennen menetelmän alueen () käyttämistä sylinterin pinnan laskemiseksi.

Ohjelmassa olemme kutsuneet myös yhden Math-luokan staattisen menetelmän pow (): n, joka on java.lang-paketin jäsen minkä tahansa luvun neliön laskemiseksi.

Salama päällä

Ylikuormitettujen menetelmien ratkaisemisen aikana Java työllistääsen automaattiset tyyppimuunnokset vain, jos tarkkaa hakua ei löydy. Kuten alla näet, luokka Ylikuormitus ei määritä näyttöä (int), mutta sillä on jo määritelty näyttö (kaksinkertainen).

Siksi, kun näyttöä () kutsutaan näppäimelläkokonaislukuarvo OverloadDemon sisällä, vastaavaa menetelmää ei löydy. Java voi kuitenkin muuntaa kokonaisluvun automaattisesti kaksinkertaiseksi, ja tätä muunnosta voidaan käyttää puhelun ratkaisemiseen. Siksi, kun näyttöä (int) ei löydy, Java nostaa “i” kaksinkertaiseksi ja soittaa sitten näytölle (kaksinkertainen). Tietenkin, jos ”näyttö (int)” olisi määritelty, sitä olisi kutsuttu sen sijaan.

class Overload {
// display method with no parameters
void display() {
System.out.println("No parameters");
}
// Overload display for two integer parameters.
void display(int a, int b) {
System.out.println("a and b: " + a + " " + b);
}
// overload display for a double parameter
void display(double a) {
System.out.println("a: " + a);
}
}
class OverloadDemo {
public static void main(String args[]) {
Overload overload = new Overload();
int i = 88;
ob.display();
ob.display (10, 20);
ob.display (i); // this will invoke display(double)
ob.display (123.2); // this will invoke display(double)
}
}

HUOM: Tämä muuntaminen on totta matalammasta datatyypistä (esim. Int) korkeampaan datatyyppiin (esim. Kaksinkertainen) muuntaminen, ei käänteiselle (kaksinkertainen int).

Seuraavassa opetusohjelmassa opimme Constructorin ylikuormituksesta Java: lla.

Kommentit