首页 > 其他 > 详细

static关键字

时间:2020-08-17 14:17:29      阅读:87      评论:0      收藏:0      [点我收藏+]
package com.xuyifan.demo09;

/**
 * @author xyf
 * @create 2020-08-17-11:17
 */
public class Application {
    private static int a; //静态的变量
    private double score;//非静态的变量
    public void run(){
go();//非静态方法可以调用静态方法,但是静态方法只能调用静态的方法

}//非静态的方法 public static void go(){}//静态的方法 public static void main(String[] args) { System.out.println(a);//静态的变量可以直接用 go();//静态的方法可以直接用 Student.gogogo();//类中的静态方法也可以直接调用 System.out.println(Student.ID);//类中的静态变量也可以调用 Application application=new Application(); application.score=10;//非静态变量需要靠引用操作 application.run();//非静态方法需要靠对象的引用调用 Student student=new Student(); System.out.println(student.newid);// student.laugh(); } }
package com.xuyifan.demo09;

/**
 * @author xyf
 * @create 2020-08-17-11:20
 */
public class Student {
    static void gogogo(){}
    public static double ID=101;
    public void laugh(){}
    public double newid=102;

    /**
     *
     * @param args

    public static void main(String[] args) {
        Application.go();
    }
    */

}

复习可以参照 java中的内存

 

static修饰的内容与类一起加载到方法区,所以无需实例化也可以使用

 

静态代码块与匿名代码块

package com.xuyifan.demo09;

/**
 * @author xyf
 * @create 2020-08-17-13:14
 */
public class Person {
    {
        System.out.println("匿名代码块");
    }//常用来赋初始值
    static {
        System.out.println("静态代码块");
    }
    public Person(){
        System.out.println("构造函数");
    }

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

输出

静态代码块
匿名代码块
构造函数
=====================
匿名代码块
构造函数

静态代码块只会执行一次

 

执行顺序:静态代码块--------》匿名代码块-----------》构造函数

因为静态代码只会执行一次,所以创建第二个对象时就不会执行静态代码块

 

JAVA新特性:静态导入包

import static java.lang.Math.PI;

 

就可以直接使用PI调用而不是用Math.PI

static关键字

原文:https://www.cnblogs.com/happyxyf/p/13517093.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!