static(个人学习笔记黑马学习)

static修饰成员变量表示该成员变量只在内存中只存储 一份,可以被共享访问、修改

格式

package com.itheima.d1_static;

import javax.jws.soap.SOAPBinding;

public class StaticFieldDemo1 {
    public static void main(String[] args) {

        //1.类名.静态成员变量
        System.out.println(User.onlineNumber);

        //2.构造对象调用
        User user=new User();
        user.onlineNumber++;
        System.out.println(user.onlineNumber);
    }
}
package com.itheima.d1_static;

public class User {
    /*
    注意:static修饰静态变量,静态成员变量,只在内存中存一份,可以被共享

     */

    public static int onlineNumber=161;
}

static跟实例变量的区别

package com.itheima.d1_static;

public class User {
    /*
    注意:static修饰静态变量,静态成员变量,只在内存中存一份,可以被共享

     */
    public static int onlineNumber=161;


    /**
     * 实例成员变量,无static修饰,属于每个对象的,必须用对象名访问
     */
    private String name;
    private int age;

    public static void main(String[] args) {

        //1.类名.静态成员变量
        System.out.println(User.onlineNumber);

        //2.构造对象调用
       // User u =new User();
        //u.onlineNumber++;
        //System.out.println(u.onlineNumber);


        //对象名.实例成员变量
        User u =new User();
        u.name="张三";
        u.age=21;
        System.out.println(u.name);
        System.out.println(u.age);
        u.onlineNumber++;
        System.out.println(u.onlineNumber);
        System.out.println(User.onlineNumber);//推荐方式
        //注意:同一个类中静态成员变量的访问可以省略类名
        System.out.println(onlineNumber);

    }
}

 

 


静态成员方法

package com.itheima.d1_static;

public class Student {
    /**
     * 实例成员变量:无static修饰,属于对象
     */
    private String name;

    /**
     * 静态成员方法:有static修饰,归属于类,可以被共享
     */
    public static int getMax(int age1,int age2){
        return age1>age2?age1:age2;
    }


    public static void main(String[] args) {
        //1.类名.静态成员方法名
        System.out.println(Student.getMax(13, 3));
        //注意:同一个类中,访问静态方法,类名可以省略不写
        System.out.println(getMax(18, 59));
    }
}

 

package com.itheima.d1_static;

public class Student {
    /**
     * 实例成员变量:无static修饰,属于对象
     */
    private String name;

    /**
     * 静态成员方法:有static修饰,归属于类,可以被共享
     */
    public static int getMax(int age1,int age2){
        return age1>age2?age1:age2;
    }
    public void study(){
        System.out.println(name+"在好好学习");
    }


    public static void main(String[] args) {
        //1.类名.静态成员方法名
        System.out.println(Student.getMax(13, 3));
        //注意:同一个类中,访问静态方法,类名可以省略不写
        System.out.println(getMax(18, 59));



        //study();报错
        //对象.实例方法
        Student s =new Student();
        s.name="张三";
        s.study();
    }
}

总结:static使用类名或对象(不推荐)

            实例对象或方法只能使用对象 

static注意事项

1.静态方法只能访问静态成员,不能直接访问实例成员
2.实例方法可以访问静态成员,也可以访问实例成员
3.静态方法中不可以出现this关键字
package com.itheima.d1_static;

public class Test3 {

    /**
     * 静态成员
     */
    public static int onlineNumber=10;
    public static void test2(){
        System.out.println("===2===");
    }

    /**
     * 实例成员
     */
    private String name;
    public void run(){
        System.out.println(name+"跑的快");
    }


    //3.静态方法中不可以出现this关键字
    public static void test3(){
       // System.out.println(this);
    }

    //2.实例方法可以访问静态成员,也可以访问实例成员
    public void go(){
        System.out.println(Test3.onlineNumber);
        System.out.println(onlineNumber);
        test2();
        System.out.println(name);
        run();
    }


    //1.静态方法只能访问静态成员,不能直接访问实例成员
    public static void test(){
        System.out.println(Test3.onlineNumber);
        System.out.println(onlineNumber);
        test2();
        //System.out.println(name);//不能直接访问实例成员
        //run();//不能直接访问实例成员
    }


    public static void main(String[] args) {
        //目标:理解static 访问相关的语法

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值