static关键字详解 代码块

静态属性

我们在Student类里面输入

两个变量

private static int age;  //静态的变量
    private double score; //非静态变量

有static 的为静态 没有为非静态

我们调用变量通常是new一个Student

  public static void main(String[] args) {
    Student s1 new Student();
      s1.run();

    }

我们也可以用类来调用

  public static void main(String[] args) {
    Student s1 new Student();
      System.out.println(Student.age);

    }

这样也可以调用 //类变量

但是当我们调用score 的时候就报错了

在这里插入图片描述

他会说没有static 所以会报错

静态方法

我们在Student类里面写上

public void run(){
    
}
public static void go(){
    
}

两个方法

我们要是想调用run方法

在这里插入图片描述

就会发现调用不了

我们必须new一个Student才可以调用

在这里插入图片描述

但是go方法却是可以直接调用

在这里插入图片描述

因为静态go方法在这个类里面

run方法也可以直接访问go方法, 因为go方法是跟类一起加载出来的

非静态可以调用静态方法里面的东西,静态只能调用静态方法,不能调用非静态方法

代码块

在这里插入图片描述

静态 代码块,我们可以用来加载一些初始化的东西

匿名代码块程序在执行的时候并不能主动调用他们,匿名代码块是在创建对象的时候就创建了,而且在构造器之前

静态代码块是在类一加载就直接执行,永久只执行一次

在这里插入图片描述

运行一下就会发现

第一个先运行的是静态代码块,然后再是匿名代码块,接着再是构造器的

第二次,则是匿名代码块,然后再是构造器,静态代码块就不在执行了

static 只执行一次

匿名代码块是在对象创建的时候才创建

匿名代码块用来赋一些初始值,因为他在我们的对象是同时参生的,而且他在构造方法前

import

我们创建一个main方法

输出一下Math.random()

public class Test {
    public static void main(String[] args) {

        System.out.println(Math.random());
       
    }
}

每次输出一下,都是一个随机数

但是有时候我们不想写Math。 想每次写random的时候能不Math给省略掉

我们在类上方输入import static java.lang.Math.random //静态导入包

这样下面我们就直接写radom就可以了

import static java.lang.Math.random; //静态导入包
public class Test {
    public static void main(String[] args) {

        System.out.println(random());
         }
}

注意

通过final修饰的类,无法被继承

比如Person这个类被final 给修饰了

public final class Person {
}

然后我们到Student类里面

继承一下Person ,就会发现无法继承报错了

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值