【问题标题】:Passing value from function to another class Kotlin将值从函数传递到另一个 Kotlin 类
【发布时间】:2021-06-11 10:24:24
【问题描述】:

有一个日历对象,它具有日、月和年属性。有人创建了一个 selectCurrentDay() 成员函数,将对象的属性设置为当天。无需再手动输入日期,因为我们有 selectCurrentDay() 函数!

最初,日历显示一个随机日期。实现当前日期打印:选择它并打印以空格分隔的日、月和年。

class Calendar(var day: String, var month: String, var year: String) {
    fun selectCurrentDay() {
        day = "13"
        month = "03"
        year = "2021"
    }
}

fun createCalendar() =
    Calendar("13", "03", "2021")

fun main() {
    val calendar = createCalendar()
}

【问题讨论】:

    标签: function class kotlin parameter-passing


    【解决方案1】:

    第一

    import java.util.Calendar
    

    我有两个选择

    1

    class Calendar(var day: String, var month: String, var year: String) {
        fun selectCurrentDay() {
            val calender = Calendar.getInstance()
            day = calender.get(Calendar.DAY_OF_MONTH).toString()
            month = calender.get(Calendar.MONTH).toString()
            year = calender.get(Calendar.YEAR).toString()
        }
    }
    

    2 创建 CurrentDateObject 并使 Calender 类默认使用当前日期

    object CurrentDate {
        private val calender get() = Calendar.getInstance()
        val day get() = calender.get(Calendar.DAY_OF_MONTH).toString()
        val month get() = calender.get(Calendar.MONTH).toString()
        val year get() = calender.get(Calendar.YEAR).toString()
    }
    
    class Calendar(var day: String = CurrentDate.day, 
                   var month: String = CurrentDate.month, 
                   var year: String = CurrentDate.year) {}
    

    【讨论】:

      【解决方案2】:
      class Calendar(var day: String, var month: String, var year: String) {
      
          fun selectCurrentDay() {
              day = day
              month = month
              year = year
          }
      }
      fun createCalendar() = Calendar("13", "03", "2021")
      fun main() {
          val calendar = createCalendar()
          val date: String = "day ${calendar.day}, month ${calendar.month}, year ${calendar.year}"
          println(date)
      } 
      

      你可以这样做来打印值

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-26
        • 2020-09-26
        • 2021-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多