Προγραμματισμός με αντικείμενα

Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr

Αντικείμενα

Κλάσεις

Δημιουργία νέων αντικειμένων

Καθορισμός μνήμης αντικειμένων με new

Καθορισμός μνήμης αντικειμένων με αναφορά

Κλήση μεθόδων

Πρόσβαση σε ιδιότητες

Ορατότητα

Παράδειγμα: Point

class Point {
  // Public fields
  public int x, y;
  private boolean visible;
  private int serialNumber;
  // Private method
  private void setpos(int sx, int sy) {
    x = sx;
    y = sy;
  }
  // Public methd
  public void moveToCenter() {
    setpos(0, 0);
  }

}

Παράδειγμα: TestPoint

class TestPoint {
  public static void main(String args[])
  {
    Point a;

    a = new Point();
    a.moveToCenter();
    // Use public field
    a.x = 10;
  }
}

Μέθοδοι κατασκευαστές

Κλήση κατασκευαστών

Ιδιότητες και μέθοδοι κλάσης

Δήλωση μεταβλητών με var

Παράδειγμα: εύρεση ημέρας


import java.util.Calendar;
import java.util.GregorianCalendar;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

class FindDay {
  /** Return the name of the given numeric week day */
  public static String weekDayName(int weekNumber) {
    return switch (weekNumber) {
      case Calendar.MONDAY -> "Δευτέρα";
      case Calendar.TUESDAY -> "Τρίτη";
      case Calendar.WEDNESDAY -> "Τετάρτη";
      case Calendar.THURSDAY -> "Πέμπτη";
      case Calendar.FRIDAY -> "Παρασκευή";
      case Calendar.SATURDAY -> "Σάββατο";
      case Calendar.SUNDAY -> "Κυριακή";
      default -> throw new IllegalStateException("Unexpected value: " + weekNumber);
    };
  }

  public static void main(String args[]) throws Exception {
  // ...
}

Παράδειγμα: εύρεση ημέρας (main)


  public static void main(String[] args) throws Exception {
      // Are appropriate arguments given?
      if (args.length != 3) {
        System.err.println("usage: FindDay year month day");
        System.exit(1);
      }

      // Parse year, month, day
      int year = Integer.parseInt(args[0]);
      int month = Integer.parseInt(args[1]) - 1;
      int monthDay = Integer.parseInt(args[2]);

      // Set the calendar and calculate the day name
      var d = new GregorianCalendar(year, month, monthDay);
      String dn = weekDayName(d.get(Calendar.DAY_OF_WEEK));

      // Print the day name
      System.out.println(dn);
    }

Μέθοδοι όλων των αντικειμένων

Άσκηση: δημιουργία αντικειμένων και πρόσβαση στις μεθόδους τους

Άσκηση 3

Μπορείτε να κατεβάσετε το αντίστοιχο αρχείο και να στείλετε τους βαθμούς σας από τους δεσμούς που βρίσκονται στη σελίδα των ασκήσεων.

Βιβλιογραφία

Περιεχόμενα