本章节讲述Kotlin简单的类调用
1.描述
实现一个最简单的功能:一个Activity中调用一个类中的方法。
这个是一个非常简单的功能。我们需要新建一个类。在该类中把要用到的方法封装好,然后在Activity中new一个该类的实例,通过该类的实例调用该类中的方法。
2.Java代码
Activity
public class KotlinActivity2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_kotlin2);
new GaoJieFun().getString(0, new GaoJieFun.MyApi() {
@Override
public void onSuccess() {
Log.d("KotlinActivity", "onSuccess方法执行...");
}
@Override
public void onFailed() {
Log.d("KotlinActivity", "onFailed方法执行...");
}
});
}
}
类
public class GaoJieFun {
public void getString(int result, MyApi myApi) {
if (null == myApi) return;
if (result == 0) {
myApi.onSuccess();
} else {
myApi.onFailed();
}
}
public interface MyApi {
void onSuccess();
void onFailed();
}
}
3.Kotlin代码
Activity
class KotlinActivity2 : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_kotlin2)
GaoJieFun().getString(0, object : MyApi {
override fun onSuccess() {
Log.d("KotlinActivity", "onSuccess方法执行...")
}
override fun onFailed() {
Log.d("KotlinActivity", "onFailed方法执行...")
}
})
}
}
类
class GaoJieFun {
fun getString(result: Int, myApi: MyApi?) {
if (null == myApi) return
if (result == 0) {
myApi.onSuccess()
} else {
myApi.onFailed()
}
}
interface MyApi {
fun onSuccess()
fun onFailed()
}
}
对比变化
1.调用类中方法或者属性时不同
Java中,调用一个类中的方法。需要两步操作(方法不是静态的,类也不是单例,就是普通的类中的方法)
(1) 创建该类的对象,即new一个对象。
(2) 使用刚刚创建的类对象调用类中的方法。
比如
new GaoJieFun().getString(参数1,参数2);
Kotlin中,我们不需要使用new关键字创建类对象,即相比Java而言把new关键字去掉。
比如
GaoJieFun().getString(参数1,参数2)