美文网首页
java与kotlin类

java与kotlin类

作者: 印奕 | 来源:发表于2022-05-09 23:49 被阅读0次

    1,Java同一个文件尽量只用一个类,有多个类则只使一个类为public。

    2,创建一个没有主体的kotlin类:eg:class Person->可以不加{},修饰符只有public, private,一个类写好后加载到方法区;

    3,Animal a1 = new Animal() 经历的过程

    (1). 在内存中的方法区寻找Animal类信息

    (2). 如果没有这个类,类加载器将当前这个类的字节码.class文件加载到内存中

    (3). 在堆中申请内存空间

    (4). 当前的创建的对象的地址会放在操作数栈中 0x100

    (5). 在当前线程栈->方法栈帧->局部变量区域申请内存空间给a1

    (6). 从操作数栈中弹出顶部操作数 0x100 赋值给a1

    第2步有个问题:这个类在内存中的存在形式是什么?

    类对象

    类是什么?

        同一类事物高度抽象 不实际存在的(不会占内存)

    对象是什么?

        某个类的实例化(具体存在,完成具体任务(存值 执行))

    存值:成员变量 属性变量

    执行:行为 方法

    4,为什么要有默认无参构造方法?因为类本身不知道如何创建对象,需要顶层类Object类(Java)或Any类(kotlin)来创建对象,再由当前类来初始化对象;       为什么要有重载有参构造方法?a.为了方便给初始化值 b.在创建对象的同时给予某些需要的数据(时机)

    5,单例:构造函数私有化,再用一个函数getInstance返回一个当前类的对象,

    第一步:私有化构造方法

    第二步:提供一个静态的成员属性->静态变量

    第三步:给外部提供一个静态方法->获取这个对象

    第四步:外部获取这个对象->调用静态方法

    //注意,这里没考虑到内存消耗和线程安全

    6,kotlin类的定义:1,主构造函数:class Person constructor(){}当括号内没有参数和没有修饰符限定时不需写constructor,eg:class Person; 2,次构造函数:constructor (name:String):this(){}........a.次构造函数必须直接调用主构造函数,且只需考虑和主构造函数的关系;b.如果有父类,必须调用父类的构造函数。

    open允许继承

    7,for-each循环:for(int num:nums){}

    8,IDEA敲sout即可输出"System.out.println()

    相关文章

      网友评论

          本文标题:java与kotlin类

          本文链接:https://www.haomeiwen.com/subject/jrkqurtx.html