学习笔记——关键字static

本文详细介绍了Java中static关键字的作用、特点以及如何在不同场景下使用static成员变量和静态方法。通过实例展示了static成员如何实现类共享数据,并解释了静态成员与非静态成员的区别。

 static 关键字

作用:是一个修饰符,用于修饰成员(成员变量,成员方法)

被static修饰后的成员变量只有一份

  当成员被static修饰后多了一种访问方式,除了可以对象调用之外,还可以被类直接调用(类名.静态成员);
  

  static 的特点:

1,.随着类的加载而被加载

2,优先于对象的存在

3,.被所有的对象所共享

4,可以直接被类名所调用


  静态成员变量(类变量)和非静态变量(实例变量)的区别:

1,存放位置

类变量随着类的加载而存在于data内存区

实例变量随着对象的建立而存在于堆内存区

2,生命周期

类变量生命周期最长,随着类的消失而消失

实例变量生命周期比类变量短,它是随着对象的消失而消失


方法注意事项:

1,静态的方法只能访问静态的成员(成员变量,成员方法) 

2,非静态的方法既能访问静态的成员(成员变量,成员方法),也能访问非静态的成员

3,静态的方法中不可以定义this super 关键字

 因为静态优先于对象存在,所以静态方法不可以出现this


什么时候使用静态

因为static 所修饰的内容是成员(成员变量,成员方法),所以可以从两个方面入手

1,什么时候使用静态的成员变量?

 当属于同一个类的所有对象出现共享数据时,需要将存储这个共享数据的成员变量用static修饰

2,什么时候使用静态方法?

当功能内部没有访问到非静态的成员时(对象特有的数据),那么该功能可以定义成静态的

如:

public class A_6_37 {
public static void main(String[] args){
Person A=new Person();
A.name="kkl";
A.country="China";
System.out.println(A.name+A.country);
Person.print();
Person B=new Person37();
B.name="ddf";
System.out.println(B.name+B.country);
//因为country是静态成员变量,B无需重新赋值,直接共享使用
Person.print();
}
}
class Person{
String name;
static String country;
//country可以看成是共享数据,因此用static修饰,变成静态成员变量
static void print(){
//没有访问到对象特有数据,因此可以定义成静态方法
System.out.println("你好");
}
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值