Pse na duhen konceptet OOPS në Java?

Programimi dhe sistemi i orientuar drejt objekteve (OOPS) ndihmon në reduktimin e kompleksitetit të kodit dhe mundëson ripërdorimin e kodit. Programuesit u pëlqen të punojnë me entitete ose objekte të jetës reale. Programimi i orientuar nga objekti është një paradigmë programimi që bashkon të dhënat dhe metodat në një entitet të vetëm të quajtur objekt. Kjo promovon kuptim më të madh, si dhe fleksibilitet dhe mirëmbajtje të kodit për një periudhë të gjatë kohore.

Sipas sondazhit të "Statista" "Gjuhët e programimit më të përdorura midis zhvilluesve në mbarë botën", Java kishte një 41.1% të pamasë në fillim të 2019.

Java është një gjuhë programimi e shpejtë, e sigurt dhe e besueshme, e lëshuar për herë të parë në 1995 nga Sun Microsystems. Që atëherë është zgjeruar në shtrirjen dhe funksionalitetin e tij. Versioni i fundit java ka kaq shumë përmirësime me performancë të përmirësuar, stabilitet dhe siguri të aplikacioneve Java.

Cilat janë konceptet OOPS në Java? 1. Objektet & Klasat

Objektet janë njësia bazë e OOPS që përfaqëson entitetet e jetës reale. Ato thirren me ndihmën e metodave. Këto metoda deklarohen brenda një klase. Zakonisht, një fjalë kyçe e re përdoret për të krijuar një objekt të një klase në Java.

Klasa është një shabllon i paracaktuar ose i përcaktuar nga përdoruesi nga i cili krijohen objektet. Ai përfaqëson vetitë/metodat që janë të përbashkëta për të gjitha objektet e së njëjtës klasë. Ai ka disa veçori, të tilla si modifikuesit e aksesit, emrat e klasave, ndërfaqet dhe trupat e klasave.

2. Abstraksioni

Abstraksion do të thotë t'i tregosh përdoruesit fundor vetëm detajet përkatëse dhe të fshehësh veçoritë e parëndësishme që shërbejnë si shpërqendrim. Për shembull, gjatë një operimi ATM, ne i përgjigjemi vetëm një sërë pyetjesh për të përpunuar transaksionin pa asnjë dijeni se çfarë ndodh në sfond midis bankës dhe ATM-së.

Shembull i Programit të Abstraksionit në Java

abstract class Bike
{
Bike()
{
System.out.println("The Street Bob. ");
}
abstract void drive();
void weight()
{
System.out.println("Light on its feet with a hefty : 630 lbs.");
}
}
class HarleyDavidson extends Bike
{
void drive()
{
System.out.println("Old-school yet relevant.");
}
}
public class Abstraction
{
public static void main (String args[])
{
Bike obj = new HarleyDavidson();
obj.drive();
obj. weight();
}
}

Dalja

Rruga Bob.

Shkollë e vjetër ende relevante.

Dritë në këmbë me një peshë të madhe: 630 lbs.

3. Enkapsulimi

Enkapsulimi është një mjet për lidhjen e variablave dhe metodave të të dhënave së bashku në një klasë. Vetëm objektet e klasës mund të lejohen të kenë qasje në këto entitete. Kjo njihet si fshehja e të dhënave dhe ndihmon në izolimin e të dhënave.

Shembull i Programit të Enkapsulimit në Java

class Encapsulate
{
private String Name;
private int Height;
private int Weight;
public int getHeight()
{
return Height;
}
public String getName()
{
return Name;
}
public int getWeight()
{
return Weight;
}
public void setWeight( int newWeight)
{
Weight = newWeight;
}
public void setName(String newName)
{
Name = newName;
}
public void setHeight( int newHeight)
{
Height = newHeight;
}
}
public class TestEncapsulation
{
public static void main (String[] args)
{
Encapsulate obj = new Encapsulate();
obj.setName("Abi");
obj.setWeight(70);
obj.setHeight(178);
System.out.println("My name: " + obj.getName());
System.out.println("My height: " + obj.getWeight());
System.out.println("My weight " + obj.getHeight());
}
}

Dalja

Emri im: Abi

Lartësia ime: 70

Pesha ime 178

4. Trashëgimia — E vetme, shumënivelëshe, hierarkike dhe e shumëfishtë

Trashëgimia është procesi me të cilin një klasë trashëgon funksionet dhe vetitë e një klase tjetër. Funksioni kryesor i trashëgimisë është ripërdorimi i kodit. Çdo nënklasë duhet vetëm të përcaktojë veçoritë e saj. Pjesa tjetër e veçorive mund të rrjedhin drejtpërdrejt nga klasa mëmë.

Trashëgimi e vetme — I referohet një marrëdhënieje prind-fëmijë ku një klasë fëmijë zgjeron tiparet e klasës prind. Klasa Y shtrihet në klasën X.

Trashëgimia me shumë nivele — I referohet një marrëdhënieje prind-fëmijë ku një klasë fëmijë zgjeron klasën e një fëmije tjetër. Klasa Y shtrihet në klasën X. Klasa Z shtrihet në klasën Y.

Trashëgimia hierarkike — Kjo i referohet një marrëdhënieje prind-fëmijë ku disa klasa fëmijë shtrijnë një klasë. Klasa Y zgjeron Klasën X dhe Klasa Z zgjeron Klasën X.

