Last active
April 28, 2025 20:06
-
-
Save thinkphp/302ebebdd45cce7cd31289ea9cf47fad to your computer and use it in GitHub Desktop.
Interfata Java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
În Java, o interfață este un tip de referință similar cu o clasă, dar care conține doar declarații de metode și constante, | |
fără implementare. Interfețele sunt folosite pentru a defini un "contract" pe care clasele care o implementează | |
trebuie să îl respecte. | |
*/ | |
public class Main { | |
public static void main(String[] args) { | |
System.out.println("===== FORME GEOMETRICE ====="); | |
FormaGeometrica cerc = new Cerc(5.0); | |
FormaGeometrica dreptunghi = new Dreptunghi(4.0, 6.0); | |
System.out.println("Cerc:"); | |
System.out.println("Aria: " + cerc.calculeazaAria()); | |
System.out.println("Perimetrul: " + cerc.calculeazaPerimetrul()); | |
cerc.afiseazaDetalii(); | |
System.out.println("\nDreptunghi:"); | |
System.out.println("Aria: " + dreptunghi.calculeazaAria()); | |
System.out.println("Perimetrul: " + dreptunghi.calculeazaPerimetrul()); | |
dreptunghi.afiseazaDetalii(); | |
} | |
} | |
// Definirea interfeței FormaGeometrica | |
interface FormaGeometrica { | |
// Metodă abstractă pentru calcularea ariei | |
double calculeazaAria(); | |
// Metodă abstractă pentru calcularea perimetrului | |
double calculeazaPerimetrul(); | |
// Metodă default (disponibilă din Java 8) | |
default void afiseazaDetalii() { | |
System.out.println("Aria: " + calculeazaAria()); | |
System.out.println("Perimetrul: " + calculeazaPerimetrul()); | |
} | |
} | |
// Implementarea interfeței pentru cerc | |
class Cerc implements FormaGeometrica { | |
private double raza; | |
public Cerc(double raza) { | |
this.raza = raza; | |
} | |
@Override | |
public double calculeazaAria() { | |
return Math.PI * raza * raza; | |
} | |
@Override | |
public double calculeazaPerimetrul() { | |
return 2 * Math.PI * raza; | |
} | |
} | |
// Implementarea interfeței pentru dreptunghi | |
class Dreptunghi implements FormaGeometrica { | |
private double lungime; | |
private double latime; | |
public Dreptunghi(double lungime, double latime) { | |
this.lungime = lungime; | |
this.latime = latime; | |
} | |
@Override | |
public double calculeazaAria() { | |
return lungime * latime; | |
} | |
@Override | |
public double calculeazaPerimetrul() { | |
return 2 * (lungime + latime); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment