Sunteți pe pagina 1din 7

Academia de Studii Economice din Moldova

Facultatea Tehnologii Informaționale și Statistică Economică

Tehnologii Java
Lucrare de laborator Nr.4

Tema: Moștenire

Scopul: utilizarea moștenirii la lucrul cu clasele în limbajul de


programare Java.

A realizat: Dranga Maria, grupa CIB-211

Profesor: Mititelu Vitalii, lect. univ.

Chișinău 2022
Moștenire
Moștenirea în Java este una dintre cele mai importante caracteristici ale unui sistem de programare
orientat pe obiecte (OOP). Am văzut o prezentare generală a moștenirii în tutorialul anterior al Concepte
OOP în Java. În acest tutorial, vom înțelege în detaliu despre moștenirea în Java și tipul acesteia, cu
diferite exemple.

Ce este moștenirea în Java


Moștenirea în java este o caracteristică care ajută la reutilizarea metodelor și variabilelor unei clase într-o altă clasă.
Cu alte cuvinte, permite unei noi clase să moștenească proprietățile și funcțiile unei clase existente fără a rescrie
codul. Implementează Părinte-copil relaţie. Aceasta înseamnă că clasa copil poate reutiliza direct variabilele și
funcțiile clasei părinte.
Terminologii în moștenirea Java
Mai jos sunt termenii obișnuiți folosiți cu privire la moștenire în java.

Superclasă - Este mamă clasa sau de bază clasă din care o nouă clasă moștenește proprietățile sau metodele.
Subclasă - Clasa care extinde clasa părinte este o subclasă sau copil clasă.
extinde - un cuvânt cheie care acceptă moștenirea
super- cuvânt cheie care denotă o metodă, un constructor sau o variabilă a unei clase părinte.
Caracteristicile moștenirii
 Abilitatea de a reutiliza codul existent al unei clase
 Sprijină metoda suprascriere
 Permite apelarea metodelor superclasei în cadrul metodelor unei subclase folosind super cuvânt cheie.
 Nu permite moștenirea clasei finale sau suprascrierea metodelor finale.
 Sprijină moștenirea multiplă folosind interfețe.