Trashëgimi e shumëfishtë — I referohet një marrëdhënieje prind-fëmijë ku një klasë fëmijë shtrihet nga dy ose më shumë klasa prindërore. Java nuk e mbështet këtë trashëgimi.

Shembull i programit të trashëgimisë në Java

class Animal
{
void habit()
{
System.out.println("I am nocturnal!! ");
}
}
class Mammal extends Animal
{
void nature()
{
System.out.println("I hang upside down!! ");
}
}
class Bat extends Mammal
{
void hobby()
{
System.out.println("I fly !! ");
}
}
public class Inheritance
{
public static void main(String args[])
{
Bat b = new Bat();
b.habit();
b.nature();
b.hobby();
}
}

Dalja

jam nate!!

Unë varem me kokë poshtë!!

Une fluturoj !!

5. Polimorfizmi — Statik dhe Dinamik

Është një qasje e orientuar nga objekti që i lejon zhvilluesit të caktojë dhe të kryejë disa veprime duke përdorur një funksion të vetëm. Për shembull, "+" mund të përdoret për shtim, si dhe për bashkim të vargjeve. Polimorfizmi statik bazohet në Mbingarkimin e Metodës, dhe Polimorfizmi Dinamik bazohet në Mbingarkimin e Metodës.

Shembull i programit të polimorfizmit statik me mbingarkim të metodës Mbingarkimit të metodës

class CubeArea
{
double area(int x)
{
return 6 * x * x;
}
}
class SphereArea
{
double area(int x)
{
return 4 * 3.14 * x * x;
}
}
class CylinderArea
{
double area(int x, int y)
{
return x * y;
}
}
public class Overloading
{
public static void main(String []args)
{
CubeArea ca = new CubeArea();
SphereArea sa = new SphereArea();
CylinderArea cia = new CylinderArea();
System.out.println("Surface area of cube = "+ ca.area(1));
System.out.println("Surface area of sphere= "+ sa.area(2));
System.out.println("Surface area of cylinder= "+ cia.area(3,4));
}
}

Dalja

Sipërfaqja e kubit = 6.0

Sipërfaqja e sferës= 50.24

Sipërfaqja e cilindrit= 12.0

Shembull i programit të polimorfizmit dinamik me mbivendosje të metodës

class Shape
{
void draw()
{
System.out.println("Your favorite shape");
}
void  numberOfSides()
{
System.out.println("side = 0");
}
}
class Square extends Shape
{
void draw()
{
System.out.println("SQUARE ");
}
void numberOfSides()
{
System.out.println("side = 4 ");
}
}
class Pentagon extends Shape
{
void draw()
{
System.out.println("PENTAGON ");
}
void numberOfSides()
{
System.out.println("side= 5");
}
}
class Hexagon extends Shape
{
void draw()
{
System.out.println("HEXAGON ");
}
void numberOfSides()
{
System.out.println("side = 6 ");
}
}
public class Overriding{
public static void main(String []args){
Square s = new Square();
s.draw();
s.numberOfSides();
Pentagon p = new Pentagon();
p.draw();
p.numberOfSides();
Hexagon h = new Hexagon();
h.draw();
h.numberOfSides();
}
}

Dalja

SHESHI

anë = 4

PENTAGONI

anë = 5

GJASHTËGËNDËR

anë = 6

Aplikacionet

Dizajnimi i sistemit në kohë reale —Këto sisteme kanë kompleksitete që e bëjnë shumë të vështirë kodimin dhe ndërtimin nga e para. Me ndihmën e teknikave të orientuara nga objekti, është e mundur të trajtohen dhe të ndërtohen këto korniza komplekse të integruara.

Bazat e të dhënave të orientuara nga objekti —Në vend të RDBMS, këto sisteme përdorin Sistemet e Menaxhimit të Bazave të të Dhënave të Orientuara nga Objektet (OODBMS). Këto baza të dhënash nuk ruajnë të dhëna të tilla si numra dhe vargje. Në vend të kësaj, ata ruajnë gjithçka si objekte. Ata kanë kryesisht dy veçori - atribute dhe metoda.

Sistemet e automatizimit të zyrës— Ai përfshin të gjitha mënyrat e shkëmbimit të informacionit elektronik, të cilat mund të jenë biznesi, personale, formale, joformale, që përfshin shkëmbimin e mesazheve midis njerëzve dhe makinerive.

Simulimi dhe modelimi —Sistemet komplekse të modelimit përfshijnë kuptimin dhe modelimin e ndërveprimeve sa më qartë që të jetë e mundur. Metodat e orientuara nga objekti ofrojnë një metodë alternative dhe të thjeshtë për simulimin e proceseve të tilla.

Në TechAffinity, zhvilluesit tanë ekspertë të Java-s janë të aftë në ofrimin e shërbimeve të zhvillimit nga skaji në fund bazuar në nevojat dhe kërkesat e klientit. Ekspertët tanë kanë zhvilluar një qasje inovative që ndihmon në zhvillimin e zgjidhjeve të fuqishme, shumë të shkallëzueshme dhe gjithëpërfshirëse. Ju lutemi mos ngurroni të rreshtoni pyetjet tuaja dhe të na dërgoni email në "[email protected]" ose "të kontaktoni" duke caktuar një takim.

Botuar fillimisht në https://techaffinity.com më 13 janar 2020.