Sunteți pe pagina 1din 4

Construirea obiectelor CLASE Clase pentru aplicaii Execuia programului unei aplicaii ncepe prin apelul metodei main()

din clasa primar.

Dac nu exist metoda main compilatorul afieaz 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 miniaplicaii Miniaplicaiile constituie extensii ale unei clase deja existente java.applet.Applet. Structura clasei unui applet se bazeaz pe urmtoarele metode : init() start() stop() paint() init()

apelat numai atunci cnd applet-ul este ncrcat pentru prima dat ntr-un program de vizualizare folosit pentru iniializri i prelucrarea elementelor din linia de comand are format fix public void init() { ... } declararea sa nu este necesar, dac se face se redefinete metoda init() din clasa java.applet.Applet

start()

apelat dup metoda init() atunci cnd miniap. este ncrcat pentru prima dat sau cnd execuia ei a fost suspendat i trebuie reluat are format fix public void start() { ... } declararea sa nu este necesar, dac se face se redefinete metoda start() din clasa java.applet.Applet

stop()

apelat de fiecare dat cnd o miniap. trebuie oprit sau supendat are format fix public void stop() { ... } declararea sa nu este necesar, dac se face se redefinete metoda stop() din clasa java.applet.Applet

paint()

folosit pentru desenarea sau redesenarea ecranului este apelat automat de metoda repaint(), dar poate fi apelat i explicit are format fix public void paint(Graphics g) { ... } declararea sa, dei nu este cerut de compilator, este necesar deoarece aici se fac afirile pe ecran (redefinete metoda paint() din clasa java.applet.Applet) 1

Construirea obiectelor Exemplu de applet care folosete 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

Ex:

: public class NumeClasa { ... } (acces permis si claselor din afara propriului pachet) (orice alt modificator genereaz o eroare de compilare) de acces : abstract class NumeClasa { ... } (creare de clase ablon - supraclase pentru alte clase)

Variabile folosite de clase variabile de instan : specifice fiecrei instane variabile de clas : declarate statice, au aceeai valoare pt. toate instanele Instane predefinite : null, this - desemnarea explicit a instanei curente a unei variabile super - este o referin 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 ) { 2

Construirea obiectelor 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 securitii i accesibilitii metodelor: Nivel public private protected private protected <default> static Acces permis pentru toate celelalte clase nici o alt clas subclase i clase din acelai pachet numai subclase clasele din acelai pachet

asociat numai metodelor i variabilelor, nu i claselor precizeaz c o metod poate fi declarat o singur dat (nu poate fi redefinit ntro subclas)

final - precizeaz c un obiect este stabilit i 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 modificat class A { final varFinala = 100 ; variabila ramane constanta void metoda() { varFinala = 200; } eroare! }

la nivelul var : este declarat constant class A { final void metoda() {...} } class B extends A { void metoda() {...} eroare! } abstract - permite crearea de metode ablon Suprancrcarea metodelor - overloading class A { void metoda(int x) {...} } class B extends A { void metoda(string s) { ... } 3

Construirea obiectelor } Folosirea obiectelor

1. 2.

Crearea i distrugerea obiectelor spaiul de memorie nu este pre-alocat este dezalocat automat (malloc / free) exist un echivalent al constructorului nu exist un echivalent al destructorului exist metoda finalize care poate fi folosit pe post de destructor

Crearea unei instane : NEW String s; s = new String(10); n = s.length(); if s.compareTo(test) ... pos = s.indexOf(test); Distrugerea unei instane : public void destroy() { ... } Metoda constructor Identic cu cea din C++; class A { void A(int arg) { ... } void A(String s) { ... } } Metoda finalize : void finalize() Este apelat automat n momentul cnd se declaneaz operaiunea de colectare a gunoiului. Motenirea 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();

S-ar putea să vă placă și