static关键字相关内容

简介: 静态变量(static)与非静态变量,静态方法(static)与非静态方法 //static public class Student { private static int age; //静态的变量(静态属性) private double score; //非静态的变量 public void

static关键字相关内容


  • 静态变量(static)与非静态变量,静态方法(static)与非静态方法


//static
public class Student {
    private static int age; //静态的变量(静态属性)
    private double score;   //非静态的变量
    public void run(){  //非静态方法
    }
    public static void go(){    //静态方法
    }
    public static void main(String[] args) {
        //run();//编译错误,非静态方法不能直接使用
        new Student().run();//必须将对象实例化后再调用非静态方法
        Student student = new Student();//两种不同的实例化方式
        student.run();
        go();//静态方法可直接使用
        Student.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);
    }*/
}


  • 类中匿名代码块,静态代码块(加载类的同时加载,只执行一次)及构造方法执行顺序


public class Person {
    {
        //代码块(匿名代码块)
    }
    static {
        //静态代码块
    }
    //程序执行的先后顺序 1 2 3
    //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();
    }
}


  • 静态导入包


  • 被final关键字修饰的类不能有子类,不能被继承


//静态导入包,导入后可不输入Math.random(),直接使用random()
//被final修饰的类不能再被继承,不能有子类
import static java.lang.Math.random;
import static java.lang.Math.PI;
public class Test {
    public static void main(String[] args) {
        System.out.println(random());
        System.out.println(PI);
    }
}


相关文章
|
6月前
|
开发框架 .NET 编译器
C# 9.0中的静态匿名函数:引入static关键字的新用法
【1月更文挑战第15天】C# 9.0为匿名函数带来了一个新的修饰符static,允许开发者明确指定匿名函数不会捕获其包含作用域中的任何变量。这一特性增强了代码的性能和可读性,同时减少了因不小心捕获变量而导致的潜在错误。本文将详细探讨C# 9.0中静态匿名函数的语法、使用场景以及它们如何影响代码的性能和安全性。
|
4月前
|
存储 Java
成员变量与实例变量的区别与用途详解
成员变量与实例变量的区别与用途详解
|
5月前
|
Java
Java内部类相关内容总结和解读
Java内部类相关内容总结和解读
33 0
|
6月前
|
Java 数据库连接 数据库
static关键字的用法和作用
static关键字的用法和作用
65 0
|
6月前
|
存储 编译器 C语言
【C++练级之路】【Lv.2】类和对象(上)(类的定义,访问限定符,类的作用域,类的实例化,类的对象大小,this指针)
【C++练级之路】【Lv.2】类和对象(上)(类的定义,访问限定符,类的作用域,类的实例化,类的对象大小,this指针)
【C++】类与对象 (四)初始化列表 static成员 友元 内部类 匿名对象 拷贝对象时的一些编译器优化(1)
【C++】类与对象 (四)初始化列表 static成员 友元 内部类 匿名对象 拷贝对象时的一些编译器优化
|
Java 编译器 C语言
【C++】类与对象 (四)初始化列表 static成员 友元 内部类 匿名对象 拷贝对象时的一些编译器优化(2)
【C++】类与对象 (四)初始化列表 static成员 友元 内部类 匿名对象 拷贝对象时的一些编译器优化(1)
|
存储 C++
解析static关键字
解析static关键字
|
存储 C++
C++基础语言之(一)static关键字的作用
C++基础语言之(一)static关键字的作用
139 0
关于static修饰的成员方法成员成员变量的相关讨论
关于static修饰的成员方法成员成员变量的相关讨论