Dia tohizantsika ihany ary ny resaka Objet amin’ny tontolo Java :
Fanamarihana mialoha : Amin’ny tontolo Java moa dia tsara ho fantantsika fa mifantoka tanteraka amin’ny Objet ny fomba fiantrehana asa rehetra ⇒ Ny zavatra rehetra na inona na inona kirakiraina zany dia tokony faritana amin’ny modely Objet daholo (tsy misy ankanavaka io an !!!?).
Raha iverenana kely ary ilay andrana komandy java ZavatraAzoKajiana tary amin?ny andinina faharoa tary dia hitantsika fa namoaka laza diso hoe : java.lang.NoSuchMethodError : main, ny milina virtoaly Java JVM, raha mbola tsy nofaritantsika ilay hetsika na methode static main(String args[])
Raha fotorintsika akaiky io laza diso nivoaka io dia izao no azo ambara :
java.lang. dia azo heverina hoe fanondroana lalana ny JVM, fa ato ilay classe atao foto-dresaka
NoSuchMethodError dia tsy inona fa anaran’ilay classe amin’io ohatra io.
Koa satria Objet daholo ny zava-kirakiraina amin’ny Java.
Raha halalinina akaiky zany dia azo adika koa izay fa ny classe antsoina hoe : NoSuchMethodError, dia voatahiry ao amin’ny toerana iray voatondron’ny : java.lang. . Io toerana fitehirizana classe io no atao hoe : package. Io java.lang. io no atao hoe : package par defaut ary tsy mila tondroina mazava ao anaty vainga classe Java foroninao raha toa vafono ao daholo ireo classe ilaina hamoronanao Objet hampiasainao, amin’izay ho ataonao rehetra.
Ho an’ny mpilalao systeme de fichier dia azo adika avy hatrany io soratra java.lang. io ho toy ny repertoire iray atao hoe : java/lang/ : zany hoe soloina /(slash) fotsiny ny .(point) e !.
Tena izay tokotrany ilay izy satria raha ohatra raisintsika amin’ilay ohatra classe ZavatraAzoKajiana tary amboalohany tary dia andao anie handramantsika, hovaina toy izao io classe io :
package resakaObjet; public class ZavatraAzoKajiana { private Object sanda; // toetran?ilay objet public ZavatraAzoKajiana(Object sandaHafa) { sanda = sandaHafa; } // famoronana objet iray, na constructeur no fiantso azy. ............... }
Dia mariho ao amin’ny systeme de fichier iasanao ary hoe:
1. Teo amin’ny ohatra voalohany (tsy nisy ilay hoe: package resakaObjet)
2. Eto amin’ny faharoa ity (misy ilay hoe : package resakaObjet)
Fanazavana :
Hita ary fa amin’ilay voalohany dia mitovy ny toerana nipetrahan’ny ZavatraAzoKajiana.java sy ny ZavatraAzoKajiana.class noforoninao; fa amin’ilay faharoa kosa dia nisy repertoire antsoina hoe resakaObjet niforona teo ambanin?ny toerana misy ilay ZavatraAzoKajiana.java, ary dia napetraky ny compilateur tao amin’io repertoire io ilay ZavatraAzoKajiana.class na ilay bytecode-nao izany. Izany hoe izay classe rehetra asianao io package resakaObjet ao amboalohan’ilay source io dia ho voatahiry ao amin’io repertoire resakaObjet io daholo ny bytecode voa-compile. Toa izany ary ny mikasika io package io.
Raha ohatra indray ary ka tiantsika hampiasaina amin?ny classe aorintsika vaovao, ny Objet iray na maro naorina avy amin’ireo classe izay voatahiry anaty package (na repertoire ihany io e !); dia ahoana no fika ?
Eto dia tsotra be ilay izy fa mitovy tsy misy valaka amin’ny fomba fitadiavana fichier iray ao anatin’ny systeme de repertoire ihany. Ary ny soratra tsy maintsy apetrakao alohan’ny hampiasainao azy dia ny hoe : import <ilay package> dia vita kabary fa afaka mampiasa tsara ireo classe hafa voatahiry anaty package ireo ianao amin?ilay classe tianao haorina vaovao.
Andao ary hanao andrana avy hatrany isika e !
Raha ilay ohatra farany misy ilay package resakaObjet zany no compiler-nao ka tsy misy laza diso ny javac ZavatraAzoKajiana.java, ataonao, dia ito misy classe vaovao haorintsika dia ho hita eo indray izay ho hataon’ingahy JVM.
import resakaObjet.ZavatraAzoKajiana; public class AndranaHafa { Object zavatra; public AndranaHafa(Object param) // Constructeur voalohany { ZavatraAzoKajiana kajyZavatra = new ZavatraAzoKajiana (new String()); zavatra = kajyZavatra.kajyAdisanina((String)param); } public AndranaHafa(Object param1, Object param2) // Constructeur faharoa { ZavatraAzoKajiana kajyZavatra = new ZavatraAzoKajiana ((String)param1); zavatra = kajyZavatra.kajyAdisanina((String)param2); } /** Ity methode toString() ity dia manitsaka na misolo avy hatrany ilay * voafaritra ao anaty package par defaut an?ny Java */ public String toString() { return (String) zavatra; } static public void main(String arg[[]]) { AndranaHafa ohatra1 = new AndranaHafa("Ndao hiresaka Objet ary e !"); AndranaHafa ohatra2 = new AndranaHafa(?Hevitra voalohany ?\n?, ?Hevitra faharoa ??); System.out.println("AndranHafa \"ohatra1\" => " + ohatra1); System.out.println("AndranHafa \"ohatra2\" => " + ohatra2); } }
Fanazavana tsotra aloha:
Ataontsika fohy ihany ilay classe vaovao, fa tsy hasiantsika ireo getters sy setters (toy ilay getSanda() sy setSanda(Object obj) tary amin?ny [lesona II] an !)
Fa kosa :
Ka ny asaintsika hataon’ilay main(?) eto dia manorina fotsiny Objet roa antsoina hoe ohatra1 si ohatra2 amin’io classe AndranaHafa io, dia avy eo avoaka amin?ny ecran izireo.
Dia avoaka etsy ambany ny vokatra azo eny amin?ny ecran:
AndranaHafa ohatra1 => ndao hiresaka Objet ary e ! AndranaHafa ohatra2 : Hevitra voalohany Hevitra faharoa
(Mbola hitohy ?)