Documente Academic
Documente Profesional
Documente Cultură
AL REPUBLICII MOLDOVA
Universitatea Tehnică a Moldovei
Facultatea Calculatoare, Informatică şi Microelectronică
Departamentul Informatică și Ingineria Sistemelor
Raport
pentru lucrarea de laborator Nr.2
Verificat:
Chișinău – 2023
Cuprins
TEMA LUCRĂRII..............................................................................................................3
SCOPUL LUCRĂRII:........................................................................................................3
ETAPELE DE REALIZARE:............................................................................................3
SARCINA 1:........................................................................................................................3
CODUL:..............................................................................................................................3
OUTPUT:............................................................................................................................4
CONCLUZII........................................................................................................................6
Lucrare de laborator nr. 1
Tema lucrării: Moștenirea
Scopul lucrării:
Însușirea principiilor de moștenire a claselor;
1. Condiția problemei 1
Varianta 1
Scrieți un cod care ar conține două clase legate prin moștenire acestea să fie funcționale și
să satisfacă următoarele cerințe:
• Clasa de bază să conțină 3 constructori și 2 metode
• Clasa derivată să conțină 2 constructori și 3 metode
• Constructorii și metodele să fie apelați cu cuvintele cheie this și super
Creați următoarele obiecte în metoda main():
a) Obiectul clase de bază folosind constructorul clasei de bază;
b) Obiectul clase derivate folosind constructorul clasei de bază;
c) Obiectul clase de derivate folosind constructorul clasei derivate;
d) Obiectul clase de bază folosind constructorul clasei derivate;
Metodele declarate să fie apelate utilizând toate obiectele existente;
Codul:
class Time {
private int hours;
private int minutes;
public Time() {
this.hours = 0;
this.minutes = 0;
}
public Time(int hours, int minutes) {
this.hours = hours;
this.minutes = minutes;
}
public Time(Time time) {
this.hours = time.hours;
this.minutes = time.minutes;
}
public int getHours() {
return hours;
}
public void setHours(int hours) {
this.hours = hours;
}
public void setMinutes(int minutes) {
this.minutes = minutes;
}
public void printTime() {
System.out.println("Ora: " + hours + ":" + minutes +" minute");
}
}
class DayTime extends Time {
private String daytime = "Necunoscut";
public DayTime() {
super();
}
public DayTime(int hours, int minutes) {
super(hours, minutes);
}
public void identDayTime() {
int hours = getHours();
if ((hours >= 0 && hours < 4) || (hours >= 21 )){
daytime = "Noapte";
}
if (hours >= 4 && hours < 12){
daytime = "Dimineață";
}
if (hours >= 12 && hours < 17){
daytime = "Zi";
}
if (hours >= 17 && hours < 21){
daytime = "Seară";
}
}
public void printDayTime() {
System.out.println("Timpul zilei: " + daytime);
}
}
public class Main {
public static void main(String[] args) {
// a) Obiectul clasei de bază folosind constructorul clasei de
bază;
Time time1 = new Time();
time1.printTime();
// b) Obiectul clasei derivate folosind constructorul clasei de
bază;
DayTime daytime1 = new DayTime();
daytime1.printTime();
// c) Obiectul clasei derivate folosind constructorul clasei
derivate;
DayTime daytime2 = new DayTime(17, 30);
daytime2.printTime();
// d) Obiectul clasei de bază folosind constructorul clasei
derivate.
Time time2 = new DayTime();
time2.printTime();
// Apelarea metodelor
time1.setHours(3);
time1.setMinutes(45);
time1.printTime();
daytime1.setHours(11);
daytime1.setMinutes(15);
daytime1.printTime();
daytime1.identDayTime();
daytime1.printDayTime();
daytime2.setHours(3);
daytime2.setMinutes(15);
daytime2.printDayTime();
}
}
Output:
În figura 1 putem observa că ora și minutele sunt 0 ore și 0 minute deoarece în clasa de
bază am inițializat obiectul minutes și hours cu valoare 0.
2.Sarcina 2:
Să se creeze clasa roata, care conține rază. Determinați constructorii și metodele de acces.
Creați clasa automobil, care conține roți și un câmp care reprezintă firma producătoare. Creați o
clasă derivată autocamion care se deosebește prin tonaj. Determinați constructorii, destructorul și
alte funcții necesare.
Codul:
import java.util.Scanner;
class Roata {
private int raza;
public Roata() {
raza = 0;
}
public Roata(int r) {
raza = r;
}
public Automobil() {
super();
firma = "NoName";
}
public Autocamion() {
super();
tonaj = 0;
}