文章目录

一、static:静态的

二、main()方法的使用说明

三、类的成员之四:代码块(初始化块)

四、 final:最终的

一、static:静态的

  • static可以用来修饰:属性、方法、代码块、内部类
  • 使用static修饰属性:静态变量(类变量)
    静态变量随着类的加载而加载,早于对象的创建
    由于类只会加载一次,则静态变量在内存中也只会存在一份:存在方法区的静态域中。
类变量 实例变量
yes no
对象 yes yes
静态属性举例:System.out;Math.PI;
  • 使用static修饰方法:静态方法
    随着类的加载而加载
  • static注意点:
    静态方法中,只能调用静态的方法或属性
    在静态方法中,不能使用this关键字和super关键字
静态方法 非静态方法
yes no
对象 yes yes
public static String name = "这是一个圆";
public static String getName() {
   
return name;
}

开发中:

  • 属性用static:属性可以被多个对象所共享,不会随着对象的不同而变化。
  • 方法用static:操作静态属性的方法,通常设置为static
    工具类中的方法:习惯上声明为static。例如:Math、Arrays、ections

二、main()方法的使用说明:

  • 1.main()方法作为程序的入口
  • 2.main()方法也是一个普通的静态方法
  • 3.main()方法可以作为我们与控制台交互的方式。

三、类的成员之四:代码块(初始化块)

  • 1.代码块的作用:初始化类和对象
  • 2.修饰只能用static
  • 3.静态代码块随着类的加载而执行。只执行一次
    非静态代码块随着对象的加载而执行,就执行一次非静态代码块
public static int total;
static {
   
total = 100;
System.out.println("in static block!");
}

{
   
我是代码块!
}
static
{
   
我也是代码块!
}

四、final:最终的

  • 1.final可以用来修饰结构:类、方法、变量
  • 2.final 用来修饰一个类:此类不能被继承(断子绝孙)
    比如String类,System类,StringBuffer类
final class A{
   
}
class B extends A{
    //错误,不能被继承。
}
  • 3.final 用来修饰方法:此方法不能被重写(可能有儿子但是不能重写!)
    比如Object类中getClass()类
class A {
   
public final void print() {
   
System.out.println("A");
} }
class B extends A {
   
public void print() {
    // 错误,不能被重写。
System.out.println("×××");
} }
  • 4.final 用来修饰变量:此变量为常量
class A {
   
private final String INFO = "abc"; //声明常量
public void print() {
   
} }

常量名要大写,内容不可修改

static final:全局常量

static final 用来修饰属性:全局(static类中对象共享的)常量(final)