Laborator6 - Java
Laborator6 - Java
SCOPUL LUCRRII
II.
NOIUNI TEORETICE
Film
int pretBilet=30000;
String cinematograf="Patria";
String nume;
int durata; // in minute
boolean luatOscar;
Observaii:
O metod static este considerat c aparine clasei i nu instanierilor clasei. O
metod static poate s refere numai variabile sau metode statice (pentru c numai
acestea exist fr a se fi instaniat un obiect din clasa respectiv), dar poate s fie
apelat din orice metod a clasei.
Metoda main( ) care reprezint punctul de plecare pentru orice program Java,
este declarat ca fiind static i deci poate s fie referit fr instanierea unui obiect.
Limbajul Java permite declararea unei secvene de cod ca fiind static n modul
urmtor:
static {
secventa de cod
}
Programul afieaz:
Floarea
10
dei n metoda main( ) nu sunt prevzute prelucrri, s-au executat secvenele de cod
indicate cu atributul static din ambele clase definite.
S considerm un alt exemplu:
public class Test
{
int x;
static int y=0;
static void modificaY() {
y+=10;
}
void modificaY(int y) {
this.y=y;
}
void modificaX(int x) {
this.x=x;
}
void func() {
Test t=new Test();
y=1;
t.y=1;
Test.y=1;
Test.modificaY();
t.modificaY(2);
System.out.println(y);
x=1;
t.modificaX(2);
System.out.println(x);
}
public static void main(String args[]) {
Test t=new Test();
t.func();
}
}
n metoda func( ) a clasei Test a fost creat un obiect care reprezint o instaniere
a clasei. Se observ c n timp ce pentru variabila static y exist 5 variante pentru
atribuirea unei valori (toate referindu-se la variabila global y), pentru variabila x cele
dou modificri ale valorii lui x se refer la variabile diferite n primul caz (x=1) este
vorba despre data membru x a obiectului pentru care se execut metoda, iar n cel de-al
doilea caz (t.modifica(x)) este vorba despre data membru x a obiectului de tip Test creat
n metoda func().
2. Motenirea
Vezi Curs 6, seciunea 4.5.
III.
MODUL DE LUCRU
IV.
TEM
Hard-disk
Un disc are un nume i o capacitate. O discheta are n plus o stare (1 dac este writeprotected, 0 altfel). Un hard-disk are n plus un controler (de tip sir de caractere;
exemplu: IDE, SCSI). Superclasa are un constructor (cu parametri) i o funcie de
afiare (afieaz valorile datelor membru). Clasa discheta are un constructor, o funcie de
afiare i o funcie care seteaz (modific) starea dischetei. Clasa hard-disk are un
constructor i o funcie de afiare. Scriei un program Java care lucreaz cu obiecte de
tipul celor 3 clase.