Uvod v statično in dinamično vezavo

To sta dve vrsti vezave. Vezava se nanaša na povezavo klica metode s telesom metode. V statični vezavi se vsa dodelitev in deklaracija zgodita v času sestavljanja. Imajo več prednosti in slabosti drug drugega. V izvedbi je statična vezava boljša od dinamične vezave metod in spremenljivk. Statična vezava je znana tudi kot zgodnja vezava. Kot vse vemo, se metode Povezovanje, kot statično, zasebno in končno, zgodi v času prevajanja, medtem ko se v prevajalniku dinamičnih vezav ne odloči, katero metodo bomo uporabili.
Spodaj je primer boljši primer razumevanja

Primer 1

public class StaticBindingExample (
public static void main(String args()) (
Vehicle veh = new MotorBike();
veh.start();
)
)
class Vehicle (
static void start() (
System.out.println("vehicle will start now..");
)
)
class MotorBike extends Vehicle (
static void start() (
System.out.println("Bike will start now..");
)
)

V zgornjem primeru lahko vidimo, kako je statična vezava namenjena preprečevanju preobremenitve razreda.

Spodaj bo prikazan način delovanja dinamične vezave, pri čemer metoda nadrejenega razreda nadvlada nadrejeni razred

Primer # 2

public class StaticBindingExample (
public static void main(String args()) (
Vehicle veh = new MotorBike();
veh.start();
)
)
class Vehicle (
void start() (
System.out.println("vehicle will start now..");
)
)
class MotorBike extends Vehicle (
void start() (
System.out.println("Bike will start now..");
)
)

V tem primeru statične metode v metodi staršev in nadrejenih razredov ne obstaja, zato metoda z istim imenom preglasi metodo nadrejenega razreda. Zaradi tega se zgodi.

Na zgornjem zaslonu je izpis programa.

Zakaj statična in dinamična vezava?

  1. Za programiranje je potrebno obvladovanje različnih situacij s pomočjo statične in dinamične vezave.
  2. Povezava v času kompilacije je znana kot zgodnja vezava, tj. To pomeni, ko je treba deklarirati stvari v času sestavljanja (na samem začetku) izvajanja programa. V dinamičnem vezju vezanje poteka v času izvajanja, ki je znano tudi kot pozno vezanje.
  3. Metoda in spremenljivke, opredeljene kot statične, končne in zasebne, se nanašajo na statično vezavo, medtem ko so virtualne metode, ki se vežejo med izvajanjem, znane kot dinamična vezava.
  4. Metoda Preobremenitev / Operator Preobremenitev uporablja statično vezanje, zato je to eden najboljših primerov, medtem ko Overriding uporablja Dynamic, tako da je znan kot najboljši primer dinamične vezave.
  5. Pri tem se resnični objekt nikoli ne uporablja, medtem ko se resnični objekt, ki se uporablja v dinamični vezavi.

Primeri

V spodnjem primeru lahko vidimo, kako se dogaja statična vezava

Primer # 1

// Izvajanje starševskega razreda

class Colony(
//Static method to start the electricity of the Colony
public static void start electricity()(
//printing the message here
System.out.println("Colony Electricity is On.");
)
)
//Child class implementation
class Building extends Colony(
//Static method to start the electricity of Building
public static void startElectricity()(
//printing the message here
System.out.println("Building Electricity is On.");
)
)
public class StaticBindingExample (
public static void main(String args()) (
//Creating object of the parent class type
Colony col = new Colony();
col.startElectricity();
//Creating object of the child class type
Colony col2 = new Building();
col2.startElectricity();
)
)

V zgornjem programu je col referenčna spremenljivka razreda tipa Colony, ki kaže na objekt razreda Colony. col2 je tudi referenčna spremenljivka razreda tipa Colony, vendar kaže na objekt razreda Building. Ko se izvaja kompilacija, medtem ko zavezujoči prevajalnik nikoli ne preveri vrste predmeta, ampak samo preveri vrsto referenčne spremenljivke.

V zgornjem programu, kot je col .startElectricity (), prevajalnik preveri, ali v razredu Colony obstaja definicija metode zagon električne energije (), ker je col vrsta razreda Colony. Podobno kot pri klicu metode col2.startElectricity (), preverja, ali je metoda start elektrika () prisotna v razredu Colony ali ne, ker je col2 tudi tip razreda Colony. Ne preveri, na kateri objekt col, col2 kaže. ta vrsta vezave je znana kot statična vezava.

Izhod:

Zgornji izhod programa prikazuje, kako se statični člani uporabljajo za preprečevanje preglasitve.

Primer # 2

V spodnjem primeru lahko vidimo, kako se med časom izvaja dinamično vezanje

// Izvajanje starševskega razreda

class Colony(
//method to start the electricity of the Colony
void startElectricity()(
//printing the message here
System.out.println("Colony Electricity is On.");
)
)
//Child class implementation
class Building extends Colony(
//method to start the electricity of Building
void startElectricity()(
//printing the message here
System.out.println("Building Electricity is On.");
)
)
public class StaticBindingExample (
public static void main(String args()) (
//Creating object of the parent class type
Colony col = new Colony();
col.startElectricity();
//Creating object of the child class type
Colony col2 = new Building();
col2.startElectricity();
)
)

V zgornjem programu je vse enako kot v primeru statičnega programa, v tem primeru pa se odstrani član metode "statik". Med tem bo poklicana metoda glavnega predmeta, na katerega kaže col.startElectricity (). Medtem ko za klic col2.startElectricity () pokličemo metodo glavnega predmeta, na katerega je usmerjen col2. Ta vrsta vezave je znana kot Dinamična vezava.

Izhod:

Prednost

  1. Izvedba statične vezave je učinkovitejša in hitrejša od dinamične. Ta prevajalnik vezave ve, da teh vrst ni mogoče preglasiti.
  2. V statični vezavi se vrsta uporablja, medtem ko dinamična vezava uporablja predmete za vezi.
  3. Ena glavnih prednosti dinamičnega vezavanja je fleksibilnost, saj lahko ena funkcija ob izvajanju deluje z različnimi vrstami predmetov.
  4. V statični vezavi vse informacije, ki so potrebne pred časom kompilacije, medtem ko v dinamičnem povezovanju pred začetkom izvajanja ne ostanejo na voljo informacije.
  5. Statično vezanje lahko poteka z običajnimi funkcijami, medtem ko je dinamično vezavo mogoče doseči z uporabo virtualnih funkcij.

Zaključek

To je nekaj pomembnih konceptov objektno usmerjenega programiranja. Vezava se nanaša na izvedbo kode. To se zgodi v času prevajanja, medtem ko se dinamično vezanje zgodi v času izvajanja. Opredelitev, izjava in obseg deklaracije, to so trije pomembni stebri statične vezave, medtem ko je v Dinamični vezavi ime vezave in življenjska doba zavezujočih zadev.

Priporočeni članki

To je vodnik za statično vezavo in dinamično vezavo. Tukaj razpravljamo o uvodu, uporabi in prednostih. Obiščite lahko tudi druge naše predlagane članke, če želite izvedeti več -

  1. Vrste spletnega gostovanja
  2. Preobremenitev in preglasitev na Javi
  3. AngularJS direktive
  4. Polimorfizem na Javi
  5. Statična metoda JavaScript | Delo | Primeri