Java教程

77_初识Java_static_学习

本文主要是介绍77_初识Java_static_学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

77_初识Java_static_学习

  • 1、static修饰属性被所有对象共享
  • 2、尝试画内存图理解
  • 3、static修饰的方法-静态方法

1、static修饰属性-静态属性或类变量
	(1)、在类加载的时候一起加载入方法区中的静态域中
	(2)、先于对象存在
	(3)、访问方式:
			对象名.属性名 
			类型.属性名   --- 推荐用这种
2、static修饰方法-静态方法
	(1)、在类加载的时候一起加载入方法区中的静态域中
	(2)、先于对象存在
	(3)、访问方式:
			对象名.方法名 
			类型.方法名   --- 推荐用这种
	(4)、静态方法中不能访问非静态的属性
	(5)、静态方法中不能访问非静态方法
	(6)、静态方法中不能使用this

1、static修饰属性被所有对象共享

  • 测试代码
public class LearnStatic01 {

    int id;
    static int sid;
    //程序的入口
    public static void main(String[] args) {
        LearnStatic01 s1=new LearnStatic01();
        s1.id=1;
        s1.sid=1;
        LearnStatic01 s2=new LearnStatic01();
        s2.id=2;
        s2.sid=2;
        LearnStatic01 s3=new LearnStatic01();
        s3.id=3;
        s3.sid=3;

        System.out.println(s1.id);
        System.out.println(s2.id);
        System.out.println(s3.id);

        System.out.println(s1.sid);
        System.out.println(s2.sid);
        System.out.println(s3.sid);
    }
}

  • 测试代码运行
    在这里插入图片描述

2、尝试画内存图理解

在这里插入图片描述

3、static修饰的方法-静态方法

public class LearnStatic02 {
    int id;
    static int sid;
    public void a(){
        System.out.println(id);
        System.out.println(sid);
        System.out.println("========aaaa");
    }
    //public与static都是修饰符,没有先后之分
    public static void b(){
        //System.out.println(id);//静态方法中不能访问非静态的属性
        //System.out.println(this.id);//静态方法中不能使用this
        System.out.println(sid);
        //a();静态方法中不能访问非静态方法
        System.out.println("========bbbb");
    }

    //程序的入口
    public static void main(String[] args) {
        LearnStatic02 s=new LearnStatic02();
        s.a();
        s.b();
        LearnStatic02.b();//静态方法可以用 类名.方法名 偶用

    }
}
这篇关于77_初识Java_static_学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!