منبع اصلی نوشتار زیر در این لینک قرار دارد

برنامه نویسی پیشرفته در روبی – بخش اول

در کتاب آموزش روبی، در فصل آخر، خرده توضیحاتی را درباره شی گرایی در روبی آورده‌ایم، اما آن توضیحات برای کسی که بخواهد کد شی‌گرای واقعی بنویسد، کافی نیست. بنابراین، تصمیم بر آن شد تا در سلسله مقالاتی در این وبگاه، شی گرایی و برنامه نویسی پیشرفته در روبی را بررسی کنیم. در فصل آخر کتاب، به قدر کافی به مفاهیم تئوری شی گرایی (چهار مفهوم انتزاع، وراثت، چند ریختی و کپسوله سازی) پرداخته ایم، بنابراین از این مقاله، به صورت عملی مفاهیم مختلف را در روبی بررسی میکنیم.

ساختار کلی کلاس ها در روبی

کلاس ها در روبی به این شکل ساخته می شوند :

class Name
end

توجه داشته باشید که نام کلاس ها، حتما باید مانند ثوابت با حرف بزرگ انگلیسی شروع شود. مثلا اگر کلاس شما، کلاس Animal است، نمی توانید آن را به شکل animal نام گذاری کنید. در فاصله بین نام کلاس تا end ، متدهای یک کلاس را قرار میدهیم. مهم ترین متد هر کلاس، متد initialize است، که کلاس را مقداردهی اولیه میکند. برای مثال کلاس User را با دو مقدار اولیه username و password در نظر بگیرید :

class User
 def initialize(username, password)
  @username = username
  @password = password
 end
end

متغیرهایی که با @ شروع می شوند، متغیر های instance هستند، بدون دادن مقدار کافی به این متغیرها، کلاس(های) شما، ایجاد نمی شوند. به این شکل، یک شی از کلاس User ایجاد می کنیم :

user = User.new("username", 123456)

با استفاده از متد new ، مقدار دهی اولیه را انجام میدهیم. اما هنوز متدی در نظر نگرفته ایم که با استفاده از آن، بتوانیم یوزرنیم کاربر را دریافت کنیم، و پسورد کاربر را به شکل **** نشان دهیم، برای این کار، متد print_info را در کلاس User تعریف میکنیم.

class User
 def initialize(username, password)
  @username = username
  @password = password
 end
 def print_info
  puts "username: #{@username}"
  puts "password: #{@password.length * "*"}
 end
end

اکنون، متد مورد نظر ما قابلیت اجرایی شدن را داراست. پس با استفاده از print_info نتیجه مطلوب را دریافت خواهیم کرد.

توجه داشته باشید که این مقاله، آموزش ابتدایی و پایه‌ای برنامه سازی پیشرفته در روبی بود، در مقالات آینده، از امکانات بیشتری استفاده خواهیم نمود.



برچسب ها : , , , ,