Menu
Coddy logo textTech

Dikdörtgen Sınıfı

Coddy'nin Lua Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 56 / 70.

challenge icon

Görev

Kolay

Şimdi, önceki derste oluşturduğunuz temel Shape sınıfından miras alan bir Rectangle sınıfı oluşturarak Şekil Yöneticimizi genişletelim.

Kodunuzu düzenli tutmak için üç dosya ile çalışacaksınız:

  • Shape.lua: Önceki görevdeki temel Shape sınıfınız (:new(name) ve :getName() ile birlikte).
  • Rectangle.lua: Shape sınıfından miras alan bir Rectangle sınıfı oluşturun. Yapıcı (constructor) width ve height değerlerini kabul etmeli, üst yapıcıyı "Rectangle" ismiyle çağırmalı ve boyutları saklamalıdır. Dikdörtgenin alanını hesaplayan ve döndüren bir :getArea() metodu ekleyin.
  • main.lua: Rectangle modülünüzü dahil edin (require), girdiden genişlik ve yüksekliği okuyun, bir Rectangle örneği oluşturun ve ismini ardından alanını ayrı satırlarda yazdırın.

Rectangle örneklerinin prototip zinciri üzerinden Shape'in metodlarına erişebilmesi için miras bağlantısını düzgün bir şekilde kurmayı unutmayın.

Girdi: İki satır—birincisi genişliği (sayı), ikincisi yüksekliği (sayı) içerir.

Çıktı: İki satır—:getName() metodundan gelen dikdörtgenin adı, ardından :getArea() metodundan gelen alanı.

Kendin dene

-- Rectangle modülünü dahil et
local Rectangle = require('Rectangle')

-- Girdiden genişlik ve yükseklik değerlerini oku
local width = tonumber(io.read())
local height = tonumber(io.read())

-- Verilen boyutlarla yeni bir Rectangle örneği oluştur
local rect = Rectangle:new(width, height)

-- Dikdörtgenin adını ve alanını yazdır
print(rect:getName())
print(rect:getArea())

Object Oriented Programming bölümündeki tüm dersler