Jump to content
Guest expl0iter

Clase pentru aplicatii [JavaScript]

Recommended Posts

Guest expl0iter

CLASE

Clase pentru aplicatii

Executia 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 miniaplicatii

Miniaplicatiile 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.Applet

start()

• 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.Applet

stop()

• 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.Applet

paint()

• 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 instantele

Instante predefinite :

 null, 

this - desemnarea explicita a instantei curente a unei variabile

super - este o referinta la superclasa clasei curente

Ex:

 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 metodelor

Declararea securitatii si accesibilitatii metodelor:

Nivel Acces permis pentru

public- toate celelalte clase

private- nici o alta clasa

protected- subclasesi clase din acelasi pachet

private protected- numai subclase

<default>- clasele din acelasi pachet

static

• 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 [ablon

Supraîncarcarea metodelor - overloading


class A {
void metoda(int x) {...}
}
class B extends A {
void metoda(string s) { ... }
}

Folosirea obiectelor

1. 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 destructor

2. Crearea unei instante : NEW

3.


String s;
s = new String(10);
n = s.length();
if s.compareTo(“test”) ...
• pos = s.indexOf(“test”);

Distrugerea unei instante : public void destroy() { ... }

Metoda constructor

Identica 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 by expl0iter
greseala..
Link to comment
Share on other sites

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!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...