Java Apunteak Eta Ariketak

Embed Size (px)

Citation preview

  • 7/24/2019 Java Apunteak Eta Ariketak

    1/168

    JAVA: APUNTEAK ETA ARIKETAK

    Oier Palacios Egiguren

  • 7/24/2019 Java Apunteak Eta Ariketak

    2/168

    Aurkibidea1. GAIA: INFORMATIKA-PROGRAMEN ELEMENTUAK............................................................51.1. ARRERA.....................................................................................................................................!

    1.1.1. "ER #A $A%A.......................................................................................................................!1.1.&. PROGRAMA 'ATEN EGITURA OROKORRA.................................................................(1.1.). $#K *$a+a #e+elo, en Ki /.................................................................................................(

    1.1.).1. $#K E KURATU..........................................................................................................(1.1.).&. $#K ERA'ILI................................................................................................................0

    1.&. I#ENTIFIKA#OREAK ETA AL#AGAIAK.............................................................................1&1.&.1. I#ENTIFIKA#OREAK......................................................................................................1 )1.&.&. IT" ERRE ER'ATUAK..................................................................................................121.&.). AL#AGAI MOTAK............................................................................................................12

    1.). #ATU MOTAK...........................................................................................................................1!1.).1. OINARRI"KO #ATU MOTAK I.......................................................................................1(1.).&. OINARRI"KO #ATU MOTAK II......................................................................................13

    1.).). AL#AGAI ETA KON TANTEAK #EKLARAT"EA ETA A IERAT"EA...................131.2. ERAGILEAK ETA A#IERA"PENAK......................................................................................&11.2.1. ERAGILE ARITMETIKOAK.............................................................................................&11.2.&. E LEIPEN-ERAGILEAK...................................................................................................&&1.2.). 'AL#INT"A"KO ERAGILEA *4:/...................................................................................&&1.2.2. ERLA"IO"KO ERAGILEAK............................................................................................&)1.2.5. ERAGILE LOGIKOAK......................................................................................................&21.2.!. 'IT ERAGILEAK...............................................................................................................&51.2.(. ERAGILE UNITARIOAK...................................................................................................&!

    1.5. ERAGILEEN IERARKIA........................................................................................................&(1.!. #ATU MOTEN ARTEKO 'I URKETA * A T/.....................................................................&3

    1.(. IRU"KINAK...............................................................................................................................)61.0. ANNER KLA EA..................................................................................................................)1A ERAN KINA: E LIP E $UNO NOLA ERA'ILI........................................................................) 5' ERAN KINA: ARIKETAK...........................................................................................................2 5

    ARIKETA ERRA"AK...................................................................................................................2 5"AILTA UN ERTAINEKO ARIKETAK.....................................................................................2 !ARIKETA "AILAK....................................................................................................................... 2(

    &. GAIA: O'$EKTUEI "U"EN#UTAKO PROGRAMA"IOA. O'$EKTUAK............................. 23&.1. ARRERA...................................................................................................................................5 6&.&. O'$EKTUEI "U"EN#UTAKO PROGRAMA"IOAREN OINARRIAK................................5 1

    &.&.1. KONT"EPTUAK................................................................................................................5 &&.&.&. ONURAK............................................................................................................................5 )&.&.). E"AUGARRIAK.................................................................................................................5 )

    &.). KLA EAK ETA O'$EKTUAK..................................................................................................5 5&.).1. O'$EKTUEN PROPIETATEAK ETA METO#OAK........................................................5 5&.).&. O'$EKTUEN INTERAK"IOAK.......................................................................................5 5&.).). KLA EAK...........................................................................................................................5 !

    &.2. O'$EKTUAK ORTU7 ERA'ILI ETA UNT ITU................................................................. 50&.2.1. O'$EKTUEN 'I"IA........................................................................................................... 5(&.2.&. O'$EKTUAK #EKLARAT"EA ETA ORT"EA............................................................. 50&.2.). O'$EKTUAK ERA'ILT"EA............................................................................................. 53&.2.2. O'$EKTUAK UNT IT"EA............................................................................................. 53

    &.5. METO#OAK ERA'ILT"EA.....................................................................................................! 6

    2

  • 7/24/2019 Java Apunteak Eta Ariketak

    3/168

    &.5.1. PARAMETROAK ETA IT"ULITAKO #ATUAK.............................................................! 1&.5.&. ORT"AILEAK..................................................................................................................! &&.5.). T I ERAGILEA................................................................................................................! )&.5.2. METO#O E TATIKOAK...................................................................................................! !

    &.!. PAKETEAK................................................................................................................................ !(&.!.1. IMPORT AGIN#UA...........................................................................................................( 6

    &.!.&. $A%A LI'URUTEGIAK......................................................................................................( 1A ERAN KINA: ARIKETAK...........................................................................................................( &

    ARIKETA ERRA"AK...................................................................................................................( &ARIKETA "AILAK.......................................................................................................................( )ARIKETA O OA........................................................................................................................... (2

    ). GAIA: OINARRI"KO KONTROL-EGITURAK......................................................................... (().1. ARRERA................................................................................................................................... (0).&. ENTENT"IAK ETA 'LOKEAK............................................................................................. (3).). AUTA"KO EGITURAK.......................................................................................................... 0)

    ).).1. IF ETA IF-EL E.................................................................................................................. 02).).&. 8IT EGITURA............................................................................................................ 0(

    ).2. ERREPIKAPEN-EGITURAK....................................................................................................3 6).2.1. FOR EGITURA...................................................................................................................36).2.&. 8 ILE EGITURA..............................................................................................................3)

    ).5. #O98 ILE EGITURA...............................................................................................................35).5. $AU"I EGITURAK................................................................................................................3().5.1. 'REAK ETA ONTINUE..................................................................................................3().5.&. ETIKETAK..........................................................................................................................33).5.). RETURN ENTENT"IA..................................................................................................166

    ).!. AL'UE PENAK....................................................................................................................16&).!.1. AL'UE PENAK ARRAPAT"EA...............................................................................16)).!.&. T RO8 ...........................................................................................................................1 6!

    ).(. OFT8ARE-PRO'AK............................................................................................................16 ().(.1. "E A"PENAK.................................................................................................................1 6().(.&. PRO'A AKONAK..........................................................................................................1 60).(.). KUT A 'ELT"AREN PRO'AK....................................................................................1 60).(.2. KUT A "URIAREN PRO'AK.......................................................................................1 60).(.5. 'E TE PRO'A MOTA 'AT"UK....................................................................................1 63

    ).0. NOLA ERA'ILI #E'UG MO#UA E LIP E-n.....................................................................1 16).3. KO#EAREN #OKUMENTA"IOA.........................................................................................1 1)

    ).3.1. ETIKETAK ERA'ILI.......................................................................................................1 12).3.&. ETIKETAK OR#ENAT"EA.............................................................................................1 15

    A ERAN KINA: ARIKETAK.........................................................................................................1 13ARIKETA ERRA"AK.................................................................................................................11 3ARIKETA "AILAK.....................................................................................................................1& 6ARIKETA O OA.........................................................................................................................1 &&

    2. GAIA: KLA EAK GARAT"EA.................................................................................................1 &)2.1. ARRERA.................................................................................................................................1 &2

    2.1.1. O'$EKTU 'AT "ER #EN ERREPA AT"EN.................................................................1 &22.&. "ER #A KLA E 'AT4.............................................................................................................1 &5

    2.&.1. KLA E 'AT #EKLARAT"EA........................................................................................1 &52.&.& KLA EAREN 'URUA......................................................................................................1 &!2.&.) KLA EAREN GORPUT"A..............................................................................................1 &(

    2.&.2 KI#E E TATIKOAK.........................................................................................................1 &(

    3

  • 7/24/2019 Java Apunteak Eta Ariketak

    4/168

    2.). ATRI'UTUAK..........................................................................................................................1 &02.).1. ATRI'UTUAK #EKLARAT"EA....................................................................................1 &0

    2.).1.1. ATRI'UTUEN AL#ARA"LEAK............................................................................1 &32.).1.&. ATRI'UTU E TATIKOAK.......................................................................................1 )1

    2.2. METO#OAK............................................................................................................................1 ))2.2.1. METO#OAK #EKLARAT"EA.......................................................................................1 ))

    2.2.&. METO#OAREN 'URUA................................................................................................1 )22.2.). METO#OEN AL#ARA"LEAK......................................................................................1 )52.2.2. METO#OEN PARAMETROAK......................................................................................1 )(2.2.5. METO#OEN GORPUT"A...............................................................................................1 )02.2.!. METO#OAK GAINKARGAT"EA..................................................................................1 2&2.2.(. T I ERREFERENT"IA..................................................................................................1 2)2.2.0 .METO#O E TATIKOAK.................................................................................................1 22

    2.5. ENKAP ULA"IOA7 AT"IPEN KONTROLA ETA IKU GAITA UNA...............................1 252.5.1. ATRI'UTUAK E"KUTAT"EA........................................................................................1 252.5.&. METO#OAK E"KUTAT"EA..........................................................................................1 2(

    2.!. METO#OAK ETA ATRI'UTUAK ERA'ILT"EA................................................................15 12.!.1. O'$EKTUAK #EKLARAT"EA......................................................................................15 12.!.&. O'$EKTUAK ORT"EA.................................................................................................1 5&2.!.). O'$EKTUAK ERA'ILT"EA...........................................................................................1 5)

    2.(. ORT"AILEAK........................................................................................................................1 552.(.1. ORT"AILEAK I#AT"I..................................................................................................1 552.(.&. ORT"AILEAK ERA'ILI...............................................................................................1 5!2.(.). KOPIA- ORT"AILEAK...................................................................................................15 02.(.2. O'$EKTUAK UNT ITU................................................................................................1 53

    2.0. ERENT"IA: ARRERA........................................................................................................1 !62.0.1. ERENT"IA ERA'ILT"EN #UTEN KLA EAK ORTU ETA ERA'ILI...................1 !1

    A ERAN KINA: ARIKETAK.........................................................................................................1 !&ARIKETA ERRA"AK.................................................................................................................1 !&ARIKETA "AILAK.....................................................................................................................1 !)ARIKETA O OA.........................................................................................................................1 !2

    4

  • 7/24/2019 Java Apunteak Eta Ariketak

    5/168

    1. GAIA: INFORMATIKA-PROGRAMEN ELEMENTUAK

    5

  • 7/24/2019 Java Apunteak Eta Ariketak

    6/168

    1.1. SARRERA

    1.1.1. ZER DA JAVA

    Java programazio hizkuntza bat da, objektuei zuzendua, eta arrakastatsua. Sun Microsystemsenpresak diseinatu zuen 1990eko hamarkadan, " Write once, run anywhere " filosofianoinarrituta. ilosofia hori dela eta, !a a plataforma anitzeko hizkuntza dela esaten da. #orrekesan nahi du, Java Virtual Machine $!%M& bat tarteko, programa konpilatuta dagoeneanedozein sistema eragiletan e'ekutatzen dela.

    6

    http://eu.wikipedia.org/wiki/Sun_Microsystemshttp://eu.wikipedia.org/wiki/Sun_Microsystems
  • 7/24/2019 Java Apunteak Eta Ariketak

    7/168

    1.1.2. PROGRAMA BATEN EGITURA OROKORRA

    public class (ai'oMundua )*+ (ai'oMundua programa +*

    public static oid main$String - args& )*+programa honek gauza bakarra egiten du /(ai'oMundua katea pantailan atera+* System.out.println$"(ai'o, mundua "&2 3

    3

    1.1.3. JDK (Java Developmen K! "

    Java Development kit !a a garatzeko tresna4multzo bat da.!a an programatzeko ez dugu, derrigorrez, garapen4ingurune integraturik behar nahikoa da!5( edukita.!5(k ez dauka ingurune grafikorik programak garatzeko. (ontsolaren bitartez lan egitekotresnak dauzka. !5(ren barruan !67 $!a a 6untime 7n ironment& dago. !67k aplikazio bate'ekutatzeko beharrezkoak diren osagaiak ditu makina birtuala eta klase4liburutegiak.

    1.1.3.1. J K ESKURATU

    http **888.oracle.com*technet8ork*ja a*ja ase*do8nloads*inde'4jsp41 : ; .html8eb4orrialdean aurkituko dugu !5(ren azken bertsioa. 5ohainik da handik !5( jaistea, bainaadi egon behar dugu gure sistema eragileari dagokion bertsioa aukeratzeko. biteko ?indo8s4erako.

    7

    http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
  • 7/24/2019 Java Apunteak Eta Ariketak

    8/168

    1.1.3.2. JDK ERABILI

    @nstalatu ostean, bin karpeta non dagoen bilatuko dugu.

  • 7/24/2019 Java Apunteak Eta Ariketak

    9/168

    @rudi honen antzeko zer edo zer geratuko da

    Jehin helbidea gehituta, kontsola4sesio bat $cmd& zabalduko dugu, eta javac idatziko dugu.#onelako zer edo zer atera beharko litzateke $?indo8s F&

    9

  • 7/24/2019 Java Apunteak Eta Ariketak

    10/168

    Iurreko irudiaren antzeko zerbait atera bazaizu, !a a ondo instalatuta eta konfiguratutadaukazu. Croba bat egiteko, (ai'oMundua programa egin eta e'ekutatuko dugu.

    Ghar4bloka zabalduko dugu, eta kode hau idatziko dugu

    1=

    >E;F

    class (ai'oMundua)public static oid main$String - args&)System.out.println$"(ai'oMundua "&233

    it'ategiak klasearen izen bera eduki behar du2 beraz, /(ai'oMundua.ja a izenarekin gordekodugu. Kire kasuan, disko gogorreko proba direktorioan2 hau da, "5 BprobaB(ai'oMundua.ja a".

    10

  • 7/24/2019 Java Apunteak Eta Ariketak

    11/168

    Crograma konpilatzeko, hau egingo dugu

    javac Kai oMundua.java

    #orrek (ai'oMundua.class fit'ategia sortzen du $!a aren makina birtualak ulertzen duena&.

    11

  • 7/24/2019 Java Apunteak Eta Ariketak

    12/168

    (onpilatu dugun kodea e'ekutatzeko, hau idatziko dugu kontsolan

    ja a (ai'oMundua $ez da fit'ategi4luzapenik jartzen&.

    1.2. IDENTIFIKADOREAK ETA ALDAGAIAK

    Crograma batek datuak erabiltzen ditu hainbat lan egiteko kalkuluak egiteko, datuokinprimagailu edo pantaila bidez aurkeztu edo erabiltzaileari eskatzeko, diskan gordetzeko, etab.5atu horiek, erabili ahal izateko moduan egon daitezen, programak aldagaietan gordetzen ditu.Ildagaia Grdenagailuaren memoriaren zati batean gordetzen den datua, behar deneanprograman erabili ahal izateko.Ildagai bat propietatek definitzen dute

    1. @zenak

    =. 5atu motak

    . Gnartzen dituen balioen heinak

    Ildagaiari ematen zaion izenari identifikad !e esaten zaio.

    12

  • 7/24/2019 Java Apunteak Eta Ariketak

    13/168

    1.2.1. IDENTI#IKADOREAK

    !a an, identifikad !ea programatzaileak programa baten aldagai, konstante, klase, metodo edopaketeei ematen dien izena da. @dentifikadoreak honako ezaugarri hauek bete behar ditu

    4 Lehen karakterea letra bat, azpimarra karakterea, D, edo dolar karakterea, , izan behar da.

    4 #urrengo karaktereak letrak edo zenbakiak izan behar dira.

    4 7zin da programazio4hizkuntzaren hitz erreserbaturik erabili.

    !a ak maiuskulen eta minuskulen artean bereizten du, eta hori kontuan hartu behar daidentifikadoreak sortu eta erabiltzean.

    Kahiz eta araurik ez egon, emango zaien erabileraren arabera, egon badago mundu osoanonartzen den hitzarmen bat identifikadoreak izendatzeko

    Identifikad !ea "it#a!$ena Adibidea

    Ildagaiaren izena Minuskulaz hasten dira. #itzbatez baino gehiagozosatuta badago, elkarrenondoan eta maiuskulazhasita doaz gainerako hitzak.

    batuketa, ikasle(opurua

    (onstantearen izena 5ena maiuskulatan. #itzakbehe4marraz banatzen dira

    C@, NIMI@KIDMIO

    (lasearen izena Maiuskulaz hasten dira Certsona, (arratua

    Metodoaren izena Minuskulaz hasten dira aldatuDJalioa,abiaduraD7skuratu

    13

  • 7/24/2019 Java Apunteak Eta Ariketak

    14/168

    1.2.2. $ITZ ERRE%ERBATUAK

    Crogramazio4hizkuntzan erabiltzeko erreserbatzen dira eta, beraz, ezin dira identifikadoremodura erabili.

    !a an, hitz hauek daude erreserbatuta

    1.2.3. A&DAGAI MOTAK.

    Crograma batean, hainbat aldagai mota aurki ditzakegu gordetzen duten datu motarenaraberakoak, beren balioa programan zehar aldatu edo berdin mantentzearen araberakoakP!a an, aldagai mota hauek bereiz daitezke

    a& Ginarrizko datu motak gordetzen dituzten aldagaiak eta erreferentzia4aldagaiak Ildagai bihauek gordetzen dituzten datuen moten arabera sailkatzen dira. b& Ildagarriak eta konstanteak

    Ildagarria. 5atuak gordetzeko erabiltzen da. 5atuaren balioa hainbat alditan alda daitekeprograma e'ekutatzen den bitartean.(onstanteak edo aldagai finalak. @zenak berak dioenez, hauen balioa ez da aldatzen, jakina,programa e'ekutatzen den bitartean.

    c& Ildagai klasekideak eta aldagai lokalak, programan sortzen diren tokiaren arabera.

    14

  • 7/24/2019 Java Apunteak Eta Ariketak

    15/168

    Ildagai klasekideak (lase jakin baten barruan sortzen diren aldagaiak dira, baina metodoetatikkanpo.

    Ildagai lokalak Metodo edo beste kode4bloke baten barruan sortu eta erabiltzen direnak.

    Metodo edo kode4blokea amaitzean, aldagaia desagertu egiten da.

    ADIBIDEA

    public class AldagaiAdibidea{

    final double PI = 3.1415927; // PI kons an ea dain ! // ! AldagaiAdibidea klasea"en

    //aldagai klasekidea da

    in esku"a u# $in !%{ // ! pa"a&e "o ba da

    in balio'a(a""a = (is.!; // balio'a(a""a aldagai//lokala da

    "e u"n balio'a(a""a;)

    )

    Ildagai hauek dituen klase bat sortu dugu %I& A'da(ai fina'a ed k n)tantea . Jalio finkoa du2 beraz, ez da haren balioa aldatuko programaosoan zehar. *& A'da(ai k'a)ekidea. IldagaiIdibidea izeneko klasearen barruan dago eta gordetzen dituendatuak int motakoak dira. #ainbat balio har ditzake programan zehar, normalean klase bereansortutako beste metodo baten bidez.

    ba'i +a,a!!a& A'da(ai ' ka'a. Ildagai hau lokala da, eskuratuO metodoaren barruan sortutadagoelako. Metodo horretatik kanpo, aldagaia ez da e'istitzen.

    15

  • 7/24/2019 Java Apunteak Eta Ariketak

    16/168

    1.3. ATU MOTAK

    !a an, edozein daturi $konstantea, aldagaia ala adierazpena& datu mota bat dagokio.5atu motak datuak zer4nolako balioak har ditzakeen mugatzen du, baita datu horiekin zer

    eratako eragiketak egin daitezkeen ere. 5atu4motek ahalbidetzen dute interprete edokonpilatzaileek aldez aurretik jakitea aldagai edo konstante batek zer motatako informazioagordetzen duen.Iurrerago ikusiko dugunez, !a ak datu moten artean (GKJ76NS@GI egitea onartzen du.5atu motak, !a an, 2 kate( !iatan sailkatzen dira

    Oina!!i#k ak . 5atu mota hauek gordetzen dituzten aldagaiek balio sinpleak hartzen dituzte.Idibidez, zenbaki bat edo karaktere bat.

    E!!efe!ent#ia#k ak. 5atu mota hauetan gordetako aldagaiek ez dute gordetzen zuzenean

    balioa edo balio multzoa. Memoria4helbide bat gordetzen dute, eta helbide horrek adierazitakogunean dago balioa. #orrelakoak dira beste atal batean ikusiko ditugun array, klase edointerfazeak.

    16

  • 7/24/2019 Java Apunteak Eta Ariketak

    17/168

    1.3.1. OINARRIZKO DATU MOTAK I

    Qenbakiak, karaktereak edo balio logikoak $boolearrak& gordetzeko erabiltzen dira. Javan- dat$ ta ,a ek e# di!a b/ekt ak.

    Dat $ taAdie!a#itakinf !$a#i a

    "eina A#a'0ena

    byte Qenbaki osoak 4 1=: 444444 R1=F: bit erabiltzen diradatua gordetzeko

    short Qenbaki osoak 4 =F;: 444444 R =F;F1; bit erabiltzen diradatua gordetzeko

    int Qenbaki osoak 4 =1>F>: ;>: 444444R=1>F>: ;>F

    = bit erabiltzen diradatua gordetzeko

    long Qenbaki osoak 4 9== F=0 ;:E>FFE:0:444444 R9== F=0 ;:E>FFE:0F

    ;> bit erabiltzen diradatua gordetzeko

    char K@AG57 karaktereak 0 444444 ;EE EQenbakiak K@AG57bidez adieraztekoerabiltzen da.

    float (oma mugikorrekodatuak$ = bit&

    F digituko zehaztasunagut'i gorabehera.

    Jit 1 zeinurako, 11 bitberretzailerako eta =>mantisarako.

    double(oma mugikorrekodatuak$;> bit&

    1; digitukozehaztasuna gut'igorabehera.

    Jit 1 zeinurako, 11 bitberretzailerako eta E=mantisarako.

    boolean Jalio logikoak true*falseIdierazpen boolearbat egia $true& edofaltsua $false& denadierazteko erabiltzenda.

    17

  • 7/24/2019 Java Apunteak Eta Ariketak

    18/168

    ADIBIDEA

    public class Idibidea )public static oid main$String - args& )

    **aldagaiak deklaratubyte hil T 1=2int kontagailua T 02double pi T .1>1E9=;E E:9F9 = :>;=;> : =F9E2float interesa T >.=Ee= 2char letra T UQU2boolean aurkituta T true2**balioak inprimatuSystem.out.println$hil&2 **1= inprimatuko duSystem.out.println$kontagailua&2 **0 inprimatuko duSystem.out.println$pi&2 ** .1>1E9=;E E:9F9 inprimatuko duSystem.out.println$interesa&2 **>=E.0 inprimatuko du

    System.out.println$letra&2 **Q inprimatuko duSystem.out.println$aurkituta&2 **true inprimatuko du

    33

    (ontuan izan behar dugu !a a konpilatzaileak ,a! datu mota zenbakizkotzat hartzen duela.#orren azalpena erraza da ez du gordetzen karaktere bat, zenbaki bat baizik, karakterebakoitzari K@AG57 kodean dagokion zenbakia hain zuzen.Jestalde, oso garrantzitsua da egoki aukeratzea zein datu mota erabiliko dugun. #orretarako,kontuan hartu beharko dugu zer informazio $zenbakiak, testua...& gorde nahi dugun, eta hartu

    ditzakeen balioen heina ere bai. Irrazoi horrengatik, batzuetan, agian, zenbaki errealakgordetzeko erabiltzen den datu mota erabili beharko dugu, nahiz eta zenbaki osoekin lan egin.7sate baterako, int mota erabilita ezin da lurraren populazioa adierazi, har dezakeen baliorikaltuena =.1>F.>: .;>F baita $ = bit birako osagarrian&. Lurraren populazioa F.000 milioibiztanlekoa da, beraz, ' n( motako datua erabili beharko dugu, gut'ienez.

    18

  • 7/24/2019 Java Apunteak Eta Ariketak

    19/168

    1.3.2. OINARRIZKO DATU MOTAK II

    5atu mota errealak zenbaki errealak adierazteko erabiltzen dira. !a an, = daude f' at $ = bit&eta d b'e $;> bit&. Jit gehiago erabilita, bi helburu hauek lortzen dira

    V Qenbaki handiagoak adierazteaV Qati hamartarra zehatzagoa izatea

    Java!pro"ramat#aile "ehienek double datu mota erabilt#en dute. $orrela e"inda, "ut ia"otue"iten dira #enbaki hamartarrak biribilt#ean %ort#en diren erroreak.

    1.3.3. A&DAGAI ETA KON%TANTEAK DEK&ARATZEA ETA$A%IERATZEA

    5agoeneko, badakigu zer diren aldagaiak eta konstanteak. Jaina hori ez da nahikoa, eta, parebat galdera etortzen zaizkigu burura Kola sortzen dira aldagaiak programa bateanW Qer eginbehar da programa batean aldagaiak erabili ahal izatekoWCrograma batean aldagaiak erabili ahal izateko, aldagaiak berak sortu behar dira lehendabiziizen bat eman eta zer informazio mota gordeko duten adierazi2 hau da, a'da(aia dek'a!at .

    #ona hemen adibide bat

    int ika)'eK 0 1 ;d b'e !adi 3.14- ( #ti!a 152.6 ;

    Iurreko adibidean, aldagai deklaratu dituguika%leKop int motakoa, eta radio eta "u#tira d b'e motakoak. @kusten denez, bi aldagai datumota berekoak direnean, aski da behin bakarrik adierazita eta bi aldagaiak koma baten bidezbanatuta. eta 10=.9E hasierako balioak emanda, hurrenez hurren.

    Ildagaia, aldaketarik jasango ez badu programa osoan zehar, k n)tante bezala deklaratuko

    dugu. (onstanteak final hitz erreserbatua erabilita deklaratzen dirafina' d b'e %I 3.141 627 37;

    Qer gertatzen da aldagai bat hasieratzen ez baduguW Ildagai motaren arabera, bi gauza gertalitezke

    V Ildagai4klasekideak automatikoki hasieratzen dira baliorik ematen ez badiegu4 zenbakizkoak 0 batekin.4char motakoak n '' moduan.4 boolearrak fa')e moduan.

    4 7rreferentziak n '' moduan.

    19

  • 7/24/2019 Java Apunteak Eta Ariketak

    20/168

    V Ildagai lokalak ez dira automatikoki hasieratzen. #urrengo adibidean, 0 izeneko

    aldagaia deklaratzen da, baina hasieratu gabe.

  • 7/24/2019 Java Apunteak Eta Ariketak

    21/168

    1.!. ERAGILEAK ETA A IERA"PENAK7ragileek hainbat ariketa egiten dituzte datuekin edo eragingaiekin. 7rabilitako eragingaienarabera, adierazpenak batarrak, bitarrak edo hirutarrak izan daitezke.

    1.'.1. ERAGI&E ARITMETIKOAK

    7ragile aritmetikoek, eragingaiak konbinatuz, adierazpen aritmetikoak osatzen dituzte.

    Eragilea Eragiketa Javan Adierazpena Javan Emaitza

    R Jatuketa 1.= R 9. 10.E

    4 (enketa 1=.E X 1=. 00.=

    + Jiderketa 1.F + 1.= =.0>

    * Qatiketa 0.E * 0.= =.E

    Y #ondarra =E Y 1

    21

  • 7/24/2019 Java Apunteak Eta Ariketak

    22/168

    1.'.2. E%&EIPEN ERAGI&EAK

    7sleipen4eragileen funtzioa programak aldagai bati balioa ematea da. 7sleipen4eragilerikerabiliena T da. !a ak beste esleipen4eragile batzuk ere eskaintzen ditu.

    Eragilea Adibidea Javan Adierazpen baliokidea

    RT op1 RT op= op1 T op1Rop=

    4T op1 4T op= op1 T op14op=

    +T op1 +T op= op1 T op1+op=

    *T op1*T op= op1 T op1*op=

    YT op1 YT op= op1 T op1Yop=

    T op1 T op= op1 T op=

    1.'.3. BA&DINTZAZKO ERAGI&EA ()*"

    Jaldintza bat ebaluatzen du eta emaitza bat itzultzen du, baldintza hori egia ala gezurra denikusita. 7ragile hirutar bakarra da2 hau da, eragingai behar ditu adierazpen bat sortzeko.Lehen eragingaia galdera ikurraren ezker aldean kokatzen da, eta adierazpen boolearra izanbehar du $baldintza&.

    Jigarren eragingaia galdera ikurraren eta bi puntuen artean kokatzen da2 eta baldintza egiabada, eragileak bigarren eragingai horren balioa itzultzen du emaitza moduan.#irugarren eragingaia bi puntuen atzean kokatzen da2 eta baldintza gezurra bada, hirugarreneragingai horren balioa itzultzen du eragileak emaitza moduan.Jaldintza W 7maitza egia emaitza gezurra

    Idibidez$'Hy& W ' y

    (asu honetan, lehenengo, aldagaia y aldagaia baino handiagoa den ebaluatzen da. #ala bada,

    eragileak aldagairen balioa itzuliko du2 bestela, y aldagaiarena.

    22

  • 7/24/2019 Java Apunteak Eta Ariketak

    23/168

    7gia esateko, eragile hau ez da askorik erabiltzen. Kormalean, hurrengo atalean ikusiko dugun,if..then..else sententzia erabiltzen da.

    1.'.'. ER&AZIOZKO ERAGI&EAK

    7rlaziozko eragileak mota sinpleko datuak konparatzeko erabiltzen dira. Idierazpen hauenemaitza boolear motakoa izango da beti true ala &al%e.

    E!a(i'ea Adibidea Javan E)ana,ia

    Z I Z J I t'ikiagoa da J baino

    H I H J I handiagoa da J baino

    ZT I ZT J I t'ikiagoa da J bainoedo berdina

    HT I HT J I handiagoa da J bainoedo berdina

    T I T J I eta J desberdinak

    T T I T T J I eta J berdinak

    23

  • 7/24/2019 Java Apunteak Eta Ariketak

    24/168

    1.'.+. ERAGI&E &OGIKOAK

    E!a(i'ea AdibideaJavan

    E)ana,ia

    I Kot I. 7ragingaia N6 7 bada, emaitza ILS7 da2 eta eragingaiaILS7 bada, emaitza N6 7 da.

    [ I[J I IK5 J. Ji eragingaiak N6 7 badira, emaitza N6 7 da. Jestela,emaitza ILS7 da.

    \ I\J I G6 J. Ji eragingaiak ILS7 badira, emaitza ILS7 da. Jestela,emaitza N6 7 da.

    ] I OG6 J. 7ragingai bat N6 7 bada eta bestea ILS7 bada,emaitza N6 7 da. Jestela, emaitza ILS7 da.

    [[ I[[J I[J bezalakoa, baina lehenengo eragingaia ILS7 bada, ez dubigarrena balioztatzen.

    \\ I\J bezalakoa, baina lehenengo eragingaia N6 7 bada, ez dubigarrena balioztatzen.

    24

  • 7/24/2019 Java Apunteak Eta Ariketak

    25/168

    1.'.,. BIT ERAGI&EAK

    E!a(i'ea AdibideaJavan

    E)ana,ia

    \ I \ J G6 eragiketa

    [ I [ J IK5 eragiketa

    ] I ] J OG6 eragiketa

    ZZ I ZZ J I ren bit ak ezkerrera mugitzen ditu, J balioak esaten duenadina posizio. 7skuinetik zeroak jartzen ditu mugitutako balioentokian.

    HH I HH J I ren bit ak eskuinera mugitzen ditu, J balioak esaten duenadina posizio. 7zkerretik zeinuaren bit a jartzen du mugitutakobalioen tokian.

    HHH I HHH J I ren bit ak eskuinera mugitzen ditu, J balioak esaten duenadina posizio. 7zkerretik zeroak jartzen ditu mugitutako balioentokian.

    25

  • 7/24/2019 Java Apunteak Eta Ariketak

    26/168

    1.'.-. ERAGI&E UNITARIOAK

    E!a(i'ea AdibideaJavan

    E)ana,ia

    ^ ^I I4ren baterako osagarria

    4 4I 7ragingaiaren zeinu aldaketa

    44 I44 I gut'itzea

    RR IRR I4ren gehikuntza

    I I4ren ezberdina.

    26

  • 7/24/2019 Java Apunteak Eta Ariketak

    27/168

    1.#. ERAGILEEN $IERARKIA

    7ragileen hierarkiak hau adierazten digu 7ragiketak zein ordenatan egin behar diren hainbatmotatako eragileak daudenean.

    !a ako arauak aljebrako ohiko arau berberak dira. Idibidez4 Lehenik eta behin biderketa, zatiketa eta hondarra ebaluatzen dira. Idierazpen batean, erahorietako hainbat eragiketa badago, ezkerretik eskuinera ebaluatuko dira.4 Jatuketa eta kenketa aurrekoen atzetik ebaluatzen dira. Idierazpen batean, hainbat batuketaeta kenketa badago, ezkerretik eskuinera ebaluatuko dira.Idierazpen bat ebaluatzeko, aintzat hartu behar dira eragingaien elkartze4propietateak.7lkartze4propietateak zera esaten digu lehentasun beraren aurrean, zein eragingai ebaluatzenden lehenen. 7sleipen4eragileak, baldintzazko eragilea, eragile inkrementalak $RR,44& etakasting4a eskuinetik elkartzen dira.

  • 7/24/2019 Java Apunteak Eta Ariketak

    28/168

    7ragileak lehentasunaren arabera antolatzen dira, handiena duenetik t'ikiena duenera

    28

  • 7/24/2019 Java Apunteak Eta Ariketak

    29/168

    1.%. ATU-MOTEN ARTEKO &I$URKETA '(AST)

    Centsatu bi zenbakiren arteko zatiketa egin nahi dugula. @zango ote du zenbaki hamartarrikzatiketa horren emaitzakW Jaietz pentsatuko dugu zatikizuna zatitzailearen multiploa baldin ez

    bada. 7ta mundu errealean hala da2 baina informatikoan ez dago zertan horrela izan. !a an,zatikizuna eta zatitzailea zenbaki osoak badira, zatidura ere zenbaki osoa izango da2 hau da,zenbaki hamartarrik gabea, besterik esan ezean.7maitzak zenbaki hamartarrak izan ditzan, datu motaren bihurketa bat egin beharra dago2 hauda, emaitza guk nahi dugun motakoa izan dadin, datu moten bihurketa egiten da.Ji bihurketa mota daude

    1. Be!e,a'ak bi, !ketak& Jerehalako bihurketa deritzo datu mota bateko aldagai bati bitgut'iagoko beste datu mota bateko balio bat esleitzea. Idibidez, double motako aldagaibati &loat motako balio bat esleitzen zaionean, balio hori double datu motara bihurtzen da

    programatzaileak ezer egin gabe.

    =. Bi, !keta e)0'i#it ak& Crogramatzaileak espresuki egiten du bihurketa :a)t e!a(i'ea erabilita. Aast eragilea batarra da. Jihurtu nahi den datuaren aurrean kokatzen da, datumota parentesi artean jarrita. Aast eragilearen lehentasuna eragile batarrena da, etaezkerretik eskuinera elkartzen da.

    IdibideakGkerraint a;b te b;a 12;b a; 99 e!! !ea- e# da( bai$end ta b

  • 7/24/2019 Java Apunteak Eta Ariketak

    30/168

    1.*. IRU"KINAK

    @ruzkinak oso garrantzitsuak dira programa batek zer egiten duen deskribatzeko,unitatean zehar erabili izan ditugun adibideetan idatzi dugun kodea hobetoulertzeko. Kormalean, programak iruzkin4lerro batzuekin hasten dira. Lerrohorietan, programak zer egiten duen, nork idatzi duen eta azken aldaketaren dataidatzi ohi dira.

    !a an, honako iruzkin mota hauek aurki ditzakegu

    Lerro bateko iruzkinak ** mugatzailea erabiltzen da

    ** lerro bateko iruzkina

    #ainbat lerrotako iruzkinak *+ paragrafoaren hasieran eta +* paragrafoarenamaieran.

    *+ hau hainbat lerrotakoiruzkin bat da +*

    !a adoc iruzkinak *++ eta +* mugatzaileak erabiltzen ditu. 5okumentazioautomatikoa sortzeko erabiltzen dira, ja adoc programaren bidez.

    30

  • 7/24/2019 Java Apunteak Eta Ariketak

    31/168

    1.+. S(ANNER KLASEA

    Grain arte ikusi ditugun adibideetan, aldagaiak sortu egin ditugu eta baliorenbatekin hasieratu ditugu. Modu hori ez da desegokia adibideak ikusteko2 baina,gure programetan, erabiltzaileak sartuko ditu balio horiek normalean. (asuhorretan, erabiltzaileak parte hartzea nahi dugunez, 'canner klasea erabildezakegu.

    Graindik ez dakigu klaseak eta paketeak zer diren. #orrek ez gaitu arduratu behar'canner klasea teklatu bidez sartutako datuak irakurtzeko erabiltzen da, eta erabiliahal izateko pakete bat inportatu behar da.

    Crograma batean, 'canner klasea erabiltzeko beharrezkoak diren urratsak hauekdira

    1. %aketea in0 !tat

    'canner klasea /ava. ti' paketearen barruan dago2 beraz, programarenhasieran hau idatziko dugu

    i$0 !t /ava. ti'.? anne!;

    2. ? anne! b/ekt bat ) !t

    'canner objektu bat sortu eta sarrerako gailuarekin erlazionatu behar dugu.Sarrerako gailua teklatua bada, hau idatziko dugu

    ? anne! ) ne@ ? anne!=? )te$.in>;

    7gin dugunarekin %c objektua sortu dugu, eta teklatuarekin erlazionatuta dago$System.in).

    #emendik aurrera, programak irakurri ditzake teklatu bidez sartutako datuak.I!ak !keta adibideak&

    5atuak irakurtzeko erabiliko dugun metodoa hau izango da ne'tO''$&. O''4k datumota adierazten digu ne't@nt$&, ne't5ouble$&...

    Tek'at bide# )a!t tak #enbaki ) bat i!ak !t#ea&

    int n2 ** n aldagaia sortuko dugu

    31

  • 7/24/2019 Java Apunteak Eta Ariketak

    32/168

    System.out.print$"sartu zenbaki oso bat "&2 ** pantailan mezu bat aterako dugun T sc.ne't@nt$&2 ** erabiltzaileak sartutako datua n aldagaian gordeko dugu.

    Tek'at bide# )a!t tak #enbaki e!!ea' bat i!ak !t#ea&

    double '2 ** ' aldagaia sortuko duguSystem.out.print$"Sartu zenbaki erreal bat "&2 ** pantailan mezu bat aterako dugu' T sc.ne't5ouble$&2 erabiltzaileak sartutako datua n aldagaian gordeko dugu.

    Tek'at bide# )a!t tak ka!akte!e

  • 7/24/2019 Java Apunteak Eta Ariketak

    33/168

    N 'a f nt#i nat#en d Java ? anne! k'a)eak

    Neklatu bidez karaktereak sartzen direnean, 'canner objektuak osorik hartzen du

    sartutako katea eta osagaitan zatitzen du token!ak.

    Noken4ak banatzen dituen karakterea zuriunea da.

    Nestu hau sartzen badugu

    #au adibidea da. 5atuak irakurtzea.

    Scanner objektuak katea zatituko du, eta token hauek sortuko

    #auadibidea

    da.5atuakirakurtzea.

    5agoeneko ikusi dugu ne'tO''$& metodoa. 'canner klaseak beste metodo batzukere eskaintzen dizkigu. 7rabilienetako batzuk taulan daude

    et d a E)ana,ia

    ne'tOOO$& Gsteko tokena itzultzen du oinarrizko datu mota moduan.

    ''' datu mota da. Idibidez, ne't@nt$& zenbaki oso batirakurtzeko, ne't5ouble double bat irakurtzeko, etab.

    ne't$& #urrengo tokena itzultzen du String moduan.

    ne'tLine$& Lerro osoa itzultzen du String moduan. @ntro karaktereagarbitzen du.

    hasKe't$& Joolear bat itzultzen du. @rakurtzeko beste tokenik geratzenden ala ez adierazten du.

    hasKe'tOOO Joolear bat itzultzen du. @rakurtzeko beste tokenik geratzenden ala ez adierazten du, baina datu mota jakin batekoa.Idibidez hasKe't5ouble$&

    K nt # ibi't#ek

    Crograma batean zenbakiak eta testua irakurtzen direnean, kontuan eduki behardugu batzuen eta besteen artean intro tekla sakatzen dugula eta intro horibufferrean geratzen dela.

    33

  • 7/24/2019 Java Apunteak Eta Ariketak

    34/168

    Adibidea&

    Sarrerako bufferra, E bat sartu ondoren EBn

    Gndorengo instrukzioa

    n T sc.ne't@nt$&2

    n4k E balio du, baina intro 4a bufferrean geratu da.

    Sarrerako bufferra, zenbaki osoa irakurri ondoren Bn

    Grain String bat sartzeko eskatuko dugu

    System.out.print$"Sartu zure izena "&2

    izena T sc.ne'tLine$&2 **String bat irakurtzea

    ne'tLine$& metodoak karaktere guztiak itzultzen ditu intro batera heldu arte, etagero, ezabatu egiten du bufferretik intro hori.

    Iztertzen ari garen kasuan, i#ena aldagaiari kate hutsa esleituko genioke eta intro a

    garbituko luke. #ori eginda, programa geldirik geratuko litzateke.

    (onponbidea

    Jufferra garbitu egin behar da String datuak irakurri behar baditugu zenbakizkodatuak irakurri ondoren.

    Jufferra garbitzeko erarik errazena

    sc.ne'tLine$&2

    34

  • 7/24/2019 Java Apunteak Eta Ariketak

    35/168

    A ERANSKINA: NOLA ERA&ILI E(LIPSE JUNO

    7clipsek funtzionatzeko gure ordenagailuan egon behar du, baina ez dago instalatubeharrik2 izan ere, portablea da.

  • 7/24/2019 Java Apunteak Eta Ariketak

    36/168

    7clipse.e'e zabalduko dugu, eta programa abiatuko da. 7clipserekin programatutakoproiektuak Work%pace izeneko karpeta batean gordeko dira, eta beraz, programakwork%pace4ren helbidea eskatuko digu. (arpeta horrek ez dauka eclipseren beraren barruan

    egon beharrik.Kahi dugun karpeta aukeratu, eta onartu egingo dugu.

    Crogramaren hasierako pantaila honelakoa da

    36

  • 7/24/2019 Java Apunteak Eta Ariketak

    37/168

    #asi gaitezen lehen !a a proiektua sortzen. #orretarako, File -> e! -> Java "ro#ect aukeratu,eta "ro#ect ame aukeran proiektuaren izena idatziko dugu .

  • 7/24/2019 Java Apunteak Eta Ariketak

    38/168

    #asteko, Finis$ aukeratuko dugu, eta aukera gehiago aldatu behar izanez gero, e%t botoia sakatuko genuke . 7zkerreko aldean, karpeta bat agertuko da.

  • 7/24/2019 Java Apunteak Eta Ariketak

    39/168

    )! karpeta aukeratuta, eskuineko botoia sakatuko dugu edo File menua aukeratu, etagero, e! -> &lass . Jeste aukera bat da biribil berde baten barruan : bat eta bat ketaik ! bat dauzkan botoia sakatzea.

    39

  • 7/24/2019 Java Apunteak Eta Ariketak

    40/168

    Igertzen den elkarrizketa4koadroan, klasearen izena jarriko dugu. (omeni da azken aukerakmarkatuta egotea, 'constructors from superclass( izan ezik.

    (lasea sortutakoan, hau agertuko zaigu

    40

  • 7/24/2019 Java Apunteak Eta Ariketak

    41/168

    Imaitzeko, froga t'iki bat egingo dugu main $e'ekutatzen den metodoa& metodoarenbarruan testu hau idatziko dugu ? )te$. t.0!int'n=CKai* nd a>;

    41

  • 7/24/2019 Java Apunteak Eta Ariketak

    42/168

    C"lay ikonoa sakatu, eta idatzi dugun kodea e'ekutatuko da. (onpilazio4errorerikbalego, kodea ez litzateke e'ekutatuko eta errore mezua aterako litzateke.

    C&onsole fit'an, aurreko programak bistaratu behar duen mezua agertuko da. it'a ezbalitz ikusiko, aukeratu indo!s -> S$o! *ie! -> &onsole .

    42

  • 7/24/2019 Java Apunteak Eta Ariketak

    43/168

    (odea idatzi ahala, erroreak edo abisuak $ !arning & ager daitezke. 7rroreak gorrizazpimarratuta agertuko dira, eta abisuak, horiz. Crograman errorerik badago, ezin izangodugu hura e'ekutatu2 abisuekin, ordea, bai.

    7rroreak eta abisuak C"roblems fit'an agertuko dira.Croiektuak ezabatzeko hau egin behar da Iurrena, ezabatu nahi ditugun proiektuakaukeratu behar ditugu, eta gero, supr botoia sakatu.

  • 7/24/2019 Java Apunteak Eta Ariketak

    44/168

    Jestalde, 7clipsek aukera ematen digu fit'ategiak kopiatzeko proiektu batetik bestebatera, fit'ategiak arrastatuta.

    @nportatu eta esportatu kontzeptuak garrantzitsuak dira. 7gindako zenbait proiektu besteleku batetara eramateko, esportatu egingo ditugu. #ori egiteko, File menuan klikatu, etaE%port -> +eneral -> Arc$ive File eta e%t b t ian klikatuta, nahi ditugun proiektuakaukeratuko ditugu. / ,o arc$ive file aukeran hautatuko dugu proiektuak zein karpetatangorde.

    Finis$ aukeratu, eta esportatu egingo da.

    7sportazioaren kontrakoa inportazioa da. #ori egiteko, File -> import -> E%isting "ro#ectsinto orkspace aukeratuko dugu, eta agertuko den pantailan, Select arc$ive file.

    Jehin Finis$ aukeratuta - 0! iekt ak ( !e !orkspace ren barruan izango ditugu .

    44

  • 7/24/2019 Java Apunteak Eta Ariketak

    45/168

    & ERANSKINA: ARIKETAK

    ARIKETA ERRAZAK

    1. @dentifikatu programa honen atalak

    package perimetroa2*+ zirkulu baten perimetroa kalkulatzen duen programa+**++

    ++ _author Idministradorea+*public class Main )public static oid main$String - args& )double erradioT=,emaitza2final double C@T .1>1;2 emaitzaT=+C@+erradio2 System.out.println$"7maitza "R emaitza&233

    =. Qer emaitza lortzen da programa zati hau e'ekutatutaW

    int aT ,bT=2System.out.println$/Jatuketa /RaR R RbR /RaRb&2

    . aT10 eta bT int motako aldagaiak dira. I1T1=.E eta b1T=.0 d b'e motako alda"aiakdira.

    Qeintzuk emaitza lortuko ditugu eragiketa hauek egindaW

    a( a)bb( a*bd( a+)b+e( a+*b+

    &( a+)b"( a+*b

    45

    mailto:@authormailto:@author
  • 7/24/2019 Java Apunteak Eta Ariketak

    46/168

    ZAI&TA%UN ERTAINEKO ARIKETAK

    1. 7gin ezazu programa bat !a an. Crogramak zenbakizko > aldagai deklaratuko etahasieratuko ditu. zenbakien arteko batuketa.b& Lehenengo zenbakia bider 10.000.c& Jigarren zenbakia zati hiru eginda lortzen den zatidura, hamartar eta guzti.d& #irugarrenaren eta laugarrenaren arteko zatiketaren zatiduraren zati osoa.e& Lehenengoaren eta bigarrenaren arteko zatiketaren hondarra.

    =. 7gin aurreko ariketa, baina oraingoan > zenbaki errealekin.

    . @datz ezazu hiru zenbaki osoren batez bestekoa kalkulatuko duen programa bat.

    >. @datz ezazu E cm4ko aldea duen karratu baten azalera eta perimetroa kalkulatukodituen programa bat.

    E. Janket'e batean, E000 euro sartu ditugu. Janket'e horrek urteko Y ;ko interesaordaintzen digu. @datz ezazu urte beteren buruan zenbat diru izango dugun kalkulatukoduen programa bat.

    ;. @datz ezazu radianetan emandako angelu bat graduetara pasatuko duen programa bat.$1:0 gradu T ` radian&. 7rabil ezazu ` konstante moduan.

    F. Crograma bat idatzi behar duzu. Crograma horrek kalkulatu beharko du zenbathandituko den 10.000 euroko inbertsio bat hiru urteren buruan, jakinda lehenengourtean Y 10eko interesa emango digutela, bigarren urtean E00 euro galduko ditugula etaY 1= handituko dela hirugarren urtean. 7rabil itzazu esleipen eragile bereziak.

    :. Crograma bat idatzi behar duzu. Crograma horrek Aelsius graduetara pasatuko ditu :;gradu arhenheit eta gradu Aelsius, berriz, arhenheit graduetara.

    46

  • 7/24/2019 Java Apunteak Eta Ariketak

    47/168

    ARIKETA ZAI&AK

    1. @kasle batek Crogramazio moduluan bere azken nota zein izango den jakin nahi du.Kota, ondorengo batez bestekoen arabera kalkulatzen daV #iru azterketa partzialen batez bestekoaren Y EEa.V Izken azterketan lortutako notaren Y 0a.V Izken lanean lortutako notaren Y 1Ea.7skatu itzazu beharrezkoak diren notak, erabiltzaileak teklatuaren bidez sar ditzan etaidatzi azken nota kalkulatuko duen programa.

    =. @rakasle batek talde bateko gizon eta emakumeen ehunekoa jakin nahi du. Naldehorretan emakume eta == gizon daude.

    . Gspitale batean hiru gune daude ginekologia, pediatria eta traumatologia.Gspitalearen urteko aurrekontua 1=0.000 eurokoa da, eta era honetan banatzen da

    G nea A !!ek nt a!en 0 !t#entaia0Nraumatologia Y 0Cediatria Y 0

    . Qenbatean saldu behar du produktu bat Y dendari batek 0eko onura jasotzekoW7rosketa4prezioa teklatu bidez sartu beharko du erabiltzaileak.

    E. Saltzaile batek irabazten duen soldata garbia kalkulatuko duen programa egiteaeskatzen da. #orretarako, kontutan hartu behar dira kontzeptu hauekV Soldata finkoa.V (omisioa Saldutakoaren Y EaV (ilometroak 7uro bat kilometro bakoitzekoV Jidaia4sariak ;0 euro bidaia4egun bakoitzekoV

  • 7/24/2019 Java Apunteak Eta Ariketak

    48/168

    F. @datz ezazu lehen mailako ekuazioak ebatziko dituen programa bat. 7kuazioarenkoefizienteak $(1 eta (=& teklatu bidez sartuko dira.

    K1* K2 5

    :. Jost zifrako zenbaki bat emanda $teklatu bidez sartuko du erabiltzaileak&, zenbakiazifratan deskonposatuko duen programa bat idatzi behar dugu. Idibidez, E 1= zenbakia jasota, pantailatik hau da aterako da E, , 1, =, .

    48

  • 7/24/2019 Java Apunteak Eta Ariketak

    49/168

    ,. GAIA: O&JEKTUEI "U"EN UTAKOPROGRAMA"IOA. O&JEKTUAK

    49

  • 7/24/2019 Java Apunteak Eta Ariketak

    50/168

    ,. 1. SARRERA

  • 7/24/2019 Java Apunteak Eta Ariketak

    51/168

    ,. ,. O&JEKTUEI "U"EN UTAKO PROGRAMA"IOARENOINARRIAK

    Crogramatzeko bi era bereizten dira

    Crogramazio egituratua untzioetan eta Crozeduretan oinarritzen da. untzio eta prozedura horiekdefinitzen dute zer ekintza egin behar diren, eta ekintza horiek osatzen dituzte programak.Gbjektuei zuzendutako programazioa Crogrametan objektuak dira garrantzitsuak, eta beste guztiahaien menpe dago.#asieran, programazio egituratua erabiltzen zen !atorrizko problema bat problema t'ikiagotandeskonposatzen zen oinarrizko problema sinpleetara heldu arte, problema sinple horiekkodifikatzen errazak direlako. 7sate baterako, lehen mailako ekuazio bat ebazteko, problemat'ikiagotan deskonposatzen dugu jatorrizko problema

    4 koefizienteen balioak eskatu.

    4 ezezagunaren balioa kalkulatu.4 emaitza erakutsi.

    Gbjektuei zuzendutako programazioak, ordea, beste teknika bat erabiltzen du programatzeko#atit eta i!aba#i. Neknika horrek ere errealitatea zati t'ikiagotan zatitzen du2 baina, ekintzatandeskonposatu beharrean, objektutan deskonposatzen du. #elburua da mundu erreala gureprogrametan islatzea. #orregatik, esaten da objektuei zuzendutako programazioak problemei eranaturalago batean aurre egiten diela.Gbjektuei zuzendutako programazioa erabiltzeko, elementu hauek hartu behar ditugu kontuanzein objektuk hartzen duten parte, zeintzuk diren objektu horien ezaugarri komunak, eta nolako

    ekintzak egin ditzaketen.Jehin ebatzi beharreko benetako problemari $problemaren espazioa& zein objektuk eragiten diotenidentifikatuta, programa informatikora $ebazpenaren espazioa& eraman behar ditugu.

    51

  • 7/24/2019 Java Apunteak Eta Ariketak

    52/168

    2.2.1. KONTZEPTUAK Gbjektuei zuzendutako programazioa ondo ulertzeko, haren eta programazio egituratuaren artekoezberdintasun garrantzitsu batzuk aipatuko dituguCrogramazio egituratuan sortutako programa datuz eta funtzio globalez osatzen da. Qer esan nahidugu global hitzarekin kasu honetanW Jada, datuak beti daudela erabilgarri programaren edozeinkode4atalek erabiltzeko.

    untzioak eta datuak zein bere aldetik zeuden programazio egituratuan, eta erabatindependenteak ziren batzuk besteetatik. #orrek bi arazo eragiten zituen

    4 7'ekutatuko zituen konputagailuaren arkitekturaren arabera sortu behar ziren programak.4 untzioak eta datuak banatuta zeudenez, datuak ikusgai zeuden programa osoan. #orrela,

    daturen batean aldaketaren bat egiteak funtzio guztiak aldatzea eragiten zuen.

    Gbjektuei zuzendutako programazioa, ordea, desberdina da. Gbjektuak erabiltzeak abstrakziopuntu handiagoa ahalbidetzen du. %! (!a$a#i e(it !at a!ekik de)be!dinta) n nagusiak hauekdira

    4 Crogramatzaileak objektuekin antolatzen du bere programa. Gbjektu horiek munduerrealaren irudi dira, eta hurbilago daude jendearen pentsatzeko eratik programazioegituratuko datuak eta funtzioak baino.

    4 5atuak, eta datu horiek erabiltzen dituzten funtzioak, objektu jakinen parte bat dira, etagainerako objektuek ezin dituzte funtzio eta datu horiek erabili. Jeraz, datuetan egitendiren aldaketek ez daukate eraginik programa osoan2 bakarrik eragiten diete objektuhorretarako definitu diren funtzioei.

    Gbjektuei zuzendutako programazioa erabilita idazten diren programa guztiak programazioegituratua erabilita ere idatz daitezke. #ala ere, erabiltzaile4interfaze grafikoak erabiltzen dituztenprogramak garatzeko, objektuei zuzendutako programazioak ematen du erraztasun gehien.

    52

  • 7/24/2019 Java Apunteak Eta Ariketak

    53/168

    2.2.2. ONURAK Grain arte ikusitakoaren arabera, objektu bat da ikusi edo hauteman dezakegun edozer. Gbjektueizuzendutako programazioaren funtsa objektuak eurak dira. Jaina zer onura ditu objektuakerabiltzeakW Jai. Jatez ere, problema errealitatetik hurbilago dagoen era batean planteatzea2baina, beste abantaila batzuk ere badaude

    < %! (!a$a 'e!t#ea Crogramaren kodea irakurrita, problema nola ebatzi eta konponbideazein izan daitekeen antzematen dugu, problemaren espazioko kontzeptuak programanbertan daudelako.

    < d 'a!itatea Gbjektu bakoitzaren definizioa art'ibo bakarrean dago. #orrek aplikazioakhobeto antolatuta egotea ahalbidetzen du.

    < E!!a#a( a $antent#ea 7kintzetan egindako aldaketak datuetan islatzen dira. #ori dela eta,askoz errazagoa da aplikazioak mantentzea. Jestalde, aplikazioak hobeto antolatutadaudenez, askoz errazagoa da aldatu edo zuzendu nahi dugun edozein elementu aurkitzea.

    < +i !ta) na N'ikiagoa da akatsak egoteko probabilitatea, objektu baten datuak zuzeneanaldatzea debekatuta dagoelako. 5atuak aldatzeko, objektu horren funtzioak erabili beharditugu. Idibidez, demagun Irropa

  • 7/24/2019 Java Apunteak Eta Ariketak

    54/168

    ditzakeen funtzioak erabiliko ditu $adibidez gidatu funtzioa&. #au da, Certsona klaseak Iutoklasea erabiltzen du, baina ez daki nola dagoen Iuto klasea barrutik eratuta eta antolatuta."ie!a!kia& (laseen artean eta objektuen artean sor daitezke hierarkiak. #ierarkia motagarrantzitsuena hau da< O! k !t#eaKNQ@I izenarekin ezagutzen da. (lase berri bat sortzea da, jadanik

    e'istitzen den beste klase bat oinarritzat hartuta. #orri herentzia sinplea esaten zaio, eta,!a an, herentzia mota hori erabiltzen da. Iniztun4herentzia, ordea, klase berria e'istitzendiren beste klase batzuk oinarritzat hartuta sortzea da, baina ez da erabiltzen !a an.

    Idibidez, @rakasle klasea sor dezakegu Certsona klasea oinarritzat hartuta. 7ra horretan,irakasleek dauzkaten ezaugarriak soilik definitu beharko ditugu.

    < % 'i$ !fi)$ a& (lase beretik abiatuta sortutako beste hainbat klasek eragiketa bera zeinekbere eran egitean datza. 7sate baterako, pentsa dezagun Inimalia klasea eta mintzatufuntzioa ditugula. Inimalia mota bakoitzak bere era dauka komunikatzeko t'akurrekzaunkaka, katuek miauka, pertsonak berbaz...

    54

  • 7/24/2019 Java Apunteak Eta Ariketak

    55/168

    ,.3. KLASEAK ETA O&JEKTUAK

    Soft8are4objektu bat mundu errealean e'istitzen den objektu baten adierazpena da. Gbjektuakezaugarri batzuk izango ditu, baita portaera jakin batzuk ere.

    Jaina, zer da, zehazki, objektu bat objektuei zuzendutako programazioaz ari gareneanWGbjektu bat datu multzo bat da, eta datu horiekin egin daitezkeen eragiketak. Gbjektuek egoerabat eta portaera bat daukate.Gbjektuek ezaugarri berezi batzuk dauzkate

    < Identitatea Ji objektu ezberdintzea ahalbidetzen duen ezaugarria da. Kahiz eta bi objektukatributu berdinak izan, objektuak ezberdinak izan daitezke. Idibidez, lantegi batetik ateradiren bi auto berdinak direla eman dezake, baina ezberdintzen dituen kode bat daukate.

    < E( e!a Gbjektu baten egoera bere atributuek dituzten balioek markatzen dute. Idibidez,autoa objektu bat badugu, markak, modeloak, koloreak... markatuko dute egoera.

    < % !tae!a Gbjektuaren gainean egin daitezkeen eragiketak dira. Jeste era batera esanda,

    objektuak erabili ditzakeen metodoak dira. Iutoaren adibidearekin jarraituta, hauek izanlitezke abiatu$&, gelditu$&, bizkortu$&, balaztatu$&...

    2.3.1. OBJEKTUEN PROPIETATEAK ETA METODOAK

    Gbjektu batek parte hauek ditu< At!ib t ak =%! 0ietateak> 5atuak gordetzen dituen objektuaren atala. Ildagai klasekidea

    ere esaten zaie. 5atu hauek oinarrizko datu motetakoak izan daitezke $boolean, char, int,double...& edo beste objektu mota batekoak. Idibidez, Iuto motako objektu batek

  • 7/24/2019 Java Apunteak Eta Ariketak

    56/168

    4 Gbjektuak suntsitzea, berriz behar ez direnean.

    2.3.3. K&A%EAK

    $et d a- programan, behin bakarrik jartzen da, k'a)e na( )ian . Metodo horretatikhasten da programa e'ekutatzen. Sortzen ari garen klasea ez bada klase nagusia, metodohori ez da agertuko.

    56

  • 7/24/2019 Java Apunteak Eta Ariketak

    57/168

    ,.!. O&JEKTUAK SORTU ERA&ILI ETA SUNTSITU

    (lase bat sortzen dugun unetik aurrera, objektuak sortu ditzakegu klase horretatik abiatuta.Gbjektu bat sortzen dugunean, / K'a)ea!en in)tant#ia bat sortu dugula esaten dugu. Craktikan,

    objektu hitzak eta klasearen instantzia esapideak oso4oso esanahi antzekoa dute.Ob/ekt ak k'a)eetatik abiat ta ) !t#en di!a- eta k'a)e , !ien banakak ka) ak di!a.Gbjektuaren eta klasearen arteko harremana ondo ulertzeko, irudikatu dezagun galletak egitekoerabiltzen den molde horietako bat. Moldea bera klasea izango litzateke eta objektuarenezaugarriak definituko lituzke forma, tamaina... Molde horrekin sortutako galletak objektuak edoinstantziak izango lirateke.5emagun Certsona klasea sortzen dugula. #aren atributuak izena, abizenak, altuera eta pisuaizango dira, eta egin ditzakeen ekintzak hazi, lo egin, jan... #ori eginda, programan, Langile izenekoobjektu bat sortu dezakegu Certsona klasean oinarrituta. Langile objektua Certsona klaseareninstantzia bat dela esango dugu, edo, Certsona klasea Langile objektuaren abstrakzioa dela ere bai.

    2.'.1. OBJEKTUEN BIZIA

    !a an, klase nagusi batetik abiatzen da edozein programa. (lase nagusi horrek main ) metodoadauka. main ) metodoak programaren gainerako klaseak erabiliko ditu, objektuak sortuko ditu etaobjektuei mezuak bidaliko dizkie.Gbjektuek bizi4ziklo bat daukate. Gbjektu bat programa batean beharrezkoa ez denean, zabor4biltzaileak suntsitu egiten du objektu hori, eta, era horretan, baliabideak askatzen dira.Gbjektu baten bizi4zikloan etapa hauek bereizi ditzakegu

    4? !t#ea Gbjektuak beharko duen memoria zatia harentzat gordetzen da eta hasieratuegiten dira objektuaren atributuak.

    4E!abi't#ea Gbjektuaren atributuekin eta metodoekin egiten da lan.4? nt)it#ea Gbjektua ezabatu egiten da eta erabiltzen zituen baliabideak askatu egiten dira.

    57

  • 7/24/2019 Java Apunteak Eta Ariketak

    58/168

    2.'.2. OBJEKTUAK DEK&ARATZEA ETA %ORTZEA

    Gbjektu bat sortzeko, urrats hauek eman behar dira

    4Dek'a!at#ea Gbjektu mota definitzea.4In)tant#iat#ea Gbjektua sortzea $ ne! eragilea erabilita&.

    Jaina nola egiten dira pauso horiekW Gbjektu bat deklaratzeko, hau egin behar da

    ZklaseaH objektuaren izena

    Jaina hori egitea ez da nahikoa objektua sortzeko. Ob/ekt a!en e!!efe!ent#ia sortu besterik ezdugu egin2 baina erreferentziaren balioa hutsik dago $ null balioa dauka&.Jehin erreferentzia sortuta daukagunean, erreferentzia horretan gordeko den instantzia edoobjektua sortu behar dugu. #orretarako, ne@ eragilea erabiliko dugu

    objektuaren izena T ne8 Zklaseko sortzaileaH$parametroak&

    5emagun N'oria izeneko klasea sortu dugula

    0 b'i 'a)) N'oria )** atributuak0!ivate String kolorea2 ** t'oriaren kolorea, letra batekin adierazita0!ivate int adina2 ** t'oriaren adina** klasearen metodoak0 b'i N'oria $String k, int a&)**sortzailea

    t,i) .kolorea T k2t,i) .adina T a2

    30 b'i v id setIdina $ int a&)** t'oriaren adinari, parametro bidez pasatzen zaion adina esleitzen dio.

    t,i) .adina T a230 b'i v id printIdina $&) ** t'oriaren adina pantailan bistaratzen du.

    System. out .println $ t,i) .adina&230 b'i v id setkolorea $String k&)

    ** t'oriaren koloreari, parametro bidez pasatzen zaion kolorea esleitzen dio.t,i) .kolorea T k2

    33

    58

  • 7/24/2019 Java Apunteak Eta Ariketak

    59/168

    Grain, programaren klase nagusia sortuko dugu 0 b'i 'a)) N'oriaKagusia )

    0 b'i )tati v id main$String - args& )N'oria t'12 ** t'1 objektuaren erreferentzia sortzen dugut'1 T ne@ N'oria$/beltza ,>&2** t'1 objektua sortzen dugu sortzailea

    **erabilitat'1.setIdina$;&2 **t'1 t'oriari adina aldatzen diogu setIdina metodoa erabilitat'1.printIdina$&2 **t'1 t'oriaren adina pantailan erakusten dugu

    33

    Gbjektuaren erreferentzia sortzea eta objektua bera sortzea. rrats bakar batean ere egin daiteke

    N'oria t'1 T ne@ N'oria$/beltza ,>&2

    2.'.3. OBJEKTUAK ERABI&TZEA.

    Gbjektuaren atributuak eta metodoak erabiltzeko, aurreko atalean ikusi dugunez, objektuarenizena jarriko dugu eta gero puntu bat $.&, eta horien atzean idatziko dugu erabili nahi dugunatributuaren edo metodoaren izena. #ori egitean, objektuari mezu bat bidaltzen diogula esatenda

    Idibidez

    t'1.setIdina$;&2

    2.'.'. OBJEKTUAK %UNT%ITZEA.

    Qabor4biltzailearen bidez, !a ak objektuak automatikoki suntsitzen ditu beharrezkoak ez direnean.#orrela, programatzailea ez da arduratu behar memoria kudeatzeaz.

    59

  • 7/24/2019 Java Apunteak Eta Ariketak

    60/168

    ,.#. METO OAK ERA&ILT"EA

    Metodoek, atributuekin batera, objektuen egitura osatzen dute. Metodoak era egokianerabiltzeko, ezinbestekoa da haiek ondo ulertzea.

    Metodoek, klaseek bezala, burua eta gorputza daukate.Juruan jarriko ditugu aldarazleak, metodoak itzultzen duen datu mota, metodoaren izena etametodo horrek jasotzen dituen parametroak.

  • 7/24/2019 Java Apunteak Eta Ariketak

    61/168

    2.+.1. PARAMETROAK ETA ITZU&ITAKO DATUAK

    Metodoak objektuaren atributuren baten kontsulta egiteko $getIdina& zein atributu horien balioaaldatzeko $setIdina& erabil daitezke. Gbjektuan kontsultatutako informazioa itzulera4balioaren$return & bidez eskuratzen da. Itributu baten balioa aldatu nahi denean, ordea, parametro4zerrendaren bidez egiten da2 metodoari behar dituen balioak parametro horien bitartez eskainita,alegia.Carametro zerrenda hori bi eratara deklaratu daiteke

    < Ba'i en bide#& Carametroetan egiten den edozein aldaketa baliorik gabe geratzen dametodoa bukatzean. Metodoari dei egiten zaionean, hark aldagaien kopia bat jasotzen du2beraz, egindako edozein aldaketa kopien gainean egiten da, ez jatorrizko aldagaien gainean.

    < E!!efe!ent#ien bide#& Metodoa amaitzean, parametroen gainean egindako aldaketek berehorretan irauten dute. (asu honetan, ez diogu kopiarik pasatzen metodoari. Casatzendioguna da aldagaiak memorian daukan helbidea. #ortaz, aldaketak aldagaiaren berarengainean gertatzen dira.

    !a an, parametro guztiak balioen bidez pasatzen dira metodoetara, objektuak $erreferentziak& izanezik.

    Metodoak deklaratzeko, bi baldintza hartu behar ditugu kontuan

    < et d batek beti it# 't#en d ba'i bat. Jalio horri itzulera4balio deitzen diogu. 5atumota sinplea izan daiteke, erreferentzia bat ala void. void!ek adierazten du metodoak ezer ezduela itzultzen

    public oid setIdina $int a&

    < et d batek 0a!a$et! k 0 ! fink a da ka. Metodoari dei egiten zaionean, pasatzenzaizkion parametroek bat egin behar dute metodoa deklaratzean jarritako parametroekin baizenbakian, bai ordenan eta bai datu motetan ere.

    61

  • 7/24/2019 Java Apunteak Eta Ariketak

    62/168

    2.+.2. %ORTZAI&EAK

    Sortzaileak metodo bereziak dira. (lasearen izen berdina izan behar dute, eta ez dute baliorikitzultzen.Gbjektu bat sortzeko, haren instantzia bat egin behar dugu. #orretarako, klasekp sortzaileaerabiltzen da.Iurretik sortu dugun N'oria klasearekin jarraituko dugu. Centsa N'oria klaseko objektu bat sortunahi dugula. (asu horretan, N'oria klaseko sortzailea erabili beharko dugu. (lasearen izen berdinaduenez, erraz identifikatuko dugu sortzailea

    0 b'i N'oria $String k, int a&)**sortzaileat,i) .kolorea T k2t,i) .adina T a2

    3

    Gbjektu bat sortzeko, hau egin beharko genuke

    N'oria zozoa T ne8 T* !ia =C# # a-3>;

    @kus daitekeenez, sortzaileen eta metodo arrunten artean ez dago ezberdintasun handirik.7zberdintasunik handiena hau da sortzaileak ez dauka itzulera4baliorik.

    Sortzaileak berezitasun hauek dauzka

    4A t $atik ki deit#en #ai b/ekt a ) !t#ean- eta ez beste inoiz.4 E# di!a 'et!a t*iki# ,a)ten. (laseen izen berdina daukate, eta, klaseak bezala, letra larriz

    hasten dira.4K'a)e batek ,ainbat ) !t#ai'e i#an dit#ake.< %a!a$et! !ik (abek k n)t! kt !ea!i ) !t#ai'e 'e,enet)ia e)aten #ai .< K'a)eek- ( t*iene#- ) !t#ai'e bat i#an be,a! d te. Sortzailerik definitzen ez bada, eta kasu

    horretan bakarrik, konpilatzaileak hutsik egongo den sortzaile4lehenetsia sortuko du.Sortzaile horrek objektuaren atributuak hasieratuko ditu, euren datu moten arabera.Qenbakizko datuak 0 batekin hasieratuko ditu2 boolearrak, &al%ebalioarekin2 eta karaktereeta erreferentziak, null balioarekin.

  • 7/24/2019 Java Apunteak Eta Ariketak

    63/168

    2.+.3. T$I% ERAGI&EA

    Iurreko adibideetan, thi% eragilea erabili izan da. thi% eragilea kasu honetan erabiltzen da objektubaten barruan egonda, objektuaren atributuak erabili nahi ditugunean. Jatez ere, parametro bateneta atributu baten izenen artean anbiguotasuna dagoenean erabiltzen da.

    @majina ezazu hegazkina izeneko klasea daukagula

    atributu dauzka alde batetik, izena, eta bestetik, hegazkinaren posizioa adierazteko bikoordenatu, 'pos eta ypos. Ji metodo sortzaile dauzka, baita hegan7gin metodoa ere. Iurretikesan dugunez, klase batek hainbat sortzaile izan ditzake, erabiltzen dituzten parametroen bidezbereizten direnak.

    63

  • 7/24/2019 Java Apunteak Eta Ariketak

    64/168

    Idibidea#egazkina izeneko klase nagusi bat daukagu. Iurreko irudian ageri diren atributuak eta metodoakdefinitu behar ditugu. Metodoek ekintza hauek egiten dituzte

    < "e(a#kina=> sortzaile lehenetsia. 7z dauka agindurik bere kodean. Itributuak hasieratubesterik ez du egingo balio lehenetsiak erabilita.

    < "e(a#kina=?t!in( i#ena- int *0 )- int 0 )>& sortzailea. Carametro bidez, String bat eta bi int jasoko ditu, objektuaren atributuak hasieratzeko.

    < ,e(anE(in=int *0 )- int 0 )>& Ji zenbaki oso jasoko ditu parametro bidez metodo honek,eta double motako zenbaki bat itzuliko du. @tzulitako zenbakia honako formula erabilitakalkulatzen da

    tokialdaketa T xpos xpos + ypos ypos

    #egazkina izeneko klasea erabiliko duen programa bat sortuko dugu. Crograma horrek #egazkinaklaseko objektu bat sortuko du eta objektu horren metodoak erabiliko ditu.

    Lehenik eta behin, hegazkina izeneko klasea sortuko dugu. 7man dizkiguten datuekin, kodeahonako hau litzateke

    0 b'i 'a)) #egazkina )** atributuak0!ivate String izena20!ivate int 'pos,ypos2** klasearen metodoak0 b'i #egazkina $&)

    **sortzailea

    30 b'i #egazkina $String izena, int 'pos, int ypos&)

    **sortzaileat,i) .izena T izena2t,i) .'pos T 'pos2t,i) .ypos T ypos2

    30 b'i d b'e hegan7gin $ int 'pos, int ypos&)

    d b'e lekualdaketa T Math. % rt $'pos+'posRypos+ypos&2t,i) .'pos T 'pos2

    t,i) .ypos T ypos2!et !n lekualdaketa2

    33

    64

  • 7/24/2019 Java Apunteak Eta Ariketak

    65/168

  • 7/24/2019 Java Apunteak Eta Ariketak

    66/168

    2.+.'. METODO E%TATIKOAK

    Metodo estatikoen berezitasuna hau dae# da( #e!tan k'a)e baten b/ekt !ik ) !t - 0! (!a$a batean k'a)e , !!en $et d e)tatik ake!abi't#ek .

    Metodo estatiko bati modu honetan egingo diogu dei

    4 Metodoaren izena, definituta dagoen klasetik deitzen badiogu.4 (lasearen izena, puntu eragilea $.& eta metodo estatikoaren izena, definituta dagoen

    klasearen kanpotik deitzen badiogu.4 Gbjektuaren izena, puntu eragilea $.& eta metodo estatikoaren izena, definituta dagoen

    klaseko objektu bat e'istitzen denean.

    Koiz eta zertarako erabiltzen dira metodo estatikoakW Metodo hauek ez dituzte objektuenatributuak aldatzen. (lase bateko objektu guztientzat orokorrak diren eragiketetan erabiltzen dira.Idibidez, klase bateko zenbat objektu sortu diren jakin nahi badugu. (asu horretan, metodoestatiko bat egin genezake, eta objektu bat sortzen den bakoitzean metodo horrek unitate batgehituko lioke aldagai baten balioari.!a aren (laseen Liburutegian, metodo estatikoak dituzten klase ugari dago. 7sate baterako,aurreko ariketan Math klasea erabili dugu erro karratu bat kalkulatzeko, baina ondo aztertzenbadugu, ikusiko dugu ez dugula sortu Math klaseko objekturik. Qer egin dugunW (lasearen izena,puntu eragilea eta metodo estatikoaren izena jarri ditugu.

    66

  • 7/24/2019 Java Apunteak Eta Ariketak

    67/168

    ,.%. PAKETEAK 7giten ditugun programak handitzen doazen heinean, haien klase kopurua ere handitu egiten da.(lase guztiak karpeta bakarrean sartzen baditugu, proiektua hobeto antolatua egongo da.Cakete bat klase multzo bat da. 't# be!ean da den k'a)eek ,a!!e$ana i#an( d te be!en

    a!tean.%akete batek k'a)eek )a!bide 0!ibi'e(iat a da kate 0akete be!ean da den be)te k'a)eenat!ib t eta!a eta $et d eta!a..ja a fit'ategi bakoitzaren hasieran, posible dugu fit'ategi horretan idatzitako klasea zein paketeridagokion jartzea. #ori egiteko, packa"e hitz erreserbatua erabiltzen da.@kus dezagun nola egiten den lan paketeekin 7clipse4n.Lehen urratsa proiektu berri bat sortzea da. Kik IdibideCroiektua deitu diot.

    Jigarren urratsa proiektuaren barruan pakete bat sortzea da. #ori egiteko, proiektuaren gaineanklik egingo dugu eskuineko botoiarekin eta e!->"ackage aukeratuko dugu. Caketeari izena eman,gure kasuan IdibideCaketea, eta Finis$ botoia sakatuko dugu.

    67

  • 7/24/2019 Java Apunteak Eta Ariketak

    68/168

    #ori eginda, paketea sortu dela ikusiko dugu.

    68

  • 7/24/2019 Java Apunteak Eta Ariketak

    69/168

    Izkenik, klase bat sortuko dugu paketearen barruan. #ori egiteko, paketean klik egin eskuinekobotoiarekin, eta e!->&lass aukeratuko dugu. (laseari Idibide(lasea deituko diot.

    69

  • 7/24/2019 Java Apunteak Eta Ariketak

    70/168

    2.,.1. IMPORT AGINDUA

    Jatzuetan, beste pakete bateko klase bateko metodo bat erabili nahi dugu. (asu horietan, import agindua erabiltzen dugu.Iurreneko gaian, teklatu bidez sartutako datuak jasotzeko, 'canner klasea erabili genuen. 'canner klasea java.util paketearen barruan dago2 beraz, klasea erabiltzeko, hau jarri behar dugu gureprograman

    i$0 !t /ava. ti'.? anne!;

    Cakete batean dauden klase guztiak agindu bakar bat erabiliz ere inportatu ditzakegu

    i$0 !t /ava. ti'. ;

    import agindua klasearen hasieran jartzen da, packa"e aginduaren azpian, baldin eta azken haue'istitzen bada.

    Cosible da import ez jartzea, baina hau jarri beharko dugu hala egin nahi dugun bakoitzean

    /ava. ti'.? anne! tek'at a ne@ /ava. ti'.? anne! =? )te$.in>;

    70

  • 7/24/2019 Java Apunteak Eta Ariketak

    71/168

  • 7/24/2019 Java Apunteak Eta Ariketak

    72/168

    A ERAN?KINA& ARIKETAK

    ARIKETA ERRAZAK

    1. Sortu ezazu ire/enbakia izeneko klase bat. Sortzaileak zenbaki bat jasoko du. Sortzaileaz gain,klaseak beste lau metodo izango ditu

    4 Qenbakiaren bikoitza kalkulatuko duen metodoa.4 Qenbakiaren hirukoitza kalkulatuko duen metodoa.4 Qenbakiaren laukoitza kalkulatuko duen metodoa.4main0( metodoa. Metodo hau beste metodoak frogatzeko erabiliko dugu.

    =. Sortu ezazu /enbakia izeneko klase bat. (laseak zenbaki oso bat gordeko du, eta metodo hauek

    ditu

    4 Sortzaile lehenetsia. Qenbakia 0 zenbakiarekin hasieratuko da.4 Qenbakia hasieratuko duen sortzailea.4batu izeneko metodoa. Metodo honek barne zenbakiari beste zenbaki bat batuko dio.4kendu izeneko metodoa. Metodo honek barne zenbakiari beste zenbaki bat kenduko dio.4"et1alioa2 Jarne zenbakia itzultzen du.4"et1ikoit#a2 Jarne zenbakiaren bikoitza itzultzen du.4"et$irukoit#a2 Jarne zenbakiaren hirukoitza itzultzen du.4%et1alioa2 Jarne zenbakiaren balioa aldatzen du.

    . Sortu ezazu bi sortzaile izango dituen 3uto klasea. Sortzaileetako batek ez du parametrorik jasoko, eta besteak, bai. Ji sortzaileek marka eta modelo atributuak hasieratuko dituzte. Sor itzazu 3uto klaseko bi objektu, objektu bakoitza sortzaile bat erabilita, eta froga ezazu egindakoa ondodabilela.

    >. Sortu ezazu klase bat itsas milien eta kilometroen arteko bihurketak egiteko, eta bi metodoizango dituena. Metodoek milia edo kilometro kopuruak parametro bidez jasoko dituzte, eta haienizenak hauek izango dira

    miliak(ilometrotara$&kilometroakMiliatara$&

    Gharra @tsas milia T 1.:E= metro.

    E. !aso produktu baten jatorrizko prezioa eta beherapena egin ondorengo prezioa, eta idatzi ezazuzer portzentaje deskontatu den itzuliko duen metodo bat.

    72

  • 7/24/2019 Java Apunteak Eta Ariketak

    73/168

    ARIKETA ZAI&AK

    1. Sortu ezazu pisua klasea. (laseak ezaugarri hauek izango ditu

    Gbjektu baten masa $kilogramotan& gordeko duen atributu bat izango du.Sortzaileari masa eta unitatea pasatuko zaizkio. nitateak hauek izan daitezke

    Lb T libraLi T lingoteaGz T ontzaC T penny4a( T kilogramoa< T gramoa(i T kintala

    (laseak metodo hauek izango ditu

    getLibrak Masa libratan itzuliko du.getLingoteak Masa lingotetan itzuliko du.getCisua Carametro bidez pasatuko zaion unitatean itzuliko du pisua.

    Iriketa egiteko, erabil itzazu balio hauek

    1 libra T 1; ontza T >E gramo1 lingote T =,1F libra T 1>,E9 kilogramo1 ontza T 0,0;=E libra T =:, E gramo1 penny T 0,0E ontza T 1,EE gramo1 kintal T 100 libra T >E, kilogramo

    =. N'okolate4taloak egiten dituen jatet'e batek hau jakin nahi du biltegian daukan arto4irinarekineta t'okolatearekin zenbat talo egin ditzakeen. Metodo bat egitea eskatu digu jatet'ekoarduradunak irin eta t'okolate kiloen zenbatekoa jaso eta zenbat t'okolate4talo egin daitezkeenitzuliko duen metodoa. ; t'okolate4talo egiteko kilo bat irin eta kilo erdi t'okolate erabiltzen dira.

    . Ilda ezazu =. ariketako programa. 7giten duzun klaseak zenbat kilo irin eta zenbat t'okolatedagoen biltegian gordeko du, eta metodo hauek izango ditu

    public oid irina

  • 7/24/2019 Java Apunteak Eta Ariketak

    74/168

    ARIKETA O%OA

    1. Sortu ezazu pertsona klasea erabiliko duen proiektu berri bat.

    public class Certsona

    ) pri ate String izena2 pri ate int adina2 pri ate float garaiera2 public String get@zena$&)

    return izena2 3

    public oid set@zena$String izena&)

    this.izena T izena2 33

    (laseak, gainera, metodo nagusi bat ere izango du. Metodo horrek erabiltzaileari izen bat eskatukodio teklatu bidez sartu dezan, eta balio hori esleituko dio izena atributuari. . @datzi ezazu atributuen balio guztiak parametro bidez jasoko dituen sortzaile berri bat. Ildatuprograma, aurrekoa ezabatu gabe, sortzaile berria erabili dezan eta frogatu ondo funtzionatzenduela.

    74

  • 7/24/2019 Java Apunteak Eta Ariketak

    75/168

    E. Sortu ezazu bi atributu dituen onple%u izeneko klasea

    4 erreala zenbaki konple'uaren zati erreala.4 irudikaria zenbaki konple'uaren zati irudikaria.

    (onple'u klaseak metodo hauek izango ditu

    4 public (onple'u$& Sortzailea. Itributuak zeroekin beteko ditu.

    4 public (onple'u$double erreal, double irudi& parametroen bidez esleituko zaizkie balioakobjektuaren atributuei.

    4 public double get7rreal$& objektuaren zati erreala itzuliko du.

    4 public double get@rudi$& objektuaren zati irudikaria itzuliko du.

    4 public oid set7rreal $double erreal& parametro bidez ematen den balioa esleituko dioobjektuaren erreala atributuari.

    4 public oid set@rudi $double irudi& parametro bidez ematen den balioa esleituko dioobjektuaren irudikaria atributuari.

    4 public oid batuketa $(onple'u b& objektuaren zati erreala b zenbakiaren zati errealarekinbatzen du, eta zati irudikaria b zenbakiaren zati irudikariarekin.

    Sortu ezazu proiektu berri bat Konple u klasea duena, zenbakiak izeneko pakete batean.

    rogatu itzazu metodo guztiak.

    75

  • 7/24/2019 Java Apunteak Eta Ariketak

    76/168

    76

  • 7/24/2019 Java Apunteak Eta Ariketak

    77/168

    3. GAIA: OINARRI"KO KONTROL EGITURAK

    77

  • 7/24/2019 Java Apunteak Eta Ariketak

    78/168

    3. 1. SARRERAGrain arte ikasi duguna ez da nahikoa programa konple'uak egiteko. 7goera askotan, programakaukerak eskaini beharko ditu, erabakiak hartu, kode zati bat hainbat alditan errepikatu...Crogramazio4hizkuntza gehienetan, informazio4flu'ua kontrolatzeko, hainbat egitura egoten dira.

    7sandako hori ulertzeko, pentsa dezagun iturgin $programatzaile& batean. @turginak, ohikoan,urarekin $datuak& egiten du lan, eta ur hori berak nahi duen lekutik $programa& garraiatzea lortzendu hodiak, giltzak, ukondoak, etab $kontrol4egiturak& erabiliz.Crogramatzeko egitura motak hauek dira

    < ?ek ent#ia& Crograman agertzen diren ordena berean e'ekutatzen dira sententziak.7giturarik sinpleena da, eta gainerako egiturak sekuentziatik abiatuta eraikitzen dira.

    < "a ta#k ak& 7rabakitze4sententzia berezi bat dago. Sententzia hori ebaluatzean, emaitzabat lortuko da $normalean true ala &al%e&, eta emaitza horren arabera, sententzia4sekuentzia

    jakin bat e'ekutatuko da ala beste sekuentzia ezberdin bat.

    < E!!e0ika0enak& 7rabakitze4sententzia berezi bat dago. Sententzia hori ebaluatzean, emaitzabat lortuko da, eta emaitza hori egokia bada, sententzia4sekuentzia jakin bat errepikatukoda harik eta emaitza desegokia izan arte.

    78

  • 7/24/2019 Java Apunteak Eta Ariketak

    79/168

    3.,. SENTENT"IAK ETA &LOKEAK

    Iurretik landutako unitateetan, jakintzat eman dira hainbat kontzeptu2 orain, kontzeptu horiekgaldera4erantzunen bidez ikusiko ditugu

    < N 'a idat#ik d ( 0! (!a$a )in0'e bat Crograma sinple batek sententzia batzuke'ekutatu eta emaitza apropos bat lor dezan nahi badugu, sententzia horiek bata bestearenatzean jarriko ditugu, e'ekutatu behar diren ordena berean.

    < Ja! 'ite#ke )entent#ia ( #tiak 'e!! be!ean- 0 nt eta k $a!ekin =;> banat tae'ka!!en(andik !akina baietz, baina ez da komeni. Sententzia bakoitza lerro bakarreanegotea komeni da, programa ulergarriagoa izan dadin.

    < % )ib'e da )entent#ia baka! bat- 0! (!a$an- 'e!! batean bain (e,ia( tan ida#tea Jai2izan ere, sententzia batzuk luzeak izaten dira eta ez dira lerro bakarrean sartzen.

  • 7/24/2019 Java Apunteak Eta Ariketak

    80/168

    ADIBIDEA

    7rreparatu hiru fit'ategi hauei. #irurek ematen dute emaitza bera, baina sententziak ez daude eraberean idatzita.

    1. fit*ate(ia = !dena )ek ent#ia'a da>.

    package sententzienDantolamendua2*++ + + Sententzien antolamendu sekuentziala +*public class SententzienDantolamenduaD1 ) public static oid main$String - args& ) System.out.println $"Sententzien antolamendu sekuentziala"&2 int eguna T 1=2

    System.out.println $"7guna hau da " R eguna&2 int hila T 112 System.out.println $"#ila hau da " R hila&2 int urtea T =0112 System.out.println $" rtea hau da " R urtea&23

    3

    80

  • 7/24/2019 Java Apunteak Eta Ariketak

    81/168

    2. fit*ate(ia ='e,enbi#i- a'da(aiak dek'a!at#en di!a. Javan- a'da(aiak ed n n dek'a!at daite#ke;baina- a'da(ai bat e!abi'i bain 'e,en- de!!i( !!e#k a da dek'a!at ta e( tea>.

    package sententzienDantolamendua2*++ + + Sententzien antolamendua, aldagaiak hasieran deklaratuz. +*public class SententzienDantolamenduaD= ) public static oid main$String - args& ) ** Ildagaiak deklaratzea

    int eguna T 102 int hila T 112 int urtea T =0112 System.out.println $"Sententzien antolamendua, aldagaiak hasieran deklaratuz"&2 System.out.println $"7guna hau da " R eguna&2

    System.out.println $"#ila hau da " R hila&2 System.out.println $" rtea hau da " R urtea&23

    3

    81

  • 7/24/2019 Java Apunteak Eta Ariketak

    82/168

    3. fit*ate(ia =,ainbat #ati be!ei#ten di!a& a'da(aiak dek'a!at#ea- )a!!e!a dat ak e)kat#ea- dat en0! #e) a eta i!tee!a ida#tea. " !!e'a ant 'at ta- 0! (!a$ak e!!a#a( 'e!t#en di!a>.

    package sententzienDantolamendua2

    *++ + + 7giten dutenaren arabera, sententzia bakoitza dagokion zatian kokatzen da. +*public class SententzienDantolamenduaD ) public static oid main$String - args& ) ** aldagaiak deklaratzea

    int eguna2 int hila2 int urtea2

    String data2 **5atuak sartzea edo aldagaiak hasieratzea eguna T 102 hila T 112 urtea T =0112 data T ""2

    **5atuen prozesua data T egunaR"*"RhilaR"*"Rurtea2

    **@rteera System.out.println $"(odea hainbat zatitan banatzea"&2

    System.out.println $"5ata hau da " R data&2 33 7rabiltzen duzun antolatzeko era erabiltzen duzula, beti izan behar dituzu kontuan ideia hauek

    4 7rabili baino lehen, deklaratu ezazu aldagai bakoitza.4 Lehen aldiz erabili baino lehen, hasieratu ezazu aldagai bakoitza.

    82

  • 7/24/2019 Java Apunteak Eta Ariketak

    83/168

    3.3. $AUTA"KO EGITURAK

    Kola egin gure programek erabakiak hartzeaW #asteko, hautazko egiturekin lortuko dugu. 7giturahauek hautazko sententzia berezi bat daukate, eta gero sententzia multzo bat.

    untzionatzeko modua erraza da. Lehendabizi, hautazko sententzia berezia ebaluatzen da eta baliobat itzultzen du $7

  • 7/24/2019 Java Apunteak Eta Ariketak

    84/168

    3.3.1. I# ETA I# E&%E

    Idierazpen logiko bat ebaluatzen du, eta emaitzaren arabera, sententzia bat edo sententzia multzobat e'ekutatzen du.

    @ @ 47LS7

    if $adierazpen logikoa& sententzia 12

    if $adierazpen logikoa&) sententzia 12 sententzia =2 P 2 sententzia K23

    if $adierazpen logikoa& sententzia 12else sententzia =2

    if $adierazpen logikoa&) sententzia 12 P 2 sententzia K23else) sententzia 12 P 2 sententzia K2

    3Idierazpen logikoa egia bada, sententzia 1e'ekutatuko da edo dagokion sententzia4blokea.

    altsua bada, ez da hautazko egiturakosententziarik e'ekutatuko.

    Idierazpen logikoa egia bada, sententzia 1 edolehenengo sententzia4blokea e'ekutatuko da.

    altsua bada, berriz, sententzia = edo bigarrensententzia4blokea e'ekutatuko da.

    84

  • 7/24/2019 Java Apunteak Eta Ariketak

    85/168

    else zatia ez da nahitaezkoa. Iskotan, ez dugu erabiliko2 baina beharrezkoa da ekintzarenbat betetzea nahi badugu adierazpen logikoa betetzen ez denean. else zatia agertzen ezden kasuetan, adierazpen logikoa faltsua bada, hautazko egituraren ondoren daudensententziak e'ekutatzen jarraituko du programak.

    i& eta i &!el%e egiturak kateatu egin daitezke. #au da, sententzia4bloke batean, i& edo i&!el%e egiturabat baino gehiago sar dezakegu. Crogramatzaileak erabakiko du zenbat mailatan kateatu, bainamaila asko badaude, agian, ez gara egiturarik aproposena erabiltzen ariko.

    ADIBIDEA

    #onako programak test motako azterketa baten nota kalkulatzen du, eta pantailan letra bidezkokalifikazioa erakutsiko du. 7rreparatu ondo kodean sartuta dauden komentarioei, baita hautazkoegituren erabilerari ere.

    package hautazkoDegiturak2*++

    + + 7gitura sinpleak eta konposatuak, eta horien arteko kateaketak. +*public class #autazkoDegiturak ) *+ Nest erako azterketa baten nota kalkulatuko dugu. #orretarako, guztira dauden galderak,igarritakoak eta huts egindakoak, hartuko ditugu kontuan. Ji akatsek igarritako galdera batbaliogabetzen dute. Izkenik, pantailan, zenbakizko eta letra bidezko kalifikazioak idazten dira. Letra bidezko kalifikazioa lortzeko, kateaketa erabiliko dugu

    +*

    public static oid main$String - args& ) ** Ildagaiak deklaratzea eta hasieratzea int igarritakoak T 1=2 int akatsak T 2 int galderak T =02 float nota T 02 String kalifikazioa T ""2

    **5atuak prozesatzea nota T $$igarritakoak 4 $akatsak*=&&+10&*galderak2

    if $nota Z E& ) kalifikazioa T "< NO@"2 3 else ) *+ if hauen adierazpenek IK5 eragilea $[[& erabiltzen dute.+ Idierazpen osoa 7

  • 7/24/2019 Java Apunteak Eta Ariketak

    86/168

    if $nota H T ; [[ nota ZF& kalifikazioa T "GK

  • 7/24/2019 Java Apunteak Eta Ariketak

    87/168

    3.3.2. % IT/$ EGITURA

    Qer egin dezakegu gure programak bi aukera baino gehiagoren artean aukeratu behar dueneanWIukera bat i& egiturak kateatzea izan liteke2 baina, askotan, aukera hori ez da eraginkorrena. (asuhorietan, %witchegitura erabiliko dugu.

    S?@NA#

    s8itch $adierazpen logikoa&) case balioa1 sententzia 1D12 sententzia 1D=2 P 2 break2

    case...

    P.2 break2 case balioaK

    sententzia KD12 sententzia KD=2 P 2 break2

    default

    default4sententziak23

    4 Idierazpena parentesi artean jartzen da.

    4case bakoitzak balio bat izan behar du eta bipunturekin $ & amaituko da.

    4default sententziak break batekin amaitu

    daitezke ala ez.

    87

  • 7/24/2019 Java Apunteak Eta Ariketak

    88/168

    %witch egituraren aukera guztiak ca%e baten ostean jartzen dira. Idierazpen logikoaren emaitza etaca%e4ren balioa berdinak direnean, ca%e4ren barruko sententziak e'ekutatu egingo dira.de&ault atalaren barruan dagoena kasu honetan bakarrik e'ekutatuko da adierazpen logikoarenemaitzak ca%e ataletan dauden balioekin bat egiten ez duenean.Cosible da de&ault atalik ez egotea. ca%e bat bera ere aktibatu ez bada, %witch4a ezer egin gabeamaituko da.ca%e bakoitzak hainbat sententzia izan ditzake barruan, baina ez da giltzarik $),3& jarri behar.Idierazpen logikoak ca%e baten balioarekin bat egiten duenean, sententzia guztiak e'ekutatukodira, break bat agertu arte.

    88

  • 7/24/2019 Java Apunteak Eta Ariketak

    89/168

    ADIBIDEA

    Irazoa aurreko adibidearen berdina da, baina oraingoan 'W456$ egitura erabilita ebatziko da.

    package hautazkoDegiturak2*++ + + 7gitura sinpleak eta konposatuak, eta horien