Lucrarea de Laborator Nr. 3: Raport La
Lucrarea de Laborator Nr. 3: Raport La
Raport la
Lucrarea de laborator Nr. 3
Disciplina: Programarea orientata pe obiecte
Chișinău – 2020
Obiectivele lucrării:
1. Crearea unui proiect java.
2. Exemplu de polimorfism
3. Exemplu de abstractizare cu utilizarea de interfata
4. Exemplu de abstractizare cu utilizarea de class abstract
5. Adaugarea proiectului în GITHUB
Clasele create:
Abstract Class
public abstract class Employee {
private String name;
private String surname;
private int age;
private char sex;
private String function;
private double baseSalary;
public Employee(int age, char sex, String name, String surname,String function ) {
this.age = age;
this.sex = sex;
this.name = name;
this.surname = surname;
this.function = function;
this.baseSalary = 5000;
}
public Programmer(int age, char sex, String name, String surname, String function, String codingLanguage, String
level) {
super(age, sex, name, surname, function);
this.codingLanguage = codingLanguage;
this.level = level;
}
@Override
public void work() {
System.out.println("I'm Coding...");
}
@Override
public double calculateSalary(double baseSalary) {
return baseSalary+2500;
}
@Override
public String printAll() {
return
"\nname : " + getName() + '\n' +
"surname : " + getSurname() + '\n' +
"age : " + getAge() + '\n' +
"function : " + getFunction() + '\n' +
"codingLanguage : " + codingLanguage + '\n' +
"level : " + level + '\n' +
"salary : " + calculateSalary(getBaseSalary()) + '\n'
}
}
Interface
public interface Worker {
@Override
public void sayHello(String name) {
System.out.println("Hello,I'm " + name);
}
@Override
public void work() {
System.out.println("I'm testing apps...");
}
@Override
public double calculateSalary(double baseSalary) {
return baseSalary + 1500;
}
@Override
public String printAll() {
return
"\nname : " + name + '\n' +
"surname : " + surname + '\n' +
"age : " + age + '\n' +
"function : " + function + '\n' +
"sex : " + sex + '\n' +
"salary : " + calculateSalary(baseSalary) + '\n' +
"type of testing : " + typeOfTesting;
}
}
public PersonalData(int age, char sex, String name, String surname, String function) {
this.age = age;
this.sex = sex;
this.name = name;
this.surname = surname;
this.function = function;
this.baseSalary = 5000;
}
public Designer(int age, char sex, String name, String surname, String function,String type) {
super(age, sex, name, surname, function);
this.type = type;
}
@Override
public void work() {
System.out.println("I'm drawing...");
}
@Override
public double calculateSalary(double baseSalary) {
return baseSalary + 1200;
}
@Override
public String printAll() {
return
"\nname : " + getName()+ '\n' +
"surname : " + getSurname() + '\n' +
"age : " + getAge() + '\n' +
"function : " + getFunction() + '\n' +
"sex : " + getSex() + '\n' +
"type : " + type + '\n';
}
public void sayHello(String name){
System.out.println("Hello, I'm " + getName());
}
}
Main:
public class Main {
Result:
Hello, I'm Alex
My salary is : 7500.0
I'm Coding...
name : Alex
surname : Botnaru
age : 25
function : programmer
codingLanguage : Java
level : Junior
salary : 7500.0
----------------------------------------
Hello,I'm Ion
My salary is : 6500.0
name : Ion
surname : Osipciuc
age : 24
function : tester
sex : M
salary : 6500.0
----------------------------------------
My salary is : 6200.0
I'm drawing...
name : Ana-Maria
surname : Alcaza
age : 22
function : designer
sex : F
type : UI
Concluzie:
Efectuand aceasta lucrare de laborator, am studiat in special 2 principii ale
OOP: polimorfismul si abstractizarea, utilizand limbajul de programare JAVA.
Pentru aceasta a trebuit sa efectuam un exemplu de polimorfism, unul de
abstractizare utilizind interfata si altul utilizaind clasa abstracta.
In urma efectuarii am inteles esenta acestor principii si ca
abstractizarea nu poate exista fara de polimorfism.De asemenea am insusit
diferentele si asemanarile dintre interfata si o clasa abstracta si diferentele dintre
method overridind si method overloading.