构造代码块、this关键字、静态变量、静态代码块、主函数

 

1、构造代码块:
  做用:给对象进行初始化。
  特色:对象一经运行就执行(与变量声明时赋初值同级别,此处注意 非法前向引用)
    优先于构造函数的执行。
  与构造函数的区别: 构造代码块是给全部对象统一初始化。 通常给全部对象的共性属性的初始化。
        构造函数是给对应对象进行初始化。jvm

2、this关键字。
  做用:指向this所在函数所属的对象 (哪一个对象调用了this所在的方法,this就指向哪一个对象)。
  应用:当在定义类中的功能时,该函数的内部要用到调用该函数的对象时,便用this来表示这个对象。
    (当以第一人称在阐述一个类的功能时, 在须要用到 “我” 或者 “个人” 的时候,此处便使用this关键字来表示。)
  注意:在类有多个重载构造方法的时候,能够在一个构造方法中使用 this(实参) 的语句调用其余构造方法 且 其要在第一句(可是要在super后。)
    在初始化中还有初始化的时候, 要先执行内部的初始化 以后再执行本身的初始化。因此要放在第一行函数

3、静态变量

  说明:使用 static 修饰的。 咱们知道,在方法内部的变量放于栈内存(stack)中, 而类中的成员变量放于堆内存中(heap), 而咱们被static修饰的成员变量存放于
    静态数据段(data segmet)中, 其在类中一个定义(当有继承的时候,能够有静态重写,使得一个类就有了多个,使用与静态绑定理论)只有一个。全部的该类
    对象公有一个该变量(也就是说,私有的成员属性是不能用静态修饰的),使用类名和对象名皆可访问此变量。

  注意:static只能修饰成员,不能修饰局部。
    能够被类名和对象共同调用。
    静态方法只能访问静态成员, 而非静态方法能够访问静态成员。
    由于静态成员优先于对象(有了对象才有非静态出现),因此静态方法中不能出现this super等关键字。
    主函数是静态的。

  总结特色:1)、随着类的加载 在data segment中被加载。(生命周期长)

        2)、优先于对象的存在。

          3) 、被全部的对象共享。

        4)、能够直接被类名调用。
  优缺点:
      优势: 节约空间 能够被直接调用。
      缺点: 访问局限性 生命出现局限性。

  何时使用静态:
      当全部的对象共享属性的时候,该属性能够写为静态(如中国人的国籍)。
      当某个方法不涉及到类的动态 成员的时候,能够写成静态,(每一个人都会哭,仍是一样的哭),
this

4、静态代码块对象

  特  点:随着类的加载而加载,随着类的结束而结束(存在时间一样长)blog

  格  式:static 继承

      {生命周期

          静态代码块中的语句。内存

      }ci

  做  用:给类初始化用的字符串

5、主函数
  主函数:是一个特殊的函数,做为被jvm调用的入口函数。
  定 义:主函数是固定格式的,被jvm识别: public static void main(String[] args){}.
  特 点:jvm在调用主函数的时候,给主函数传入一个 new String[0]; 启动jvm的时候能够给字符串传入字符串参数,以后能够操做这些数据。
      for example : Java 类名 参数1 参数2 参数3....

 

6、Exercise :

  定义一个person类,其中包括了国籍、姓名、性别、年龄等成员属性, 还有比较本身与别人或者别人与别人的年龄的大小得功能,
    一个会哭的初始功能 和 调用功能。