Java面向对象(2)

static关键字

        static静态的

                成员修饰符 : 只能修饰成员位置的内容,不能修饰局部
                修饰变量 : 静态变量|类变量
                修饰方法 : 静态方法|类方法
                修饰块 : 静态块
                修饰类 : 静态内部类
                静态内容的使用:
                    1.跟随类名使用
                        类名.静态变量名
                        类名.静态方法名(参数列表);
                    2.跟随对象使用
                        引用.静态变量名
                        引用.静态方法名(参数列表);

例如:

public class Class001_Static {
    //成员位置: 类中方法外
    //实例变量
    int i = 1;
    //静态变量
    static int j = 2;

    //静态方法
    public static void main(String[] args) {
        //测试静态内容使用方式
        System.out.println(j); //本类中可以省略类名直接使用
        System.out.println(Class001_Static.j);

        Class001_Static cs = new Class001_Static();
        Class001_Static cs2 = new Class001_Static();
        System.out.println(cs.j);

        //测试实例变量的使用
        System.out.println(cs.i);
        //System.out.println(Class001_Static.i);

        cs.j++;
        cs2.j++;

        System.out.println(cs.j);  //4
        System.out.println(cs2.j); //4
        System.out.println(Class001_Static.j); //4


    }
}

        成员变量 :
            被static修饰的变量 称为静态变量|类变量
            不被static修饰的变量 称为实例变量
        成员方法:
            被static修饰的方法称为静态方法|类方法
            不被static修饰的方法 称为 实例方法

块(block):

        block 块: 
        {} 块 自成作用域
         

分类位置作用执行时机
局部代码块|普通代码块 {}定义在方法中1) 作用域看待
 2) 语义化
 跟随方法的调用而执行
构造块{}定义在类中方法外1) 成员内容的初始信息,比构造器中的代码跟早执行
2) 对对象的某些内容进行初始
静态块static修饰{},定义在类中方法外1) 会为静态内容进行初始化
 2) 信息的配置,资源的加载
在类第一次加载完成之后执行

public class Class001_Block {
    static int i ;
    int j = 1;

    public Class001_Block(){
        System.out.println("构造器");
    }

    //构造块
    {
        System.out.println("构造块1");
        System.out.println(i);
        System.out.println(this.j);  //当前new的对象
       // 造块 : {}定义在类中方法外                         跟随new一起使用
}
    {
        System.out.println("构造块2");
    }
    {
        System.out.println("构造块3");
    }
    //静态块
    static{
        System.out.println("静态块1");
        System.out.println(i);
        //非静态的成员变量j不能直接在静态内容中使用,需要跟随对象
        //System.out.println(j);
    }
    static{
        System.out.println("静态块2");
        i = 1000;
    }
    static{
        System.out.println("静态块3");
    }
    public static void main(String[] args) {
        System.out.println("main");
        //局部
        //int i =1;

        //局部代码块
        {
            int i = 10;
            System.out.println(i);
        }
        System.out.println(i);

        new Class001_Block();
    }
}

debug工具 

        debug的作用:
                    1.追踪程序的执行流程
                    2.定位异常出现的位置
                   3.观察程序运行期间变量变化的情况
                    4.根据程序的执行流程学习第三方框架的源码

               步骤:
                   1.打断点
                               在行号的后面单击设置断点,单击取消断点
                   2.debug运行
    step over F8 下一步跳过
    如果遇到方法的调用,不进入,直接跳过进入下一行                         
 step into F7 步入
 如果下一步遇到自定义方法的调用,进入方法跟随执行,如果是jdk提供的方法,不会进入

Force step into alt+shift+F7 强制步入
 如果是jdk提供的方法,会强制进入跟随执行


step out shift+F8 跳出
如果执行在方法的调用中,下一步直接调出到方法调用的位置


Run to  Cursor 运行到光标所在位置

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值