Java-OOP-Pitanje pocetnika.
Prikazujem rezultate 1 do 14 od 14

Tema: Java-OOP-Pitanje pocetnika.

  1. #1
    Početnik
    Učlanjen
    01.09.2005.
    Poruke
    3
    Reputaciona moć
    0

    Podrazumevano Java-OOP-Pitanje pocetnika.

    Cao,
    Prvi put se susrecem za Javom i za OOP.Čitam redom (uzeo sam neku knjigu) i + sa neta uzimam neke info.Imam jedan program koji je uradjen sa klasama i objektima koji ću da napisem u daljem textu.Volio bih da neko prođe kroz nejga i da mi čisto kaže da li sam ja to dobro skontao.Poslije programa ću da napisem komentar mog 'kontanja' klasa i objekata pa ako nisam u pravu da me upozorite.Jer ako ga sad skontam pogresno osta stalno tako.
    Unapred hvala.

    ************************************************** *****************
    public class TestSimpleCircle {
    /** Main method */
    public static void main(String[] args) {
    // Create a circle with radius 4.0
    SimpleCircle myCircle = new SimpleCircle(4.0);
    System.out.println(„The area of the circle of radius ”
    + myCircle.radiuss + „ is ” + myCircle.findArea());

    //Create a circle with radius 1
    SimpleCircle yourCircle = new SimpleCircle();
    System.out.println(„The area of the circle of radius ”
    + yourCircle.radius + „ is ” + yourCircle.findArea());

    // Modify circle radius
    yourCircle.radius = 100;
    System.out.println(„The area of the circle of radius ”
    + yourCircle.radius + „ is ” + yourCircle.findArea());

    // Modify circle radius
    yourCircle.radius = 200;
    System.out.println(„The area of the circle of radius ”
    + yourCircle.radius + „ is ” + yourCircle.findArea());

    }
    }

    // Define the circle class with two constructors
    class SimpleCircle {
    double radius;

    /** Construct a circle with radius 1 */
    SimpleCircle() {
    radius = 1.0;
    }

    /** Construct a circle with a specified radius */
    SimpleCircle(double newRadius) {
    radius = newRadius;

    }

    /** Return the area of this circle */
    double findArea() {
    return radius * radius * 3.14159;
    }
    }

    ************************************************** ******************
    //čitav fazon je da je SimpleCirlce class napravila variables, methods and constructs koji je kasnije koristen (construct) da napravi objekte (myCircle-yourCircle) koji su poprimili properties i methods od iste classe...Npr: myCircle.radius (iz prvog djela programa-gdje se printa) ima vrijednost 4.0 zato što je to objekat koji je napravljen od 'constructora' i samim ti dobio properties .radious i onda vrijednost od 4.0.Kako to da samo myCircle nema vrijednost 4.0???Kako to da je myCircle.radious = 4.0-da li sam ispravno odovorio na ovo sa svojim komentarom gore????
    Još jednom HVALA.



  2. #2
    Primećen član
    Učlanjen
    24.11.2003.
    Poruke
    641
    Reputaciona moć
    58

    Podrazumevano Re: Java-OOP-Pitanje pocetnika.

    U javi imas jednostruko nasledjivanje, t.j., jedna klasa moze da bude izvedena iz samo jedne klase.
    Kad se kaze izvedena klasa, onda to pre svega znaci da ima:
    public class Auto{.....}
    public class PlaviAuto extends Auto{.....}
    virtualne funkcije osnovne klase se automatski prepisuju u izvedenoj, pravljenjem metode sa istim imenom:

    npr:
    u Auto
    public virtual int Boja(){return 0;}
    a u plavi auto:
    public virtual int Boja(){return 2;}

    ako napravis objekat tipa Auto i pozoves metodu Boja za njega, vratice ti 0,a ako napravis PlaviAuto , ista metoda ce ti vratiti 2....................

    itd,itd,itd.........

    ipak ti je najbolje da nadjes dobru knjigu,.
    Pozdrav i srecno sa ucenjem.

  3. #3
    Ističe se juznivetar (avatar)
    Učlanjen
    12.02.2005.
    Pol
    muški
    Lokacija
    -
    Poruke
    2.041
    Reputaciona moć
    67

    Podrazumevano Re: Java-OOP-Pitanje pocetnika.

    E ovako, ja sam C++ programer, pa cu ti iz te perspektive objasniti klase, to ti je isto (nadam se, jer neznam Javu).
    E ovako klasu kreiras kada zelis da pravis vise elemenata, koji ce imati iste atribute, razlicitih vrijednosti.
    Recimo zelis da pravis vise auta, gdje svaki ima duzinu, sirinu, visinu, e kada kreiras klasu auto, postavljas i te objekte.
    Poslije iz te klase kreiras neko auto, recimo auto Golf, i sada ides principom (u C++) Golf.visina = 6; i tako dalje i ti iz te klase auto mozes izvesti koliko hoces elemenata, kao sto je Golf, recimo Mercedes, pa ide Mercedes.duzine = xxx itd. Nadam se da si razumio.
    A konstruktor ti odmah definise vrijednost objekta, recimo visine na 10;
    Pozdrav ! Zao mi je sto neznam Javu, pa da ti dajem primjere u njoj, ali nije to daleko od C++.

  4. #4
    Početnik
    Učlanjen
    01.09.2005.
    Poruke
    3
    Reputaciona moć
    0

    Podrazumevano Re: Java-OOP-Pitanje pocetnika.

    Hvala vam na javljanju i vasoj pomoci...Imam ja knjigu i mislim da sam skontao proces samo sam hteo da proverim sa nekim ko bolje zna...hvala

  5. #5
    Ističe se juznivetar (avatar)
    Učlanjen
    12.02.2005.
    Pol
    muški
    Lokacija
    -
    Poruke
    2.041
    Reputaciona moć
    67

    Podrazumevano Re: Java-OOP-Pitanje pocetnika.

    Nema problema, pozdrav !

  6. #6
    Početnik _smirnoff_ (avatar)
    Učlanjen
    18.09.2004.
    Pol
    muški
    Lokacija
    Beograd
    Poruke
    29
    Reputaciona moć
    0

    Podrazumevano Re: Java-OOP-Pitanje pocetnika.

    Sobzirom da tek pocinjes sa OOP - njem mozda je najlaksi nacin da skapiras klase taj da ih posmatras kao (citaj: za pocetak) tip podatka kao sto su int, long, float, double, boolean,...itd. sa jednom razlikom sto ih ti pravis po svojim potrebama.

    Po mom misljenju probaj da napravis recimo...klasu MyDouble koju ces da opremis svim metodama koje ima i sam double.

    PRIMER:

    public class MyDouble {

    private double broj;

    public MyDouble () { broj = 0; } // Podrazumevani konstruktor(default konstruktor).
    public MyDouble (double broj) { this.broj = broj; } // Konstruktor konverzije.
    public MyDouble(final MyDouble d) { this.broj = d.broj; } // Konstruktor kopije.

    public double dohvati () { return broj; }
    public MyDouble postavi (double broj) { this.broj = broj; return this; }

    public static MyDouble saberi (final MyDouble b) { // Ovo bi bio operator +
    return new MyDouble (this.broj + b.broj)
    }

    public MyDouble dodaj (final MyDouble b) { // Ovo bi bio operator +=
    this.broj += b.broj; return this;
    }

    public String toString () { // Sastavljanje tekstualnog prikaza.
    return Double.toString(broj);
    }
    } // class MyDouble

    OBJASNJENJE:

    Naime, u klasi MyDouble imas tri konstruktora. Sta oni rade ??? Svaki od ta tri konstruktora omogucavaju da prilikom pravljenja objekta klase postave pocetne vrednosti tvog broja.

    PR 1: MyDouble b1 = new MyDouble();
    Ovim bi postavio pocetnu vrednost broja b1 na NULU jer si pozvao podrazumevani (default) konstruktor

    PR 2: int x = 3; MyDouble b2 = new MyDouble(x);
    Ovde bi se pozvao konstruktor konverzije i incijalizovao bi broj na 3 tj. vrednost prom. x i konvertovao bi broj u tip double;

    PR 3: MyDouble b3 = new MyDouble (b2);
    Ovde se poziva konstruktor kopije pa b3 ima istu vrednost kao i b2;

    Znaci konstruktori se koriste kako bi se inicijalizovali (citaj: neki) atributi te klase, takodje moze da se spreci i losa inicijalizacija.

    NPR:

    public class Trougao {

    // Duzine stranica trougla
    private double a;
    private double b;
    private double c;

    // Provera da li trougao postoji
    private boolean moze (double a, double b, double c) {
    return a > 0 && b > 0 && c > 0 && a+b > c && b+c > a && a+c > b;
    }
    public Trougao () { a = b = c = 1; }
    public Trougao (double aa, double bb, double cc) {
    if( ! moze(aa, bb, cc))throw new GRESKA();
    a = aa; b = bb; c = cc;
    }
    } // class Trougao


    Znaci ako stranice nisu pozitivne i ako ne formiranju trougao prijavljuje se greska...itd.
    Sto se metoda tice one omogucavaju da se sa Trouglom nesto radi. Recimo izracunati Obim, Povrsina,...,itd. Nadam se da sam ti bar malo pomogao da skapiras OOP (za pocetak naravno).

    Pozdrav i samo giljaj jer to je jedini nacin.
    Svet je pun budala koje misle da je svet pun budala

  7. #7
    Primećen član
    Učlanjen
    24.11.2003.
    Poruke
    641
    Reputaciona moć
    58

    Podrazumevano Re: Java-OOP-Pitanje pocetnika.

    evo linka ka source fajlovima iz zbirke Laslo Kraus Programiranje u jeziku Java.
    Mislim da ako proanaliziras deo koda iz ocve knjige, mozes mnogo da naucis.
    Pozdrav

    http://galeb.etf.bg.ac.yu/~kraus/knjige/rzj.html

    imas isto tako i izvorne kodove programa u c++, a mnogi zadaci se ponavljaju (paralelno su napisani u c++ i javi), pa moze biti zanimlojivo ako hoces da ubijes dve muve jednim udarcem.

    http://galeb.etf.bg.ac.yu/~kraus/knjige/rzcp.html

    inace , kratak pregled razlika java vs c++:
    java:
    1)
    sve metode su virtuelne ( ne pise se virtual, podrazumeva se, zbog jednostrukog nasledjivanja nema mogucosti zabune)
    p.s. u pomenutom java kodu potrazi koriscenje sluzbene reci super koje nema u c++ , zato sto u c++ mozes da izvedes klasu iz vise klasa

    2) interface je potpuno apstraktna klasa ( u c++ to nije interface, vec klasa cije su sve metode apstraktne)

    3) u javi nemas pokazivace, ni destruktore ( kompajler sam alocira memoriju, a brise objekte takodje sam, ako se sa njega skinu sve reference(t.j. ako kompajler vidi da vise nicemu ne sluzi))

    4) u javi kucas public ili protected ili private ispred svakog atributa ili metode, dok su u c++ oni u blokovima ( koji slede jedan pozsle drugog)

    java:

    public int a;
    private float b;
    private abstract double mojMetod();

    c++:
    private:
    float b;
    double virtual mojMetod() =0;
    //ovako se pise apstraktna metoda u c++
    public:
    int a;

    apstraktna klasa je svaka koja sadrzi bar 1 apstraktnu metodu ( u javi to mora eksplicitno da se kaze)
    abstract class ....
    dok u c++ ne.
    Objekti tipa apstraktne klase ne mogu da postoje, vec samo tipa neke klase izvedene iz nje, gde umesto svih apstraktnih metoda postoje konkretne metode, kojima su redefinisane.

    u c++ postoji visestruko nasledjivanje, pa ne postoji sluzbena rec super:

    npr:

    class Bicikl : public Tocak,Prevozno_sredstvo
    {
    ...........


    ukratko, to je to, skini one source kodove, citaj, menjaj, isprobavaj, to je valjda najbolji nacin da se uci programiranje.

    Pozdrav i srecno

  8. #8
    Početnik
    Učlanjen
    01.09.2005.
    Poruke
    3
    Reputaciona moć
    0

    Podrazumevano Re: Java-OOP-Pitanje pocetnika.

    Ljudi bas vama hvala...kraljevi...Pa kad i ja nacuim onda cu i ja da pomazem drugima
    Pozdrav....

  9. #9
    Ističe se juznivetar (avatar)
    Učlanjen
    12.02.2005.
    Pol
    muški
    Lokacija
    -
    Poruke
    2.041
    Reputaciona moć
    67

    Podrazumevano Re: Java-OOP-Pitanje pocetnika.

    Tako treba, pozdrav !

  10. #10
    Primećen član
    Učlanjen
    24.11.2003.
    Poruke
    641
    Reputaciona moć
    58

    Podrazumevano Re: Java-OOP-Pitanje pocetnika.

    Zaboravih(naravno ne moze se sve reci u par recenica, pa cu ja ovako, kad se setim neceg vaznog ili zanimljivog, da dodam).

    private clanove vide samo primerci iste klase.

    protected clanove vide samo clanovi iste i izvedenih klasa

    public clanovi su svuda dostupni


    Pozdrav

  11. #11
    Zainteresovan član
    Učlanjen
    04.03.2004.
    Pol
    muški
    Poruke
    432
    Reputaciona moć
    55

    Question Knjige za Javu

    Cao svima.
    Zanima me, posto i sam zelim da naucim Javu, koja kniga je najbolja za totalne pocetnike? Vec imam dve knjige: Java 1.2 naucite za 21 dan, Laura Lemay i Java 2 od pocetka, Ivor Horton. Prva mi se ucinila da je bas za pocetnike, a inace sam je poceo citati, dok sam ovu drugu igrom slucaja nesto veoma jeftino nabavio.
    Dakle, vasa misljenja u vezi kljiga o javi (za pocetnike)???

  12. #12
    Primećen član
    Učlanjen
    24.11.2003.
    Poruke
    641
    Reputaciona moć
    58

    Podrazumevano Re: Java-OOP-Pitanje pocetnika.

    ja sam prvo procitao java za 21 dan ( na cd-u) , a od tada koristim help, koji je odlican, (t.j. kompletno je objasnjen ceo sistem klasa, pa kad ti nesto zatreba, trazis, trazis, dok ne nadjes..)

    inace help je na:

    http://java.sun.com/j2se/1.5.0/docs/api/index.html

  13. #13
    Ističe se juznivetar (avatar)
    Učlanjen
    12.02.2005.
    Pol
    muški
    Lokacija
    -
    Poruke
    2.041
    Reputaciona moć
    67

    Podrazumevano Re: Java-OOP-Pitanje pocetnika.

    Evo kako bi ti ja preporucio da ucis programiranje, bar sam ja tako radio i nisam se pokajao, naucis neke osnove programskog jezika koji zelis da znas, e onda pocnes sa nekim projektom, e tokom rada na tom projektu susrest ces se sa mnogo problema koje do tada nisi rjesavao, e onda trk na net trazi kako da to rjesis, mozda je potrebna neka funkcija ili slicno, i naravno to kad pronadjes odradis ga i samim tim to ces zapamtiti i tako prosirujes svoje znanje veoma efikasno, jer recimo ucenje nekih funkcija API-ja recimo ono bez rada i primjera, je gubljenje vremena.

  14. #14
    Početnik _smirnoff_ (avatar)
    Učlanjen
    18.09.2004.
    Pol
    muški
    Lokacija
    Beograd
    Poruke
    29
    Reputaciona moć
    0

    Podrazumevano Re: Java-OOP-Pitanje pocetnika.

    Ako si apsolutni pocetnik u programiranju (pa i da nisi), a hoces da ucis da programiras korz JAVU Ivor Horton - ova knjiga je pravi izbor jer ide bas od samog pocetka pa do dosta slozenih stvari kao sto su thread - ovi rad sa GUI - jem itd. Mada bih ti preporucio ( i svakom ko hoce da se bavi programiranjem) da pocnes sa ucenjem klasicnog C - a, pa kada to savladas da predjes na C++ pa tek onda na JAVU. To je po mom misljenju neki logicki redosled.

    pozdrav
    Svet je pun budala koje misle da je svet pun budala

Slične teme

  1. AUTO ZA POCETNIKA
    Autor dusebriznik u forumu Automobilizam
    Odgovora: 16
    Poslednja poruka: 31.01.2010., 19:37
  2. pomoc za pocetnika
    Autor stefdza u forumu Web dizajn
    Odgovora: 6
    Poslednja poruka: 05.04.2009., 20:42
  3. Pomoc za pocetnika
    Autor znjicki u forumu Satelitska televizija
    Odgovora: 0
    Poslednja poruka: 03.02.2008., 18:19
  4. jedno pitanje, za java script
    Autor absonic u forumu Web dizajn
    Odgovora: 4
    Poslednja poruka: 28.08.2005., 16:18
  5. Klub Pocetnika u C++
    Autor Pocetnik C++ u forumu Programiranje
    Odgovora: 46
    Poslednja poruka: 25.12.2004., 18:58

Pravila za slanje poruka

  • Ne možete kreirati novu temu
  • Ne možete poslati odgovor
  • Ne možete dodati priloge
  • Ne možete prepraviti svoju poruku
  •