【Java】static成员

1.为什么要有static成员?

class Dog{
    public int age;
    public String name;
    public String color;
    public Dog(int age, String name, String color) {
        this.age = age;
        this.name = name;
        this.color = color;
    }
}
public class Test{
    public static void main(String[] args) {
        Dog dog1=new Dog("小白","白色");
        Dog dog2=new Dog("小黑","黑色");
        Dog dog3=new Dog("小黄","黄色");
    }
}

在这里我创建了一个狗类并进行实例化三个对象

2.什么是static成员

我们可以发现这些小狗的年龄好像都一样,那我们是否可以只写一次就可以运用到全员呢?于是这时候我们就要使用到static

2.什么是static?

static:static是用来修饰成员变量或成员方法的,被static修饰的成员,成为静态成员,也可以称为类成员,静态的成员只有一份,存在方法区当中,其不属于某个具体对象,是所有对象所公有的

3.static的访问形式 

class Dog{
    public static int age;
    public String name;
    public String color;
    public Dog(String name, String color) {
        this.name = name;
        this.color = color;
    }
}

1.通过对象的引用访问:对象名.被静态的成员

public class Test{
    public static void main(String[] args) {
        Dog dog1=new Dog("小白","白色");
        dog1.age=2;
        Dog dog2=new Dog("小黑","黑色");
        dog2.age=2;
        Dog dog3=new Dog("小黄","黄色");
        dog3.age=2;
    }
}

2.通过类名访问:类名.被静态的成员

 Dog.age=2;

 那使用以上这两种方法那种更好呢?

static称为静态成员变量,也称为类变量。也就是说这个变量是属于类的,不依赖变量,他是所有对象所共享的,不属于某个对象的空间中。所以更推荐使用类名访问

静态成员变量特性

  • 属于类,不依赖于对象,不需要实例化;
public class Test{
    public static void main(String[] args) {
        Dog.age=2;
    }
}
  • 推荐使用类名访问;
  • 类变量储存在方法区当中;
  • 生命周期随类的一生;
  • 可以在非静态成员方法中访问静态成员方法

  • 不能在静态成员方法访问任何非静态成员方法,因为静态方法不依赖于对象,可以通过类名来访问;非静态方法依赖于对象,需要通过对对象的引用访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值