代码之家  ›  专栏  ›  技术社区  ›  Devrath

如何在kotlin中创建类的对象并向其传递类似于java的值

  •  -4
  • Devrath  · 技术社区  · 6 年前

    kotlin

    我正在努力学习

    • 如何声明类的对象
    • 如何将值传递给新对象

    public class TestClass {
    
    
        public TestClass(String hi) {
            Log.d("check","Constructor invocation"+hi);
        }
    
        public void initiate() {
            Log.d("check","Function invocation");
    
        }
    
    }
    

    RunningClass.java

    public class RunningClass {
    
        public RunningClass() {
    
            TestClass mObj = new TestClass("HI");
            mObj.initiate();
        }
    }
    

    等效代码是什么 RunningClass.java TestClass.java 在科特林

    4 回复  |  直到 6 年前
        1
  •  2
  •   Mittal Varsani    6 年前

    TestClass.kt

    class TestClass(hi: String) {
    
    
            init {
                Log.d("check", "Constructor invocation$hi")
            }
    
            fun initiate() {
                Log.d("check", "Function invocation")
    
            }
    
        }
    

    class RunningClass {
            init {
    
                val mObj = TestClass("HI")
                mObj.initiate()
            }
        }
    

        2
  •  2
  •   Goku Farhana Naaz Ansari    6 年前

    试试这个

    class TestClass(hi: String) {
    
        val firstProperty = "First property: $hi".also(::println)
    
        fun initiate() {
            Log.d("check", "Function invocation")
    
        }
    }
    

    class RunningClass {
    
        constructor () {
            val mObj = TestClass("HI")
            mObj.initiate()
        }
    }
    

    欲了解更多信息,请阅读

        3
  •  1
  •   Roland    6 年前

    Kotlin reference 包罗万象 Kotlin tutorials .

    我只能建议先看一下参考资料。有很多有趣的概念可以帮助您编写更干净、更简单的代码,但您至少需要了解它们。

    Kotlin Koans online 熟悉一些概念。

    因此,对于您提出的问题,您将从引用开始,可能很快(或稍后;-)跳转到“类和对象”,从那里跳转到“类和继承”,然后到达 constructors 你会很容易发现答案是:

    class TestClass(hi: String) {
      init {
        Log.d("check", "Constructor invocation$hi")
      }
      fun initiate() {
        Log.d("check", "Function invocation")
      }
    }
    

    以及:

    class RunningClass {
      init {
        val mObj = TestClass("HI")
        mObj.initiate()
      }
    }
    

    1. 如果不是,那么你可能正在处理更先进的东西。。。( KEEP 可能有趣,也可能不有趣……)

        4
  •  0
  •   Mayur Dabhi    6 年前

    class MyClass1 {
    companion object Named { }
    }
    
    val x = MyClass1  <----object
    

    从类参数传递数据

    class User(var name: String, var age: Int)