Sintaxă
class A {

//code

class B extends class A {

//code

}
Clasa A este de bază clasa și clasa B este copil clasă care extinde clasa de bază. Putem implementa moștenirea în
java folosind extinde cuvinte cheie.
Programul principal
package com.company;

public class Main {

public static void main(String[] args) {


// 9) User (nr. de ordine, e-mail, nume, prenume, parolă, tip cont)
User u1= new User();
u1.afisare("Primul utilizator> ");
u1.setNr_ordine(9);
u1.setNume("Dranga");
u1.setPrenume("Maria");
u1.setEmail("marcicadranga@gmail.com");
u1.afisare("Prima persoana: ");
User u2= new User(9 ," mlsae694@mail.ru", "Vieru",
"Damian","DRES#$3456","Deschis");
u2.afisare("U2");
User u3= new User(u2);
u3.afisare("u3=u2 ");
u3.setNume("Patlatai");
u2.afisare("u2 dupa modificare>");
u3.afisare("U3 dupa modificare>");
User u4= new User("Andronachi","Iuliana","ioerv@df.fd","Inchis");
u4.afisare("Persoana a 4");
System.out.println("Utilizatori cu drepturi mai inalte");
Utilizatori_cu_Drepturi_mai_Înalte di1= new
Utilizatori_cu_Drepturi_mai_Înalte(10," Srte@mail.ru ","Donu ","Vladislav
","DoVl567? ","Administrator "," Drepturi suplimentare");
System.out.print("Utilizatorul 1 cu depturi suplimentare");
di1.afisare();
Utilizatori_cu_Drepturi_mai_Înalte di2 = new
Utilizatori_cu_Drepturi_mai_Înalte("Ababii","Lucia","
ALbbia165@gmail.com","Local "," Nu are drepturi suplimentare");
System.out.print("Utilizatorul 2 cu drepturi suplimentare: ");
di2.afisare();
System.out.println("Administratori ");
Administrator ad1= new
Administrator(15,"SRdmnd@gmail.com","Burlacu","Mariana","DRGTK654!1","Inchis
","Administrator",265 );
System.out.print("Utilizatorul 1 cu drepturi de administrator: ");
ad1.afisare();
}}
Clasa și moștenirea
package com.company;

import java.util.Random;
import java.util.random.RandomGenerator;

public class User {


//9) User (nr. de ordine, e-mail, nume, prenume, parolă, tip cont)
int nr_ordine;
String email;
String nume;
String prenume;
String parola;
String tip_cont;

void afisare(String s ){
System.out.println(s+"Nr de ordine: "+getNr_ordine()+" E-mail:
"+getEmail()+" Numele: "+getNume()+ " Prenume: "+getPrenume()+" Parola:
"+getParola()+" Tipul contului: "+getTip_cont());

}
void setNr_ordine(int nr){
RandomGenerator Random = new Random();
if(nr==0) nr_ordine= Random.nextInt(100)+1;
else nr_ordine=nr;
}
int getNr_ordine(){
return nr_ordine;
}

void setEmail(String em){


if(em==null) email="Necunoscut!";
else email=em;}
String getEmail(){
return email;
}
void setNume(String n) {
if(n==null) nume="Necunoscut";
else nume=n;
}
String getNume(){
return nume;
}

void setPrenume(String p){


if(p==null) prenume="Necunoscut!";
else prenume=p;
}
String getPrenume(){
return prenume;
}
void setParola(String pr){
if(pr==null) parola= "Informatie confidentiala";
else parola=pr;
}
String getParola(){ return parola;}

void setTip_cont( String tc){


if(tc==null) tip_cont="Informatie necunoscuta";
else tip_cont=tc;
}
String getTip_cont(){
return tip_cont;
}
User( int nr, String em, String n, String p, String pr, String tc){
setNr_ordine(nr);
setEmail(em);
setNume(n);
setPrenume(p);
setParola(pr);
setTip_cont(tc);
}

User(){
setNr_ordine(0);
setEmail(null);
setNume(null);
setPrenume(null);
setParola(null);
setTip_cont(null);

}
User( String n, String p, String em, String tc){
setNume(n);
setPrenume(p);
setEmail(em);
setTip_cont(tc);

}
User(User other){
nr_ordine= other.nr_ordine;
email=other.email;
nume=other.nume;
prenume=other.prenume;
parola=other.parola;
tip_cont=other.tip_cont;
}}
class Utilizatori_cu_Drepturi_mai_Înalte extends User{
String drepturi_suplimentare;
Utilizatori_cu_Drepturi_mai_Înalte (int nr,String em, String n, String
p, String pr,String tc, String ds ){
super (nr,em,n,p,pr,tc);
drepturi_suplimentare=ds;
}
Utilizatori_cu_Drepturi_mai_Înalte(){

}
Utilizatori_cu_Drepturi_mai_Înalte ( String n, String p,String
em,String tc, String ds ){
super (n,p,em,tc);
drepturi_suplimentare=ds;
}

void setDrepturi_suplimentare(String ds) {


drepturi_suplimentare = ds;
}
String getDrepturi_suplimentare() {
return drepturi_suplimentare;}
void afisare(){
System.out.println("Nr de ordine: "+getNr_ordine()+" E-mail:
"+getEmail()+" Numele: "+getNume()+ " Prenume: "+getPrenume()+" Parola:
"+getParola()+" Tipul contului: "+getTip_cont()
+"Utilizatori_cu_Drepturi_mai_Înalte"+getDrepturi_suplimentare());
}
}
class Administrator extends Utilizatori_cu_Drepturi_mai_Înalte {
int valabilitate_parola;
Administrator(){

}
Administrator(int nr,String em, String n, String p, String pr,String tc,
String ds,int vp ){
super(nr, em, n, p, pr, tc, ds);
valabilitate_parola=vp;
}
Administrator( String n, String p,String em,String tc, String ds,int vp){
super(n, p, em, tc, ds);
valabilitate_parola=vp;
}
void setValabilitate_parola(int vp){
valabilitate_parola=vp;
}

public int getValabilitate_parola() {


return valabilitate_parola;}
void afisare() {
super.afisare();
System.out.println("Valabilitatea parolei: " +
getValabilitate_parola());
}
}

Concluzie:

În timpul efectuării lucrării de laborator nr. 4 „ Moștenire” am efectuat și am analizat


următoarele aspect:

 Crearea moștenirilor„Utilizatori_cu_Drepturi_mai_Înalte”, „Administrator” , clasa „User”


moștenește clasa „Utilizatori_cu_Drepturi_mai_Înalte” și respectiv clasa
„Utilizatori_cu_Drepturi_mai_Înalte” moștenește clasa „Administrator”.
 Citirea și afișarea fiecărui camp( utilizarea set și get).
 Crearea a trei tipuri de constructori (unul fără parametri, altul- cu toți parametrii, iar al treilea-
doar cu câțiva parametri).
 Utilizarea termenului super pentru apelarea clasei principale.

Astfel consider că am realizat scopul Lucrării de laborator nr. 4, am creat o clasă care moștenește
o altă clasă, am declarat și am lucrat cu elementele claselor date am creat constructori, am afișat
toate datele.
Bibliografia

Moștenirea în Java,https://www.tutorialcup.com/ro/Java/mo%C8%99tenirea-%C3%AEn-java.htm

Ce este moștenirea în Java - Tutorial cu exemple,https://ro.myservername.com/what-is-inheritance-


java-tutorial-with-examples

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