java基础-静态修饰符static

一. 概念:

       static静态修饰符,一般用于修饰类中的成员变量或者成员方法(也可修饰代码块,称之为静态代码块,后面会提到的)被修饰的成员属于类(注意:不是再是属于某个对象的。也就是说既然属于类,就可以不靠创建对象来调用了 )可以通过类名直接访问类中static修饰的成员变量或者static修饰的成员方法static修饰静态成员变量和静态成员方法被所在类的所有实例对象所共有

二. 应用:

        1. static修饰成员变量:

              格式 :

                        static 数据类型  变量名;       

               例如 :  static String name; 

               注意 :

                        多个对象在访问static修饰的成员变量时,其中的一个对象将static成员变量值进行了修改,其他对象中的static成员变量值也随之改变,即多个对象共享同一个static成员变量 

         2. static修饰成员方法:

                格式 :

                        修饰符  static 返回值类型  方法名(参数列表){

                                执行语句;

                                return 返回值;  

                        }

                  例如 :

                        public static void  println( ){

                                System.out.println(" 你好");

                        }

            3. 代码演示 :

                          创建student实体类,代码如下:

public class Student {
    String name;
    int age;
    String sex;
    static String classID;  //静态成员变量

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                ", classID='" + classID + '\'' +
                '}';
    }

    //static 修饰方法  称之为静态方法
    public static void study(){
        System.out.println("好好学习");
    }

}

                           创建测试类,代码如下 :

public class SudentTest01 {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.name="张三";
        s1.age=18;
        s1.sex="男";
        s1.classID="java-02";
        System.out.println(s1);
        s1.study();  //创建对象调用
        new Student().study();  //匿名对象调用
        Student.study();  //类名直接调用  原因是静态修饰符static修饰的成员变量和成员方法归类所有

        Student s2 = new Student();
        s2.name="李四";
        s2.age=19;
        s2.sex="男";
//        s2.classID="java-03";
        System.out.println("=================================");
        System.out.println(s2);

        Student s3 = new Student();
        s3.name="丫丫";
        s3.age=20;
        s3.sex="女";
//        s3.classID="java-04";
        System.out.println("==================================");
        System.out.println(s3);

    }
}

                            执行结果:

三.  非静态方法与非静态变量,静态变量之间的调用;静态方法与非静态变量,静态变量之间的调用;非静态方法与非静态方法,静态方法之间的调用;静态方法与非静态方法,静态方法之间的调用

        代码如下

                图1 :

                                

                图2 :

                                

        注释掉图1和图2中的报错代码,运行结果如下图 :

        以上代码相关总结 :

1. 非静态成员方法可以访问非静态成员变量和静态成员变量,可以调用非静态成员方法和静态成员方法

2. 静态只能访问静态:静态成员方法只能访问静态成员变量,调用静态成员方法

3. 静态成员变量或者静态成员方法可以通过类名直接调用

        例如:   

                类名 .  静态成员变量

                 类名 .  静态成员方法

四. static原理图解:

五. 注意:

        1. main方法为静态方法仅仅为程序执行入口,它不属于任何一个对象,可以定义在任意类中

        2. 接口中的每个成员变量都默认使用public static final修饰。所有接口中的成员变量已是静态常量,由于接口没有构造方法,所以必须显示赋值。可以直接用接口名访问

                例如:

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值