Ramovi za slike (objekti) – rešenje
Projekat ima dve klase (dva fajla): glavnu klasu RamoviZaSlike sa metodom main i klasu Ram, koja predstavlja pravougaoni ram sa podacima (atributima): dužinom, širinom i površinom.
Klasa Ram
Klasa samo opisuje šta svaki ram „ima“ – tri realna broja:
// Fajl Ram.java
// Klasa Ram opisuje jedan pravougaoni ram
public class Ram {
double a; // dužina u mm
double b; // širina u mm
double P; // površina u mm^2
}

Glavna klasa
U glavnoj klasi se prave dva objekta, unose se dužine i širine ramova, računaju površine i ispisuju na ekranu:
// Fajl RamoviZaSlike.java
import java.util.Scanner;
public class RamoviZaSlike {
public static void main(String[] args) {
Ram ram1 = new Ram(); // kreira objekat ram1
Ram ram2 = new Ram(); // kreira objekat ram2
Scanner ucitavac = new Scanner(System.in); // objekat za učitavanje
System.out.println("Unesi duzinu i sirinu rama 1 u mm");
ram1.a = ucitavac.nextDouble();
ram1.b = ucitavac.nextDouble();
System.out.println("Unesi duzinu i sirinu rama 2 u mm");
ram2.a = ucitavac.nextDouble();
ram2.b = ucitavac.nextDouble();
// Izračunavanje površina – svaki ram ima svoje a, b i P
ram1.P = ram1.a * ram1.b;
ram2.P = ram2.a * ram2.b;
// Ispis rezultata
System.out.println("Povrsina prvog rama je " + ram1.P + " mm^2");
System.out.println("Povrsina drugog rama je " + ram2.P + " mm^2");
}
}

Primer izvršavanja
Ulaz
620 577.35
400 300Izlaz (poslednja dva reda)
Povrsina prvog rama je 357957.0 mm^2
Povrsina drugog rama je 120000.0 mm^2Ispravljena greška: u kodu sa stare slike površina drugog rama računala se kao
ram1.P = ram1.a * ram1.b; (red je prepisan od prvog rama), pa je program ispisivao pogrešnu površinu drugog rama. Ispravno je ram2.P = ram2.a * ram2.b;.Napomena: obe klase mogu biti i u jednom fajlu
RamoviZaSlike.java – tada se ispred class Ram ne piše public.