Guest expl0iter Posted September 11, 2011 Report Posted September 11, 2011 (edited) CLASEClase pentru aplicatiiExecutia programului unei aplicati începe prin apelul metodei main() din clasa primara. • Daca nu exista metoda main compilatorul afiseaza o eroare.• Metodele main trebuie declarate publice• public static void main (String args[]) { ... }• Permite apelul cu parametri de la linia de comanda : public class A { public static void main (String args[]) { System.out.println(args[0]); }}Clase pentru miniaplicatiiMiniaplicatiile constituie extensii ale unei clase deja existente java.applet.Applet. Structura clasei unui applet se bazeaza pe urmatoarele metode : init() start() stop() paint()init()• apelata numai atunci când applet-ul este încarcat pentru prima data într-un program de vizualizare• folosita pentru initializari si prelucrarea elementelor din linia de comanda• are format fix public void init() { ... }• declararea sa nu este necesara, daca se face se redefineste metoda init() din clasa java.applet.Appletstart()• apelata dupa metoda init() atunci când miniap. este încarcata pentru prima data sau când executia ei a fost suspendata si trebuie reluata• are format fix public void start() { ... }• declararea sa nu este necesara, daca se face se redefineste metoda• start() din clasa java.applet.Appletstop()• apelata de fiecare data cand o miniap. trebuie oprita sau supendata• are format fix public void stop() { ... }• declararea sa nu este necesara, daca se face se redefineste metoda stop() din clasa java.applet.Appletpaint()• folosita pentru desenarea sau redesenarea ecranului• este apelata automat de metoda repaint(), dar poate fi apelata si explicit• are format fix public void paint(Graphics g) { ... }• declararea sa, desi nu este ceruta de compilator, este necesara deoarece aici se fac afisarile pe ecran (redefineste metoda paint() din clasa java.applet.Applet)Exemplu de applet care foloseste toate cele 4 metode : import java.awt.Graphics;public class Counter extends java.applet.Applet { int counter; boolean run; public void init() { counter = 0; } public void start() { run = true ; while (run == true) { counter ++ ; repaint(); try { Thread.sleep(1000); } //face o pauza de o secunda catch(InterruptedException e) {} } } public void stop() { run = false; } public void paint( Graphics g ) { g.drawString("counter = " + counter, 10, 10); }}Modificatori de tip : public class NumeClasa { ... } (acces permis si claselor din afara propriului pachet) (orice alt modificator genereaza o eroare de compilare) de acces : abstract class NumeClasa { ... } (creare de clase sablon - supraclase pentru alte clase)Ex:Variabile folosite de clase variabile de instanta : specifice fiecarei instante variabile de clasa : declarate statice, au aceeasi valoare pt. toate instanteleInstante predefinite : null, this - desemnarea explicita a instantei curente a unei variabilesuper - este o referinta la superclasa clasei curenteEx: class Animal { static String nume = null; public void main( String args[]) { Animal a = new Animal(); if (a.nume == null) introNume(“Introduceti un nume:”) } } void introNume ( String prompt ) { StringBuffer nume; char ch = ‘\0’; nume = new StringBuffer(); System.out.println( prompt ); System.out.flush(); while (ch != ‘\n’) { try { ch = (char) System.in.read(); } catch (IOException e) {}; nume.append( ch ); } this.nume = nume.toString();}class Pisica extends Animal { void introNumePisica { super.introNume(‘Introduceti numele pisicii:”); }}Modificatorii metodelorDeclararea securitatii si accesibilitatii metodelor:Nivel Acces permis pentrupublic- toate celelalte claseprivate- nici o alta clasaprotected- subclasesi clase din acelasi pachetprivate protected- numai subclase<default>- clasele din acelasi pachetstatic • asociat numai metodelor si variabilelor, nu si claselor• precizeaz ca o metoda poate fi declarata o singura data (nu poate fi redefinita într-o subclasa)final - precizeaza caun obiect este stabilit si nu mai poate fi schimbat• la nivelul clasei : nu mai poate avea subclase• final class A {...}class B extends class A {...} ? eroare! • la nivelul metodei : nu mai poate fi modificata• class A { final varFinala = 100 ; ? variabila ramane constanta void metoda() { varFinala = 200; } ? eroare!}• la nivelul var : este declarata constanta• class A { final void metoda() {...}}class B extends A { void metoda() {...} ? eroare!• }abstract - permite crearea de metode [ablonSupraîncarcarea metodelor - overloading• class A { void metoda(int x) {...}}class B extends A { void metoda(string s) { ... }}• Folosirea obiectelor1. Crearea si distrugerea obiectelor• spatiul de memorie nu este pre-alocat • este dezalocat automat (malloc / free)• exista un echivalent al constructorului• nu exista un echivalent al destructorului• exista metoda finalize care poate fi folosita pe post de destructor2. Crearea unei instante : NEW3. String s;s = new String(10);n = s.length();if s.compareTo(“test”) ...• pos = s.indexOf(“test”); Distrugerea unei instante : public void destroy() { ... }Metoda constructorIdentica cu cea din C++;• class A { void A(int arg) { ... } void A(String s) { ... }• }Metoda finalize : void finalize()Este apelataautomat în momentul când se declanseaza operatiunea de colectare a gunoiului.Mostenirea• class B extends A { ... }class Figura { int nrVarfuri; void introNrVarfuri() { try {nrVarfuri = System.in.read();}catch(IOException e) {} }}class Poligon extends Figura { }Poligon p = new Poligon();• p.introNrVarfuri(); Edited September 11, 2011 by expl0iter greseala.. Quote
M2G Posted September 11, 2011 Report Posted September 11, 2011 Cand zici miniaplicatie te referi la applet? Cand zici redefinirea unei metode te referi la procedeul de overriding?Daca tot ai postat un tutorial copiat mai bine incearca sa intelegi despre ce e vorba acolo. Desii un incepator nu prea are ce intelege din tutorialul asta.Cand mai postezi informatii copiate din alte surse specifica si sursa.Vezi ca JavaScript e diferit de Java. Ce ai postat tu aici e Java.Bafta! Quote