Menu
Coddy logo textTech

Daire Sınıfı

Coddy'nin Lua Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 57 / 70.

challenge icon

Görev

Kolay

Önceki derste oluşturduğunuz Rectangle sınıfının yanına bir Circle sınıfı ekleyerek Shape Manager'ı oluşturmaya devam edelim.

Şekillerinizi düzenli tutmak için dört dosyayla çalışacaksınız:

  • Shape.lua: :new(name) ve :getName() içeren temel Shape sınıfınız.
  • Rectangle.lua: Önceki görevde oluşturduğunuz ve :getArea() içeren Rectangle sınıfınız.
  • Circle.lua: Shape sınıfından miras alan bir Circle sınıfı oluşturun. Yapıcı, bir radius kabul etmeli, üst sınıfın yapıcısını "Circle" adıyla çağırmalı ve yarıçapı saklamalıdır. Dairenin alanını πr² formülünü kullanarak hesaplayan bir :getArea() yöntemi ekleyin. π değeri için math.pi kullanın.
  • main.lua: Hem Rectangle hem de Circle modüllerini require edin. Girdiden üç değer okuyun: bir dikdörtgenin genişliği, bir dikdörtgenin yüksekliği ve bir dairenin yarıçapı. Her şekilden bir örnek oluşturun ve dört satır yazdırın: dikdörtgenin adı, dikdörtgenin alanı, dairenin adı ve dairenin alanı.

Her iki şekil de artık kalıtım yoluyla aynı arayüzü paylaşır: her birinde Shape sınıfından gelen bir :getName() yöntemi ve kendine ait bir :getArea() uygulaması bulunur. Bu ortak arayüz, gelecek derslerde kullanışlı olacaktır.

Girdi: Üç satır: genişlik (sayı), yükseklik (sayı) ve yarıçap (sayı).

Çıktı: Dört satır: dikdörtgenin adı, dikdörtgenin alanı, dairenin adı, dairenin alanı.

Kendin dene

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

-- Circle modülünü gerektir
-- TODO: Circle modülünü burada gerektir

-- Genişlik ve yüksekliği girdiden oku
local width = tonumber(io.read())
local height = tonumber(io.read())

-- TODO: Yarıçapı girdiden oku

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

-- TODO: Verilen yarıçapla yeni bir Circle örneği oluştur

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

-- TODO: Dairenin adını ve alanını yazdır

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Lua derleyicisi