Pagina de start a forumului Informatica
 FAQ  •  Cautare  •  Membri  •  Grupuri   •  Inregistrare  •  Profil  •  Mesaje private  •  Autentificare
Subiectul urmator
Subiectul anterior
Creaza un subiect nou   Raspunde la subiect  Pagina de start a forumului Informatica » Despre limbajele de programare
Autor Mesaj
Admin
Administrator
Administrator


Data inscrierii: 07/Dec/2013
Mesaje: 1103

MesajTrimis: 12/12/2013 21:24 Raspunde cu citat (quote) Back to top

Clase pentru aplicaţii
Execuţia programului unei aplicaţii începe prin apelul metodei main() din clasa primară.
• Dacă nu se află metoda main compilatorul afişează 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]);
}
}
Vezi profilul utilizatorului Trimite mesaj privat
Admin
Administrator
Administrator


Data inscrierii: 07/Dec/2013
Mesaje: 1103

MesajTrimis: 12/12/2013 21:25 Raspunde cu citat (quote) Back to top

Clase pentru miniaplicatii

Miniaplicatiile reprezintă 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 cand applet-ul este incarcat pentru întâia data intr-un program de vizualizare
• folosita pentru initializari si prelucrarea elementelor din linia de comanda
• are compus 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 cand miniap. este incarcata pentru prima data sau cand 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 utilizate 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 argsst) {
Animal a = new Animal();
if (a.nume == null)
introNume(“Introduceti un nume:”)
}
}

void introNume ( String prompt ) {
StringBuffer nume;
char ch = ‘a0’;
nume = new StringBuffer();
System.out.println( prompt );
System.out.flush();
while (ch != ‘an’) {
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:

static
• asociat numai metodelor si variabilelor, nu si claselor
• precizeaza ca o metoda poate fi declarata o singura data (nu poate fi redefinita intr-o subclasa)

final - precizeaza ca un obiect este stabilit si nu mai poate fi schimbat
• la nivelul clasei : nu mai poate avea subclase
final class A {...}
eroare!class B extends class A {...}
• la nivelul metodei : nu mai poate fi modificata
class A {
variabilafinal varFinala = 100 ; ramane constanta
eroare!void metoda() { varFinala = 200; }
}
• la nivelul var : este declarata constanta
class A {
final void metoda() {...}
}
class B extends A {
void metoda() {...} eroare!
}

abstract - îngăduie crearea de metode sablon

Supraincarcarea 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
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 apelata automat in momentul cand 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();
Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:   
Creaza un subiect nou   Raspunde la subiect

Subiectul urmator
Subiectul anterior
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum


Powered by phpBB © 2001, 2002 phpBB Group