平凡 Class
kotlin
- class TestClz {
- val name: String = "hsw"
- val age: Int = 18
- }
复制代码 java
- public final class TestClz {
- @NotNull
- private final String name = "hsw";
- private final int age = 18;
- @NotNull
- public final String getName() {
- return this.name;
- }
- public final int getAge() {
- return this.age;
- }
- }
复制代码 转换为Java后的厘革
- 类被 final 修饰,不可继承;加上open 可以去掉 final
- var修饰的属性添加了get set 方法 , val 只有·get 方法
data class
kotlin
- data class TestClz(val name: String, var age: Int)
复制代码 java
- public final class TestClz {
- @NotNull
- private final String name;
- private int age;
- @NotNull
- public final String getName() {
- return this.name;
- }
- public final int getAge() {
- return this.age;
- }
- public final void setAge(int var1) {
- this.age = var1;
- }
- public TestClz(@NotNull String name, int age) {
- Intrinsics.checkNotNullParameter(name, "name");
- super();
- this.name = name;
- this.age = age;
- }
- @NotNull
- public final String component1() {
- return this.name;
- }
- public final int component2() {
- return this.age;
- }
- @NotNull
- public final TestClz copy(@NotNull String name, int age) {
- Intrinsics.checkNotNullParameter(name, "name");
- return new TestClz(name, age);
- }
- // $FF: synthetic method
- public static TestClz copy$default(TestClz var0, String var1, int var2, int var3, Object var4) {
- if ((var3 & 1) != 0) {
- var1 = var0.name;
- }
- if ((var3 & 2) != 0) {
- var2 = var0.age;
- }
- return var0.copy(var1, var2);
- }
- @NotNull
- public String toString() {
- return "TestClz(name=" + this.name + ", age=" + this.age + ")";
- }
- public int hashCode() {
- String var10000 = this.name;
- return (var10000 != null ? var10000.hashCode() : 0) * 31 + Integer.hashCode(this.age);
- }
- public boolean equals(@Nullable Object var1) {
- if (this != var1) {
- if (var1 instanceof TestClz) {
- TestClz var2 = (TestClz)var1;
- if (Intrinsics.areEqual(this.name, var2.name) && this.age == var2.age) {
- return true;
- }
- }
- return false;
- } else {
- return true;
- }
- }
- }
复制代码 转换为Java后的厘革
- 类被 final 修饰,不可继承;加上open 可以去掉 final
- var修饰的属性添加了get set 方法 , val 只有·get 方法
- 实现了 toString equal hashCode 方法
- 类似于java bean
object
- object TestClz {
- val name: String = "hsw"
- var age: Int = 18
- fun getInfo(): String {
- return "${name}-${age}"
- }
- }
复制代码- public final class TestClz {
- @NotNull
- private static final String name;
- private static int age;
- @NotNull
- public static final TestClz INSTANCE;
- @NotNull
- public final String getName() {
- return name;
- }
- public final int getAge() {
- return age;
- }
- public final void setAge(int var1) {
- age = var1;
- }
- @NotNull
- public final String getInfo() {
- return name + '-' + age;
- }
- private TestClz() {
- }
- static {
- TestClz var0 = new TestClz();
- INSTANCE = var0;
- name = "hsw";
- age = 18;
- }
- }
复制代码 转换为Java后的厘革
- 类被 final 修饰,不可继承;加上open 可以去掉 final
- var修饰的属性添加了get set 方法 , val 只有·get 方法
- 饿汉式实现了单例
- java 不可直接调用get set 需要通过INSTANCE , 属性和方法 加上@JvmStatic 可以转换为静态属性/方法 直接调用
内部类
- class TestClz {
- val name: String = "hsw"
- companion object {
- val grade = 12L
- fun getInfo() {
- println("name-$name")
- }
- }
- object CCS {
- val grade = 12L
- fun getSome() {
- println("name-$name")
- }
- }
- class Info {
- val grade = 12L
- fun getSome() {
- println("name-$name")
- }
- }
- inner class WC {
- val grade = 12L
- fun getSome() {
- println("name-${name}")
- }
- }
- }
复制代码- public final class TestClz {
- @NotNull
- private final String name = "hsw";
- private static final long grade = 12L;
- @NotNull
- public static final Companion Companion = new Companion((DefaultConstructorMarker)null);
- @NotNull
- public final String getName() {
- return this.name;
- }
- // companion 伴生对象
- // kotlin 可直接访问属性和方法
- // java 需要通过 Companion 对象访问
- public static final class Companion {
- public final long getGrade() {
- return TestClz.grade;
- }
- public final void getInfo() {
-
- }
- private Companion() {
- }
- // $FF: synthetic method
- public Companion(DefaultConstructorMarker $constructor_marker) {
- this();
- }
- }
- // object 相当于通过单例实现静态内部类对象
- public static final class CCS {
- private static final long grade;
- @NotNull
- public static final CCS INSTANCE;
- public final long getGrade() {
- return grade;
- }
- public final void getSome() {
-
- }
- private CCS() {
- }
- static {
- CCS var0 = new CCS();
- INSTANCE = var0;
- grade = 12L;
- }
- }
- // 普通 class 相当于静态内部类,需要实例化调用方法
- public static final class Info {
- private final long grade = 12L;
- public final long getGrade() {
- return this.grade;
- }
- public final void getSome() {
-
- }
- }
- // inner class 内部类,可以直接使用外部类的属性和方法
- public final class WC {
- private final long grade = 12L;
- public final long getGrade() {
- return this.grade;
- }
- public final void getSome() {
- String var1 = "name-" + TestClz.this.getName();
- System.out.println(var1);
- }
- }
- )
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |