static

package:包名所有字母都小写

static:静态的

  1)静态变量:
    1.1)由static修饰
1.2)属于类的,存在方法区中,只有一份
1.3)常常通过类名点来访问
1.4)何时用:所有对象所共享的数据(图片、音频、视频等)
  2) 静态方法:
    2.1)由static修饰
2.2)属于类的,存在方法区中,只有一份
2.3)常常通过类名点来访问
2.4 )静态方法没有隐式this传递
   所以在静态方法中不能直接访问实例成员

2.5)何时用:方法的操作仅与参数相关而与对象无关

Arrays.sort(arr);-----------静态方法
无论a1,a2,a3,...,a100中的哪一个对象
去sort(arr)的最终结果都是一样的
说明sort()的操作仅与参数相关而与对象无关
假设sort()不是静态的:
  Arrays a1 = new Arrays();
  a1.sort(arr);
  Arrays a2 = new Arrays();
  a2.sort(arr);
  Arrays a3 = new Arrays();
  a3.sort(arr);

class Moo{
int a;//实例变量,由对象来访问
static int b;
void show(){ //有this
System.out.println(this.a);
System.out.println(b);b前面默认有个Moo.b
}
static void test(){ //没有this
//静态方法没有隐式的this传递
//没有this就意味着没有对象
//而实例变量a必须通过对象点来访问
//所以,在静态方法中不能直接访问实例成员
//System.out.println(a);
System.out.println(Moo.b);
}

}

Math.sqrt

提问:静态方法与实例方法的区别

          静态方法有this吗?没有

所以,在静态方法中不能直接访问实例成员


 


上图 study和sayHi加static就报错,因为name是实例变量,要对象来访问,

那我Static String name;

        Static int age;

         Static String address;可以吗?不可以

每个学生的年龄姓名是不一样的


 3)静态块:

    3.1)由static修饰
3.2)属于类的,在类被加载期间自动执行
   因类只被加载一次,所以静态块也只执行一次
3.3)何时用:加载/初始化静态资源(图片、音频、视频等)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值