一周知识点总结

static关键字

在类中,被static修饰的变量称为静态成员变量,如果想让一个类的所有实例共享数据,就用类变量。

1.在设计类时,分析哪些属性不会因为对象的不同而改变,就可以把这些属性设置为类变量。相应的方法设置为类方法。

2.如果方法与调用者无关,则这样的方法通常被声明为类方法,由 于不需要创建对象就可以调用类方法,从而简化了方法的调用。

一,使用范围

在java中,可用static修饰属性,方法,内部类,代码块。

二、特点

被修饰后的成员具备以下特点:

1.  随着类的加载而加载
2. 优先于对象存在
3. 修饰的成员,被所有对象所共享

       4. 访问权限允许时,可不创建对象,直接被类调用

类变量可以不创建对象就直接访问,通过  类名.属性  /类名.方法。

使用时注意,静态的成员不能直接访问非静态的属性和方法,但是非静态的对象能访问静态的属性和方法,静态的属性也不能用this关键字。

代码块

代码块属于类的成员之一,作用是对java类或对象进行初始化,一个类中代码块若有修饰符,只能是static。

一、分类

静态代码块:用static 修饰的代码块

1.可以有输出语句。

2. 可以对类的属性、类的声明进行初始化操作。

3. 不可以对非静态的属性初始化。即:不可以调用非静态的属性和方法。

4. 若有多个静态的代码块,那么按照从上到下的顺序依次执行。

5. 静态代码块的执行要先于非静态代码块。

6. 静态代码块随着类的加载而加载,且只执行一次。

 

非静态代码块:没有static修饰的代码块

1.可以有输出语句。

2. 可以对类的属性、类的声明进行初始化操作。

3. 除了调用非静态的结构外,还可以调用静态的变量或方法。

4. 若有多个非静态的代码块,那么按照从上到下的顺序依次执行。

5. 每次创建对象的时候,都会执行一次。且先于构造器执行

Final关键字

在java中声明类、变量、方法时,可使用final关键字,表示“最终的”。它有以下特点:

1.final标记的类不能继承。

2.final标记的方法不能被子类重写。

3.final标记的变量称为常量,名字大写,且只能赋值一次。

 

可以考虑赋值的位置:

  显示初始化值

  代码块内初始化

  构造器内初始化

final也可以修饰局部变量,在作用域内不可修改。

运行时的先后顺序

当默认初始化、显示初始化、代码块、构造器、对象.访问属性,同时在一段代码中时,执行的先后顺序为 默认初始化>显示初始化/代码块(哪个在前就先执行哪个)>构造器>对象.访问属性。

举个·简单的例子:

public class B {
    public static B t1 = new B();
    public static B t2 = new B();
    {
        System.out.println("构造块");
    }
    static
    {
        System.out.println("静态块");
    }
    public static void main(String[] args)
    {
        B t = new B();
    }

}

运行结果为:

构造块
构造块
静态块
构造块

 

在这一段代码中,一开始创建了两个对象t1,t2,且是静态的,在每一次创建对象之前都会执行一遍代码块里的内容,所以先打印了两个“构造块“。之后执行静态代码块里的内容,打印“静态块“。最后执行主方法里内容,创建了对象t,打印一遍“构造块”。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值