Я написал пример программы, и я не понимаю следующее:
- Почему конструктор без аргументов не вызывается в Ruby?
- Как получить доступ к переменной класса вне определения класса?
- Почему он всегда добавляет символы новой строки в конце строки? Как мы раздеваем это?
Код:
class Employee
attr_reader :empid
attr_writer :empid
attr_writer :name
def name
return @name.upcase
end
attr_accessor :salary
@@employeeCount = 0
def initiaze()
@@employeeCount += 1
puts ("Initialize called!")
end
def getCount
return @@employeeCount
end
end
anEmp = Employee.new
print ("Enter new employee name: ")
anEmp.name = gets()
print ("Enter #{anEmp.name}'s employee ID: ")
anEmp.empid = gets()
print ("Enter salary for #{anEmp.name}: ")
anEmp.salary = gets()
theEmpName = anEmp.name.split.join("\n")
theEmpID = anEmp.empid.split.join("\n")
theEmpSalary = anEmp.salary.split.join("\n")
anEmp = Employee.new()
anEmp = Employee.new()
theCount = anEmp.getCount
puts ("New employee #{theEmpName} with employee ID #{theEmpID} has been enrolled, welcome to hell! You have been paid as low as $ #{theEmpSalary}")
puts ("Total number of employees created = #{theCount}")
Выход:
Enter new employee name: Lionel Messi
Enter LIONEL MESSI
's employee ID: 10
Enter salary for LIONEL MESSI
: 10000000
New employee LIONEL
MESSI with employee ID 10 has been enrolled, welcome to hell! You have been paid as low as $ 10000000
Total number of employees created = 0