JAVA学习篇9——代码块、构造函数

构造函数:
      构造函数的格式:  类名(形参类型  形参){}
      注意:在类中如果有有参的构造函数就在写一个无参的构造函数
      构造函数调用几次?构造函数在实例化的时候就会被调用,实例化一次次调用一次
      调用无参构造器,只能在第一条语句里,且只能调用一次。
    (this调用同类的构造函数,super调用父类的构造函数  Object是所有类的超级父类    默认继承Object)
   
      构造函数可以被重载嘛?    可以
      构造函数有啥用?初始化参数
public ConstructorDemo(){
        System.out.println("我是无参构造函数");
    }
    public ConstructorDemo(int age){
        this();
        this.age = age;
        System.out.println("我是有参的构造" + age);
    }
    public ConstructorDemo(int age, String name){
        this(66);
        this.age = age;
        this.name = name;
        System.out.println("我是有参的构造" + age + name);
    }


在继承中:
子类  如果继承了父类他会去调用父类相对应的构造函数,在实例化的时候是先执行父类的相对应的构造函数(相对应是指参数要对应,假如你是无参的实例化,那么先去执行父类的无参构造函数,再执行子类的无参构造函数)

代码块:
      类的组成:属性、行为、构造函数、静态代码块、构造代码块
      静态代码块的格式:
      static{}
      调用:在类加载的时候就调用了  ,只会调用一次
      static{
        System.out.println("我是静态代码块");
      }


      构造代码块格式:{}
      调用:在实例化的时候调用,实例化一次就调用一次
      {
        System.out.println("我是构造代码块");
       }


     局部代码块   作用控制局部变量的声明周期   从而让内存效率更高(例如,两个数字的转换,需要用到临时变量的时候)
    public  void show(){
        {
            int num = 10;//局部代码块定义的变量,在局部代码块执行完后就销毁,外部不能访问该变量
        }
        //System.out.println(num);  出错,不能访问局部代码块里面定义的变量
        int num = 20;
        System.out.println("子类的show方法:"+num);
    }


关于在继承中代码块和构造函数的执行流程:
                         * 父类的静态代码块
                           *  子类的静态代码块
                             *   父类构造代码块
                               *    父类的构造方法
                                 *     子类构造代码块
                                    *     子类的构造方法

常问的几个问题:
      静态代码块和构造代码块和构造函数执行流程?
      静态代码块->构造代码块->构造函数
      
      静态代码块和构造代码块和构造函数分别在什么时候使用?
      构造代码块:给所有对象进行初始化。对象一建立就运行,而且优先于构造函数执行。可被执行多次。
      静态代码块:有些代码必须在项目启动的时候就执行的时候可以使用,优先于main函数执行,只执行一次
      构造函数:构造函数是给对应的对象进行初始化。可被执行多次。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值