Java-对象构造

  • 重载

    • java允许重载任何方法,因此,在描述一个方法时要指定方法名和参数类型,这种方法叫做签名,因为返回类型不是方法签名的一部分,所以不能有两个方法名和参数类型都相同但是返回类型却不同的方法

    • 举例说明

      add(int){
          return int;
      }
      add(int,int){
          return int;
      }
      //不可以这样使用
      add(int,int){
          return double;
      }
      
      
  • 默认初始化

    • 在构造器中如果没有显示的为变量设置初始值,那么会被自动赋值为默认值(0,false,null)

    • 在创建类后,必须写一个构造器,如果只存在一个有参数的构造器,那么 直接new一个对象而不带参数的方法就是错误的

    • 当类没有其他构造器的时候,可以得到一个默认的无参数构造器

    • 举例说明

      //仅有一个带参构造器
      public Abc(String s,int n)
      new Abc(); //错误
      new Abc(s,n);  //正确
      
      //同时存在两个构造器
      public Abc(){} ;  //代码块中没有代码则被赋予默认值
      public Abc(String s,int n)
      new Abc(); //正确
      new Abc(s,n);  //正确
      
  • 用this(...)调用另一个构造器

    • 这样对公共的构造器代码只需要编写一次即可

      class Abc {
          public static String s;
          public Abc(String s,int n){
              ...
          };
          public Abc(int n){
              this("Abc #"+s,n); 
          }
      }
      
      
  • 初始化块

    class Abc {
      private static int nextId;
      
      private int id;
      ...
      //初始化块
      {
          id = nextId;
            nextId++;
      }
      
      //静态初始化块
      static
      {
          var r = new Random();  //随机数
            nextId = r.nextInt(1000);  //随机一个小于1000的整数
      }
      
    }
    
    

你可能感兴趣的:(Java-对象构造)