Διαδρομές
/
PHP
PHP
/
Ασκήσεις
/
Σύστημα Παραθύρων
Σύστημα Παραθύρων

Σύστημα Παραθύρων

Άσκηση εκμάθησης

Εισαγωγή

Κλάσεις

Οι κλάσεις είναι μια μονάδα οργάνωσης κώδικα στην PHP. Κώδικας που αναπαριστά τη συμπεριφορά ενός στοιχείου ή τη συμπεριφορά μιας διαδικασίας μπορεί να ομαδοποιηθεί σε μια κλάση. Οι συναρτήσεις που ανατίθενται σε μια κλάση ονομάζονται methods κατά σύμβαση.

<?php

class Door
{
    function lock()
    {
        // ...
    }

    function unlock()
    {
        // ...
    }
}

Σε μια κλάση δημιουργείται στιγμιότυπο με τη λέξη-κλειδί new. Αυτό δεσμεύει μνήμη για το στιγμιότυπο της κλάσης και καλεί τη μέθοδο κατασκευαστή της κλάσης. Ένα στιγμιότυπο κλάσης μπορεί να ανατεθεί σε μια μεταβλητή. Για να καλέσουμε τις μεθόδους ενός στιγμιότυπου κλάσης, μπορούμε να χρησιμοποιήσουμε τον τελεστή πρόσβασης ->.

<?php

$a_door = new Door();
$a_door->lock();
$a_door->unlock();

Ένα στιγμιότυπο κλάσης μπορεί να αναφέρεται στον εαυτό του χρησιμοποιώντας την ειδική μεταβλητή $this. Οι κλάσεις μπορούν επίσης να έχουν ιδιότητες· αυτές λειτουργούν ως μεταβλητές που είναι δεσμευμένες στο στιγμιότυπο του αντικειμένου της κλάσης. Σε αυτές τις ιδιότητες μπορεί να γίνει αναφορά εσωτερικά ή εξωτερικά.

<?php

class Car
{
    public $color;

    function __construct($color)
    {
        $this->color = $color;
    }

    function getColor()
    {
        return $this->color;
    }
}

$a_car = new Car("red");
$a_car->color; // => "red" by accessing the property
$a_car->getColor(); // => "red" by invoking the instance method

Οδηγίες

Σε αυτή την άσκηση θα προσομοιώσεις ένα σύστημα υπολογιστή βασισμένο σε παράθυρα. Θα δημιουργήσεις μερικά παράθυρα που μπορούν να μετακινηθούν και να αλλάξουν μέγεθος. Η παρακάτω εικόνα είναι αντιπροσωπευτική των τιμών με τις οποίες θα δουλέψεις παρακάτω.

 ╔════════════════════════════════════════════════════════════╗
 ║                                                            ║
 ║        position::$y,_                                      ║
 ║        position::$x  \                                     ║
 ║                       \<---- size::$width ---->            ║
 ║                 ^      *──────────────────────┐            ║
 ║                 |      │        title         │            ║
 ║                 |      ├──────────────────────┤            ║
 ║                 |      │                      │            ║
 ║          size::$height │                      │            ║
 ║                 |      │       contents       │            ║
 ║                 |      │                      │            ║
 ║                 |      │                      │            ║
 ║                 v      └──────────────────────┘            ║
 ║                                                            ║
 ║                                                            ║
 ╚════════════════════════════════════════════════════════════╝

1. Όρισε τις ιδιότητες του παραθύρου προγράμματος

Χρησιμοποιώντας τον σκελετό κλάσης που σου δίνεται, όρισε τις ιδιότητες για τις τιμές y, x, height και width.

<?php

$window = new ProgramWindow();
$window->y; // => null
$window->x; // => null
$window->height; // => null
$window->width; // => null

2. Όρισε τις αρχικές τιμές για το παράθυρο προγράμματος

Όρισε μια συνάρτηση κατασκευαστή για το ProgramWindow. Δεν πρέπει να παίρνει κανένα όρισμα, αλλά κατά την εκτέλεση του κατασκευαστή όρισε τις προεπιλεγμένες τιμές για τις ιδιότητές του. Πρέπει να ορίζει τις αρχικές τιμές των y και x σε 0. Πρέπει να ορίζει το αρχικό height και width σε μέγεθος οθόνης 600x800.

<?php

$window = new ProgramWindow();
$window->y; // => 0 
$window->x; // => 0
$window->height; // => 600
$window->width; // => 800

3. Όρισε μια συνάρτηση για την αλλαγή μεγέθους του παραθύρου

Όρισε μια νέα κλάση στο Size.php για μια κλάση Size. Πρέπει να παίρνει ορίσματα κατασκευαστή για να ορίζει τις ιδιότητες height και width. Επιπλέον, το ProgramWindow απαιτεί μια συνάρτηση αλλαγής μεγέθους, η οποία δέχεται το στιγμιότυπο του αντικειμένου Size και ενημερώνει τις δικές του ιδιότητες.

<?php 

$window = new ProgramWindow();
$size = new Size(764, 1080);
$window->resize($size)

$window->height;
// => 764
$window->width;
// => 1080

4. Όρισε μια συνάρτηση για τη μετακίνηση του παραθύρου

Όρισε μια νέα κλάση στο Position.php για μια κλάση Position. Πρέπει να παίρνει ορίσματα κατασκευαστή για να ορίζει τις ιδιότητες y και x. Επιπλέον, το ProgramWindow απαιτεί μια συνάρτηση μετακίνησης, η οποία δέχεται το στιγμιότυπο του αντικειμένου Position και ενημερώνει τις δικές του ιδιότητες.

<?php 

$window = new ProgramWindow();
$position = new Position(80, 313);
$window->move($position)

$window->y;
// => 80
$window->x;
// => 313
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
PHP Exercism

Έτοιμος να ξεκινήσεις την άσκηση Σύστημα Παραθύρων;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις PHP με 11 έννοιες122 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.