oop java introduction object oriented programming java
Ta video vadnica bo v Javi predstavila koncepte OOP (objektno usmerjeno programiranje), kot so objekt, razred, dedovanje, polimorfizem, abstrakcija, enkapsulacija itd.:
Pri programiranju programske opreme imamo različne vrste programskih jezikov. Glavni jeziki med njimi so postopkovne ali objektno usmerjene narave.
V postopkovnih programskih jezikih se večje težave razdelijo na majhne rešljive probleme. Te majhne težave se pretvorijo v postopke ali funkcije. Na ta način proceduralni programski jezik poudarja funkcije in ne podatke. Tako so procesni jeziki popolnoma zanemarili podatke in tako sploh ne zagotavljajo varnosti podatkov.
Za to težavo je poskrbel objektno usmerjen programski jezik. Predmetno usmerjeno programiranje je način oblikovanja in programiranja programske opreme z manipulacijo predmetov, ki so glavni del programiranja.
Odkrijte celotno serijo vadnic za Java za začetnike tukaj .
Kaj se boste naučili:
Video vaje o konceptih OOPS
Koncept OOPS v Javi - 1. del:
Poglobljen pregled koncepta OOPS v Javi - 2. del:
Objektno usmerjeni programski jeziki bolj kot funkcije poudarjajo podatke. Predmetno usmerjeno programiranje (OOP) se vrti okoli predmetov, tj. Entitete v realnem času.
Ta objekt združi podatke in metode, ki delujejo na te podatke, v eno enoto. Na ta način so podatki zaščiteni pred zunanjim svetom z metodami znotraj predmeta. V OOP predmeti komunicirajo med seboj s sporočili.
Vsak jezik OOP podpira naslednje funkcije:
- Predavanja
- Kapsulacija
- Abstrakcija
- Dedovanje
- Polimorfizem
Vse te funkcije zagotavljajo zaščito podatkov, hkrati pa lahko pišemo tudi robustne aplikacije. Smalltalk, C ++, Java itd. So nekateri objektno usmerjeni programski jeziki.
V tej vadnici bomo razpravljali o osnovah OOP v zvezi z jezikom Java.
Objektno usmerjeno programiranje (OOP) v Javi
Java je trenutno najbolj iskana spretnost programiranja. V Javi vse temelji na predmetu. Java ima korenski razred, imenovan Object, iz katerega izhaja celotna funkcionalnost Java. Tako bomo v tej vadnici obravnavali glavne značilnosti OOP v zvezi z Javo.
Priporočeno branje => Vprašanja in odgovori za intervju z OOP
Tukaj bomo razpravljali o tem, kako Java podpira naslednje funkcije OOP.
- Predmet in razred
- Razred
- Dedovanje
- Polimorfizem
- Abstrakcija
- Kapsulacija
Podrobno se pogovorimo o vsakem od teh konceptov Java OOP.
Predmet in razred
Razred lahko definiramo kot prototip zasnove ali načrt. Predmeti so ustvarjeni iz teh načrtov. V bistvu opredeljuje skupni tip, sestavljen iz lastnosti in metod, ki delujejo na te lastnosti za ta skupni tip. Nato definiramo primerke tega razreda, imenovanega predmeti.
Razred ima veliko komponent, kot je prikazano na naslednji sliki.
Predmet predstavlja entiteto iz resničnega življenja. V Javi je objekt primerek razreda. Torej lahko razred, ki je načrt, uporabimo za ustvarjanje številnih predmetov. Ti predmeti pogosto komunicirajo med seboj tako, da si z metodami posredujejo sporočila.
Video vadnica: Predavanja in predmeti
Predmet ima običajno:
- Država: Lastnosti ali lastnosti predmeta v določenem času.
- Vedenje: Metode predstavljajo vedenje predmeta. Metode določajo tudi, kako predmeti komunicirajo.
- Identiteta: Predmet prepozna tako, da mu da enolično ime.
Na primer če imamo razred PetAnimals.
Nato lahko objekt tega razreda definiramo na naslednji način:
Prašič PetAnimals = novi PetAnimals.
Tu je identiteta predmeta prašič.
Spodaj je program, ki prikazuje razred in predmet.
//student class class Student{ int roll_No; String student_name; } class Main{ public static void main(String args[]){ //Create objects of class Student Student student1=new Student(); Student student2=new Student(); //Initialize Student class objects student1.roll_No=101; student1.student_name='Lisa'; student2.roll_No=102; student2.student_name='Dan'; //Print object data System.out.println('Student 1 Details: ' + student1.roll_No+' '+student1.student_name); System.out.println('Student 2 Details: ' + student2.roll_No+' '+student2.student_name); } }
Izhod
V zgornjem razredu smo definirali razred Student z dvema lastnostma roll_No in student_name. Nato v glavni metodi razglasimo dva predmeta razreda, tj. Student1 in student2. Upoštevajte, da so ti predmeti ustvarjeni z novim operatorjem. Ko so predmeti ustvarjeni, dodelimo podatke obema lastnostma predmeta.
Na koncu vsebino predmeta natisnemo z operatorjem '.' (Pika).
Več o razredih in predmetih bomo izvedeli v naših posebnih temah OOP vadnic.
Dedovanje
Dedovanje je ena najpomembnejših značilnosti OOP. Java z dedovanjem spodbuja ponovno uporabo kode.
Kaj je torej dedovanje v Javi?
Dedovanje je mehanizem v Javi, v katerem lahko en razred podeduje lastnosti drugega razreda. Lastnosti, ki jih je mogoče podedovati, vključujejo člane podatkov in metode razreda.
Razred, ki podeduje lastnosti drugega razreda, se imenuje podrazred. Podedovani razred je v Javi znan kot 'super' razred.
Z podedovanjem razreda podrazred ne podeduje samo lastnosti, temveč tudi ponovno uporabi kodo, saj programerju ni treba znova napisati kode, ko jo lahko neposredno podeduje z dedovanjem.
V Javi se dedovanje doseže z uporabo ključne besede 'extends'. Ta ključna beseda extends se uporablja v definiciji razreda in ji sledi ime razreda, ki bo podedovan.
Na primerče obstajata dva razreda, A in B, in če bo A podedoval A, je to dedovanje v Javi zapisano kot:
class B extends A { …… }
Kot smo že omenili, je A tukaj superrazred ali osnovni razred ali nadrejeni razred. B je podrazred, izpeljani razred ali podrejeni razred.
Dedovanje je nadalje razdeljeno na naslednje vrste.
Java podpira enojno, večnivojsko in hierarhično dedovanje.
Upoštevajte, da Java ne podpira več dedovanja. Java tudi ne podpira hibridnega dedovanja, ki je kombinacija več in hierarhičnih dediščin.
Spodaj je primer programa Single Inheritance v Javi.
//base class class Employee{ float salary=50000; } //derived class class Developer extends Employee{ int bonus=20000; } class Main{ public static void main(String args[]){ //declare Developer class object and access properties of base and derived class Developer p=new Developer(); System.out.println('Inheritance in Java'); System.out.println('Developer salary: '+p.salary); System.out.println('Bonus declared for Developer: '+p.bonus); System.out.println('Developer Total Earnings: ' + (p.salary + p.bonus)); } }
Izhod
V zgornjem programu imamo osnovni razred zaposleni. Imamo še enega razvijalca razreda, ki podeduje razred zaposlenega. V glavni metodi lahko vidimo, da z razglasitvijo predmeta razreda Developer lahko dostopamo ne samo do lastnosti razreda Developer, temveč tudi do razreda Employee, saj ga podeduje razred Developer.
Polimorfizem
Polimorfizem je še ena pomembna značilnost OOP. Polimorfizem je zmožnost jezika, da predmetom ali entitetam omogoči več oblik. Na primer metoda, ki ima različne izvedbe, je v Javi polimorfna.
Polimorfizem je v Javi dve vrsti:
- Preobremenitev ali časovni polimorfizem prevajanja: V polimorfizmu časa prevajanja se klic polimorfne ali preobremenjene metode reši v času prevajanja.
- Preglasitev ali polimorfizem med izvajanjem: V polimorfizmu izvajalnega okolja se klic nadrejene metode v programu Java reši med izvajanjem.
V naslednjih vajah bomo podrobno razpravljali o polimorfizmu.
Spodaj je prikazan primer polimorfizma časa prevajanja v Javi, kjer imamo metodo add, ki je preobremenjena za izvajanje seštevanja z različnimi vrstami operandov..
class Numbers_Sum { //add method : takes two int parameters public int add(int val1, int val2) { return (val1 + val2); } // overloaded add : takes three int parameters public int add(int val1, int val2, int val3) { return (val1 + val2 + val3); } //overloaded add: takes two double parameters public double add(double val1, double val2) { return (val1 + val2); } } class Main{ public static void main(String args[]) { //create an object of Numbers_Sum class and call overloaded functions Numbers_Sum numsum = new Numbers_Sum(); System.out.println('Polymorphism in Java'); System.out.println('add(int, int): ' + numsum.add(15, 18)); System.out.println('add(int, int, int): ' + numsum.add(5, 10, 20)); System.out.println('add(double,double): ' + numsum.add(5.5, 15.5)); } }
Izhod
V tem programu imamo tri preobremenjene metode z imenom add. Prva metoda ima dva int parametra, naslednja metoda ima tri int parametre, tretja metoda pa dva dvojna parametra. Odvisno od števila parametrov se klic metode razreši v času prevajanja in izvede ustrezen klic.
Abstrakcija
Z uporabo abstrakcije podatkov izpostavimo samo bistvene dele aplikacije, ki so dostopni uporabniku. Na primer če imamo avto, nas notranje komponente avtomobila ne skrbijo, ampak avto upoštevamo samo kot celoto.
Z mehanizmom za odvzem podatkov identificiramo samo potrebne podrobnosti in prezremo nepomembne podrobnosti. Java uporablja abstraktne razrede in vmesnike za doseganje abstrakcije. Vmesniki so 100% abstraktni, saj imajo samo prototipe metod in ne njihove definicije.
Spodnji primer prikazuje abstraktni razred in njegovo uporabo.
// Abstract class declaration abstract class PetAnimal { // Abstract method: should be defined in derived class public abstract void animalSound(); // non-abstract method public void print() { System.out.println('This method is example of abstraction'); } } // Derived class class Dog extends PetAnimal { //abstract method defined here public void animalSound() { System.out.println('The doggy barks'); } } class Main { public static void main(String[] args) { Dog doggy = new Dog(); // Instantiate derived class and call methods doggy.animalSound(); doggy.print(); } }
Izhod
V zgornjem programu imamo abstraktni razred PetAnimals. V tem imamo abstraktno metodo 'animalSound'. Nato ustvarimo razred Dog in podedujemo razred PetAnimals. V razredu psov preglasimo metodo animalSound.
sql vprašanja za poizvedbe za preizkuševalce
Kapsulacija
Inkapsulacija je skrivanje podatkov ali zaščita podatkov. Pri programiranju dosežemo inkapsulacijo tako, da podatke in metode, ki delujejo na te podatke, zavijemo v eno enoto.
Video vadnica: Kapsulacija in polimorfizem v Javi
Na razred lahko gledamo kot na enoto za enkapsulacijo, torej imamo podatkovne člane in metode, ki delujejo na teh podatkovnih članih, združene v eno samo enoto.
Pravilno inkapsulacijo je mogoče doseči tako, da postanejo člani podatkov zasebni in imajo metode, ki delujejo na teh podatkih, javne, tako da so podatki popolnoma zaščiteni pred zunanjimi entitetami.
Spodnji program Java prikazuje koncept enkapsulacije.
class Customer_Account { //private data of class private long customer_accountNo; private String customer_name,customer_email; private float customer_salary; //public getter/setter methods to access private data public long getAcc_no() { return customer_accountNo; } public void setAcc_no(long acc_no) { this.customer_accountNo = acc_no; } public String getName() { return customer_name; } public void setName(String name) { this.customer_name = name; } public String getEmail() { return customer_email; } public void setEmail(String email) { this.customer_email = email; } public float getSalary() { return customer_salary; } public void setSalary(float salary) { this.customer_salary = salary; } } public class Main { public static void main(String[] args) { //create an object of customer_Account class Customer_Account acc=new Customer_Account(); //use setter methods to set values acc.setAcc_no(123458765432L); acc.setName('SoftwareTestingHelp'); acc.setEmail('sth@sth.com'); acc.setSalary(65000f); //use getter methods to read values System.out.println('Customer Account Number: ' + acc.getAcc_no()); System.out.println('Customer Account Details:'); System.out.println(' Customer Name: '+acc.getName()+'
'+ ' Customer Email: ' + acc.getEmail()+'
' + ' Customer Salary: ' +acc.getSalary()); } }
Izhod
V zgornjem programu imamo razred Customer_Account.
V tem razredu imamo člane s podatki, ki so vsi zasebni. Nato za vsako zasebno polje nudimo metode getter in setter za branje oziroma nastavitev vrednosti. Ti pridobitelji in ustanovitelji so javni. Na ta način zaščitimo podatkovna polja tako, da jim ne dovolimo neposrednega dostopa zunaj razreda.
Do njih je mogoče dostopati samo prek geterjev in seterjev. To dokazuje zgoraj opisano kapsulacijo.
Pogosto zastavljena vprašanja
V # 1) Kaj pomeni objektno usmerjeno programiranje?
Odgovor: Predmetno usmerjeno programiranje (OOP) je programska paradigma, ki se vrti okoli podatkov. V OOP je poudarek na podatkih, zato so težave izražene v smislu objektov, ki so entitete, sestavljene iz podatkov ali polj, in metod, ki delujejo na teh podatkovnih poljih.
S tem se uporabi več značilnosti OOP, kot so dedovanje, polimorfizem, abstrakcija in enkapsulacija, da se zagotovi varnost podatkov, ponovna uporabnost itd.
V # 2) Katera so 4 osnovna načela OOP?
Odgovor:Predmetno usmerjeno programiranje (OOP) ima štiri osnovna načela:
- Dedovanje
- Polimorfizem
- Abstrakcija
- Kapsulacija
Imenujejo se tudi štirje stebri OOP.
V # 3) Zakaj se Java imenuje objektno usmerjena?
Odgovor: Java ima objekt korenskega razreda, iz katerega izpeljemo vse druge značilnosti Java. Brez razreda in predmeta torej ne moremo imeti programa Java. Zato se Java imenuje jezik OOP.
V # 4) Ali je Java zgolj objektno usmerjena?
Odgovor: Ne, Java ni čisti objektno usmerjeni jezik. Ker Java ponuja tudi primitivne vrste podatkov, kot so int, char, float, double, long itd., Ni klasificiran kot čisti jezik OOP.
V # 5) Kakšna je razlika med C ++ in Java?
Odgovor: Tako C ++ kot Java sta objektno usmerjena jezika in podpirata funkcije OOP. Toda C ++ je prevedeni jezik. Java je na drugi strani sestavljena kot tudi interpretiran jezik.
Tolmač Java med izvajanjem izvede bajtno kodo in ustvari izhod, zaradi česar je neodvisen od platforme. C ++ pa je odvisen od platforme.
Več o konceptu OOPS
Razred
Razred je načrt / prototip predmeta iz resničnega sveta in modelira stanje in vedenje tega predmeta iz resničnega sveta.
Izjava o razredu
class MyClass { // field, constructor, and // method declarations }
Class room(){ //room should have dimension. Dimension is attribute. //in the room, we are going keep things. Keeping is the function we are going to do. Keepthings (); this is a method in java. }
Predmet
Programski predmeti so kot resnični predmeti s stanjem in vedenjem. Stanje se shrani kot polje in njegovo vedenje izpostavi kot metode.
Tu je soba kot splošna zasnova. V tej sobi bi morali oblikovati dnevno sobo, kuhinjo, spalnico.
Class CookingRoom(){ Dimension is attribute. //here we should have method to keep cooking things. Keepthings(){ This method is same like room class keep things method. but it should have some more features to hold cooking items. } cooking(); }
Class LivingRoom(){ Dimension is attribute. //here we should have method to keep Living Room things. Keepthings(){ This method is same like room class keep things method. but it should have some more features to hold living room items(like tv etc). } watching tv(); }
Tu mora metoda “Keepthings ()” izvajati osnovne funkcionalnosti, ki so potrebne za sobo, in mora imeti dodatne specifikacije glede na razred “dnevne sobe” in razreda “kuhalnice”. Torej bi morala dva razreda podedovati metode v razredu 'soba'.
Dedovanje
Vedenje (metode) in stanje enega razreda, podedovanega drugemu razredu, se imenuje dedovanje. Metode in stanje se podedujejo od nadrejenega razreda do podrejenega razreda.
Torej,
Class CookingRoom extends Room{ }
Class LivingRoom extends Room{ }
Polimorfizem
V biologiji se polimorfizem nanaša na začimbe, ki imajo lahko veliko različnih oblik.
Z istim konceptom v objektno usmerjenem programiranju lahko podrejeni razred podeduje metode nadrejenega razreda, lahko pa temu vedenju doda edinstvene lastnosti. Polimorfizem lahko dosežemo s preobremenitvijo ali razveljavitvijo metode.
Preobremenitev
public class OverloadDemo { public int add( int a,int b) { int rs=a+b; return rs; } public int add( int a,int b,int c) { int rs=a+b+c; return rs; } public static void main(String[] args) { OverloadDemo ov=new OverloadDemo(); System.out.println(ov.add(23,56,45)); System.out.println(ov.add(23,56)); } }
Preglasitev
public class Bicycle { int wheels=2; String seat; public void riding() { System.out.println('bicycle is used for riding'); } }
public class RoadBicycle extends Bicycle{ public void riding() { System.out.println('RoadBicycle is used for road riding'); } }
public class TestBicycle { public static void main(String[] args) { Bicycle b=new RoadBicycle(); b.riding(); } }
IZHOD: Tu metoda podrejenega razreda preglasi metodo nadrejenega razreda.
Super ključna beseda
Ključna beseda Super je referenčna spremenljivka, ki se uporablja za sklicevanje na neposredni objekt nadrejenega razreda. S ključno besedo super se lahko sklicujete na metodo nadrejenega razreda ali spremenljivke ali konstruktor.
Ta ključna beseda
Ta ključna beseda se uporablja za sklicevanje na trenutni objekt razreda. S to ključno besedo lahko dostopate do spremenljivke trenutnega razreda ali metode trenutnega razreda. To lahko prenesete kot argument v klicu metode.
public class DemoThisKeyword { private int accno; private int balance; public void setvalues(int accno,int balance) { this.accno=accno; this.balance=balance; } public int showdata() { System.out.println(accno); System.out.println(balance); return balance; } public static void main(String[] args) { // TODO Auto-generated method stub DemoThisKeyword obj =new DemoThisKeyword(); obj.setvalues(11, 100); obj.showdata(); System.out.println(obj.showdata()); } }
Graditelj
Konstruktorji Java so podobni metodam, ki jih bomo poklicali, ko bo objekt ustvarjen za razred. Konstruktor mora imeti isto ime kot razred.
Class Myclass{ Myclass(); Method1() { } }
Med ustvarjanjem predmeta za razred je Myclass myobj = new Myclass ();
Poklicana bo metoda konstruktorja. Konstruktor samodejno ustvari prevajalnik Java za vse razrede privzeto.
public class ConstructorExampleProgram { int employee_age; String employee_name; int employee_salary; //Default constructor ConstructorExampleProgram(){ this.employee_name=Bob'; this.employee_age=30; this.employee_salary=7000; } //Parameterized constructor ConstructorExampleProgram(String n,int a,int b){ this.employee_name=n; this.employee_age=a; this.employee_salary=b; } public static void main(String args[]){ ConstructorExampleProgram obj1 = new ConstructorExampleProgram(); ConstructorExampleProgram obj2 = new ConstructorExampleProgram('clare', 56,7500); System.out.println(obj1.employee_name+' '+obj1.employee_age+' '+obj1.employee_salary); System.out.println(obj2.employee_name+' '+obj2.employee_age+' '+obj2.employee_salary); } }
Pravila za konstruktor:
- Konstruktor mora imeti enako ime kot ime razreda.
- Konstruktor ne sme imeti izjave return.
Točke, ki jih je treba upoštevati:
- Pri objektno usmerjenem programiranju so predmeti glavni del programiranja.
- OOP koncepti so objekt, razred, dedovanje, polimorfizem, konstruktor.
- Super ključna beseda, ki se uporablja za sklicevanje na člane nadrejenega razreda in to Ključna beseda se uporablja za sklicevanje na predmet trenutnega razreda.
- Konstruktorji so kot metode, ki jih bomo poklicali, ko bo objekt ustvarjen za razred.
Zaključek
Ta vadnica je zajela osnove pomembnih objektno usmerjenih funkcij, ki jih podpira Java. To je le uvodna vadnica o OOPS v Javi. Vse teme bomo podrobno zajeli v naslednjih vajah. Java podpira štiri stebre OOP, to je polimorfizem, dedovanje, abstrakcija in enkapsulacija.
Poleg teh funkcij Java podpira tudi druge funkcije in konstrukcije OOP, kot so zadrževanje, združevanje, posredovanje sporočil itd., O katerih bomo razpravljali v naslednjih vajah.
Priporočeno branje
- JAVA Vadnica za začetnike: 100+ praktičnih Javnih video vadnic
- Kaj je abstrakcija v Javi - naučite se s primeri
- Kaj je dedovanje v Javi - Vadnica s primeri
- Kaj je polimorfizem v Javi - Vadnica s primeri
- Kapsulacija v Javi: popolna vadnica s primeri
- Vrste dedovanja v Javi - posamezne in večkratne dediščine
- Koncepti OOPS v jeziku C #: Vadnica koncepta objektno usmerjenega programiranja
- Objektno usmerjeno programiranje v jeziku C ++