• 目录

static关键字

阅读量: 130 编辑

static关键字

static 关键字修饰的属性或者函数,指的是静态属性或静态函数

static 一般用在工具类中比较多,比如静态函数:Arrays.sort()、StringUtils的api

一、static修饰说明

  • 语法:private static int age;

  • 使用 static 修饰符修饰的属性和函数称为静态变量,也可以称为类的变量(不是实例的变量,也就是说不能使用 this. 关键字)

  • static的属性是类的属性,static函数是类的函数,不需要实例化即可使用,也就是说,直接用 类.属性类.函数 即可使用

  • static 函数可以调用 static 函数,但是不可以调用 非static 函数,因为非static的是需要 this 的,而 static 是不能使用 this

  • 非static 函数可以调用 static函数

  • static 是从属于类,不能使用 this.

二、代码实战

代码的详细解读,可以参考视频教程

package com.qicong.zj.c09;

/**
 * User: 祁大聪
 */
public class Person {

    private String name;  //非静态变量,需要使用 this
    private static int age; //静态变量,不需要使用 this

    //非静态函数,里面有 this
    public void sing(){
        name = "sanNi";
        age = 100;
    }

    //静态函数,里面没有 this,所以不能在里面调用 非静态的属性或函数
    public static void dance(){
//        name = "sanNi";   //这里没有默认的 this. ,所以会报错
        System.out.println("dance");
    }

    /**
     * 主函数就是 static 的,
     * 所以我们调用 非static函数或属性的时候,必须 new 实例出来 才能调用
     */
    public static void main(String[] args) {

        dance();   // 静态的,所以可以直接使用,不需要实例
        System.out.println(age);   // 静态的

        Person p1 = new Person();
        p.name = "sanNi";  // 非静态变量,必须通过实例才可以调用
        p1.age = 100;         // 实例也可以使用静态的属性

        Person p2 = new Person();
        p2.age = 101;
        System.out.println("p1.age = " + p1.age);
    }

}

  • 目录