Çalıştırıldığında ekranda görüntülenen iletiyi dikkate alarak programı tamamlayın.

class Hello
  ...
end

def main
  hello = Hello.new
  hello.call
end

main
ruby main.rb
Hello, World!

Hello nesnesini değiştirelim, öyle ki selamlama terminalden veya standart girdiden okunan isme yapılsın.

ruby main.rb <<INPUT
Merve
INPUT
Hello, Merve!

İpucu: Hello nesnesine name adında bir nitelik ekleyin, isim okuma işlemini sınıf dışında yapın ve Hello nesnesini inşa ederken name niteliğini ilkleyin.

İsim verilmemişse öntanımlı isim World olarak alınabilir mi?

ruby main.rb <<INPUT
INPUT
Hello, World!

Üç boyutlu uzayda bir noktayı modelleyin.

class Point3D
  ...
end

def main
  p = Point3D.new 3, 5, 8
  puts p
end
ruby main.rb
(x: 3, y: 5, z: 8)

Point3D nesnesine x, y ve z koordinatları isimlendirilmiş olarak nasıl verilir?

...

def main
  p = Point3D x: 3, y: 5, z: 8
  puts p
end

Değer verilmemiş bir koordinatın öntanımlı olarak 0 alınmasını sağlayın.

...

def main
  p = Point3D x: 3
  puts p
end
ruby main.rb
(x: 3, y: 0, z: 0)

Point3D nesnesinin herhangi bir koordinat bilgisinin en fazla 5 kez okunmasını, bu sınır aşıldığında uyarı görüntülenmesini sağlayın.

...

def main
  p = Point3D x: 3, y: 5, z: 8
  puts p.x
  puts.p.x
  puts p.z
  puts p.y
  puts p.y
  puts p.z
end
ruby main.rb
3
3
8
5
5
UYARI: Okuma limiti aşıldı

Koordinatlara yapılan erişim sayısını nread adında bir nitelikle izleyin. Bu niteliğin dışarıdan okunmamasını sağlayın.


Aşağıda verilen Falan nesnesinde her bir metodu çağırarak neler olduğunu gözleyin.

class Falan
  private

  def this_is_private
  end

  def not_private_this_is_public
  end

  public :not_private_this_is_public

  def also_private
  end

  public

  def now_public
  end

  def not_public_this_is_private
  end

  private :not_public_this_is_private

  def also_public
  end
end

Aşağıda verilen koddaki eksik kısımları tamamlayın ve çalıştırın. Sorunlar nelerdir? Deneme yaparak açıklayın.

class Point3D
  ...

  def reset
    x, y, z = 0, 0, 0
  end

  private

  attr_writer :x, :y, :z
end

def main
  p = Point3D.new 3, 5, 8
  p.reset
  p.z = 7
end

main
ruby main.rb