Java----static用法和this的用法

Java—-static用法和this的用法

  1. this
    在方法的使用有两种情况
    普通函数中,指向调用该方法的对象
    构造函数中,指向当前要被初始化的对象
    this不能用于static方法中,因为static是隶属于类的,可以是用类名直接调用,而this的使用必须有对象。下面是this的分析代码
public class TestThis {
    public static void main(String[] args) {
        Pig pig = new Pig("八戒");
        System.out.println(pig.name);
        pig.sayHello("小猪");
    }
}

class Pig {
    String name;

    public Pig() {
        System.out.println("Pig.Pig(我是无参的构造器)");
    }

    public Pig(String _name) {
        //当前对象是否已经被创建,创建完成之后才能够进行初始化
        //这里的this  当pig调用该类的时候,this的指向就是pig这个对象
        this.name = _name;
    }
}

2.static
当static修饰变量的时候, 该变量属于类变量,可以被所有对象共享,当一个对象修改了这个变量的时候,所有对象中这个变量都会改变。下面是代码

public class Test01{
    public static void main(String[] args){
        MengNiu m=new MengNiu(11);
        MengNiu m1=new MengNiu(2);
        System.out.println(m.count);
        System.out.println(m1.count);
    }
}
class MengNiu{
    static int count;
    public MengNiu(int count){
        this.count=count;
    }
}

输出的结果是 两个对象的count都是25,说明了 当一个对象改变该变量后,该变量在整个类中都会改变。
当static修饰方法的时候,该方法是静态方法,隶属于类,可以使用类名直接调用。可以被所有的对象中使用。因为可以用类名直接调用所以,静态方法里面不能存在非静态变量,因为非静态变量必须实例化以后才能使用。下面是代码

public class Test01{
    public static void main(String[] args){
        MengNiu.m();
    }
}
class MengNiu{
    static int count;
    public MengNiu(int count){
        this.count=count;
    }
    public static void m(){
    }
}

当static在代码块中使用的时候,修饰的是整个代码块,当类被加载的时候就开始执行,jvm只加载类一次,所以静态代码块只运行一次。静态代码块 存在的意义就是初始化类。下面是静态代码块的代码

public class TestStaticContext {
    public static void main(String[] args) {
            Long long1 = new Long();
    }
}
class Long {
    static {
        System.out.println("我是静态代码块");
        sayHello();
    }
    public Long() {
        System.out.println("Long.Long(我创建了一条龙)");
    }
    public static void sayHello() {
    }
    public void sayHi() {
    }
}

输出的结果,先输出静态代码块的内容 在输出构造函数输出语句输出的句子。
我是静态代码块
Long.Long(我创建了一条龙)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值