面向对象14:static关键字详解

常量类型:final

public final class Person{}
  • final定义后不能被继承(extends),final定义后”断子绝孙“

代码块

1. 匿名代码块

  • 处于构造器之前
//2:可以用来赋初始值
{
    //代码块(匿名代码块),在构造器之前
    System.out.println("匿名代码块");
}

2.静态代码块

  • 静态代码块,当类一加载就执行,永久只执行一次
//1:只执行一次,当第二次实例化就不执行
static{
    //静态代码块,当类一加载就执行,永久只执行一次
    System.out.println("静态代码块");
}

例子

package com.oop.staticDemo08;
//final:常量类型  public final class Person:final定义后不能被继承(extends),final定义后”断子绝孙“
public class Person {
    //2:可以用来赋初始值
    {
        //代码块(匿名代码块),在构造器之前
        System.out.println("匿名代码块");
    }
    //1:只执行一次,当第二次实例化就不执行
    static{
        //静态代码块,当类一加载就执行,永久只执行一次
        System.out.println("静态代码块");
    }
    //3
    public Person(){
        System.out.println("构造方法");
    }

    public static void main(String[] args) {
        Person person1 = new Person();
        System.out.println("=========");
        Person person2 = new Person();

    }
}

结果

  • 静态代码块
    匿名代码块

    构造方法

    ============

    匿名代码块
    构造方法

静态变量和非静态变量

private static int age;//静态变量     多线程
private double score;//非静态变量

静态方法和非静态方法

public void run(){

}
public static void go(){
    //静态方法和类一起产生可以任何方法内调用,非静态方法要实例化后 属性.方法 调用
}

使用

public static void main(String[] args) {
    Student s1 = new Student();
    System.out.println(Student.age);    //静态变量可以用类名调用,对类而言内存中只有一个可以被类中的所有实例共享
    //System.out.println(Student.score);//非静态变量不能用类名调用
    System.out.println(s1.age);
    System.out.println(s1.score);

}

例子

package com.oop.staticDemo08;

//static
public class Student {
    private static int age;//静态变量     多线程
    private double score;//非静态变量
    public void run(){

    }
    public static void go(){
        //静态方法和类一起产生可以任何方法内调用,非静态方法要实例化后 属性.方法 调用
    }

    public static void main(String[] args) {
        Student s1 = new Student();
        System.out.println(Student.age);    //静态变量可以用类名调用,对类而言内存中只有一个可以被类中的所有实例共享
        //System.out.println(Student.score);//非静态变量不能用类名调用
        System.out.println(s1.age);
        System.out.println(s1.score);

    }
}
posted @   夜月明  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示