构造器、关键字this、静态static、代码块block、调试debug

1. 构造器

  • new关键字做的事情:

     1.在堆中为对象开辟空间,成员变量跟随对象进入到堆内存并附默认值。
     2.调用构造器为对象初始化信息。
     3.将地址返回给引用。
    
  • 构造器|构造函数|构造方法 :
    是一种特殊的方法。

     作用: 为对象初始化信息,为对象的属性赋值,不是用来创建对象的,new能够创建对象。
     调用: 只能跟随new一起使用。
     定义:
         修饰符 类名(参数){
             初始化信息代码;
         }
     注意:
         1.构造器可以实现重载。
         2.如果没有显示定义任何构造器,编译器会自动默认提供一个空构造(没有参数)。
         3.如果存在显示定义构造器,编译器都不会再提供任何构造器。
         4.至少实体类中自定义一个空构造,根据需求提供带参。
    

2. 关键字this
this指代当前new的对象。

  作用:
      1) 在构造器的首行通过this(实参)调用本类中其他构造器;
         构造器不能相互调用。
      2) 区分同名成员与局部变量问题;
          默认会发生就近原则;
          可以通过this.调用成员,否则默认找局部;
          如果不存在局部与成员同名问题,指代成员的this.可以省略。
  注意:
      1.this在构造器中使用,默认指代当前new的对象。
      2.在成员方法中的this,默认指代调用成员方法的对象。
      3.this不能使用在static方法中。

3. 静态static
成员修饰符,可以修饰成员内容,不可以修饰局部。

    修饰成员变量--> 静态变量|类变量
    修饰方法   -->  静态方法|类方法
    修饰块
    修饰类
  • static修饰的成员变量与成员方法使用方式:

      1.对象.静态变量名
        对象.静态方法名(参数列表)
      2.类名.静态变量名
        类名.静态方法名(参数列表)
    注意:
      成员是属于对象的,需要跟随对象使用。
      静态的是属于类的,根据可以随类名使用。
    
  • 成员 :

      被static修饰的--> 类的成员
          变量-> 静态变量|类变量
          方法-> 静态方法|类方法
      没有被static修饰 --> 实例成员
          变量-> 实例变量
          方法-> 实例方法
    
  • 静态和成员:

     1.静态内容是属于类的,在类第一次加载完成之后就初始化。
     2.初始顺序 : 先静态后成员。
     3.成员存在与对象的堆内存中,new对象了才开辟堆内存,才在对象的堆内存中存在成员。
     4.静态变量会给加载到静态区中,每个类的静态变量只有一份。
     5.静态内容是当前类所有对象共享的,独一份的。
     6.成员内容是属于每一个对象的,有几个对象就存在几份。
    
  • 静态的使用注意 :

     1.成员方法中的this默认指代当前调用成员方法的对象。
     2.成员方法中可以直接使用成员可以直接使用静态。
     3.静态方法中可以直接使用静态内容需要通过对象使用成员。
     4.在静态方法中不能使用this,因为冲突。
    

4. 代码块block
{}:自成作用域。

  {}定义在方法中|语句块中 : 局部代码块|普通语句块   执行时机 : 跟随方法
  {}定义在类中方法外 : 构造块 |成员代码块          执行时机 : 跟随new
  static{}定义在类中方法外 : 静态块               执行时机 : 类第一次加载
注意 :
   1.构造块中的代码先于构造器代码之前执行,因为在编译期间构造块代码会被编译到要执行的构造器内部,构造器代码之前。
   2.如果存在多个构造块,从上到下依次执行。
   3.静态块中的内容在类第一次加载完成之后就执行,并且只执行一次,先与main方法执行。
   4.如果存在多个静态块,从上到下依次执行。
执行顺序 : 静态块 --> main ---> 构造块  --> 构造器

5. 调试debug

  • 作用 :

     1.追踪程序的执行流程。
     2.定位异常问题出现的位置。
     3.执行过程中方便观察变量的变化。
     4.通过追踪程序的执行流程学习一些第三方框架的源码。
    
  • 步骤 :

     1.设置断点:debug模式运行的时候停在第一个断点位置,后续的执行有程序员手动控制。
     2.debug模式运行。
     3.调试中的操作:
     	Step over(F8): 下一步跳过|略过。
     	如果下一步是方法的调用,直接略过,不跟随方法内部执行。
     	Step into(F7): 下一步如果是方法的调用,进入方法跟随一起执行;要求是自定义方法才会进入跟随,jdk提供方法不会进入。
     	Force Step into(alt+shift+F7): 强制进入,如果下一步是jdk方法的调用,进入跟随执行。
     	Step out(shift+f8): 跳出到方法调用的下一步。
     	Run to Cursor(Alt+F9): 运行的到光标所在位置。
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值