鸟哥Java学习之构造函数、this、static关键字-面向对象

来源:互联网 发布:网络证券交易平台 编辑:程序博客网 时间:2024/06/10 19:41
    1.构造函数:可以给对象进行初始化,创建对象都必须要通过构造函数进行初始化。一个类中没有定义构造函数,会有一个默认的参数构造函数。
    事物一旦产生就具备的内容定义在构造函数中,格式:类名(){}。

    2.与一般函数区别:构造函数对象创建时,就会调用与之对应的构造函数,对对象进行初始化。一般函数对象创建后,需要函数功能时才会调用。

    3.构造函数-重载:一个类中多个构造函数,参数不同,可以给对象不同的初始化
    构造代码块:给所有对象进行初始化。格式:{}
    函数中的{}为局部代码块,限制局部变量生存周期。

    4.this关键字:当成员变量和局部变量重名时,可以用其进行区分,代表当前对象
    this就是所在函数所属对象的引用,简单来说就是那个对象调用了其所在函数,this就代表那个对象。
    另:还可用this调用构造函数,格式:this()

    5.static关键字:数据共享。修饰成员(成员变量、成员函数),被所有对象共享;static优先于对象存在,随着类的加载就已经存在;除了可以被对象调用,还能被类名直接调用,格式:类.静态成员。
    静态使用注意事项:静态方法(加了static的函数)只能访问静态成员;静态方法中不可以使用this或super关键字;主函数是静态的。
    静态成员前省略的是类名,非静态省略的是this。
    静态什么时候使用:该函数功能是否有访问到对象中的特有数据。从源代码看,该功能是否需要访问非静态成员变量,如果需要,该功能就是非静态的。如果不需要,就可以定义为静态的,不浪费空间。(不访问对象的特有数据就不需要创建非静态,直接类名调用,不创建对象,节约空间)

    6.静态代码块:给类初始化。用于类中全是静态成员,不需要对象。

    7.main函数:
    public:因为权限必须是最大的。
    static:不需要对象的,直接用主函数所属类名调用即可。
    void:主函数没有具体的返回值。
    String[] args:数组类型的参数,而且元素都是字符串类型。

    总结:静态代码块先执行,静态变量,若有对象,构造代码块再执行,然后是构造函数。
加:创建子类对象,首先是加载子类构造函数,然后super()即父类构造函数,然后显示初始化,再构造代码块初始化,最后构造函数。
0 0