Kurzusok
/
PHP
PHP
/
Feladatok
/
Ablakkezelő rendszer
Ablakkezelő rendszer

Ablakkezelő rendszer

Tanulófeladat

Bevezetés

Osztályok

Az osztályok a kódszervezés alapegységei a PHP-ben. Az olyan kód, amely egy dolog vagy egy folyamat viselkedését írja le, egy osztályba csoportosítható. A konvenció szerint az osztályhoz rendelt függvényeket methods néven nevezzük.

<?php

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

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

Az osztályokat a new kulcsszóval példányosítjuk; ez memóriát foglal az osztálypéldány számára, és meghívja az osztály konstruktor metódusát. A példányosított osztályokat hozzárendelhetjük egy változóhoz. Egy osztálypéldány metódusainak meghívásához a -> hozzáférési operátort használhatjuk.

<?php

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

Egy példányosított osztály a saját példányára a különleges $this változóval hivatkozhat. Az osztályoknak tulajdonságaik is lehetnek; ezek az osztályobjektum példányához kötött változókként viselkednek. Ezekre a tulajdonságokra kívülről és belülről is hivatkozhatunk.

<?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

Utasítások

Ebben a feladatban egy ablakkezelésen alapuló számítógépes rendszert fogsz szimulálni. Létrehozol majd néhány ablakot, amelyek mozgathatók és átméretezhetők. A következő ábra szemlélteti azokat az értékeket, amelyekkel az alábbiakban dolgozni fogsz.

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

1. A programablak tulajdonságainak meghatározása

A megadott osztályváz felhasználásával hozd létre a y, x, height és width értékekhez tartozó tulajdonságokat.

<?php

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

2. A programablak kezdőértékeinek meghatározása

Definiálj egy konstruktorfüggvényt a ProgramWindow osztályhoz. Nem szabad argumentumot fogadnia, de a konstruktor futása során állítsd be a tulajdonságai alapértelmezett értékeit. A kezdeti y és x értékét állítsd 0-ra. A kezdeti height és width értékét pedig egy 600x800-as képernyőméretre.

<?php

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

3. Függvény definiálása az ablak átméretezéséhez

Definiálj egy új Size osztályt a Size.php fájlban. A konstruktorának argumentumként kell megkapnia a height és width tulajdonságok értékét. Ezenkívül a ProgramWindow-nak szüksége van egy átméretező függvényre, amely megkapja a Size objektum példányát, és frissíti a saját tulajdonságait.

<?php 

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

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

4. Függvény definiálása az ablak mozgatásához

Definiálj egy új Position osztályt a Position.php fájlban. A konstruktorának argumentumként kell megkapnia a y és x tulajdonságok értékét. Ezenkívül a ProgramWindow-nak szüksége van egy mozgató függvényre, amely megkapja a Position objektum példányát, és frissíti a saját tulajdonságait.

<?php 

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

$window->y;
// => 80
$window->x;
// => 313
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
PHP Exercism

Készen állsz elkezdeni a(z) Ablakkezelő rendszer feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) PHP nyelvet 11 fogalom122 feladat segítségével, valódi emberi mentorálással, mindez ingyen.