类成员和实例成员的访问

1.类成员和实例成员

1)类的成员:字段,方法,内部类;使用static修饰的成员
2)实例成员:没有使用static修饰的成员
3)类成员只能访问类成员,实例成员只能访问实例成员
4)类成员直接属于类,可以通过类来访问static字段和static方法。实例成员只属于对象,通过对象来访问非static字段和非static方法(对象其实可以访问类成员,但是底层依然使用类名访问的)

2.使用类成员跟实例成员的注意事项

1)在static方法中,只能调用static成员,否则出现”无法从静态上下文中引用非静态变量”
2)非static方法,可以访问静态成员,也可以访问实例成员
3)静态成员访问成员变量,该成员变量必须使用static进行修饰

3.什么时候定义成static的字段和方法

如果这个状态/行为属于整个事物(类),就直接使用static修饰,被所有对象所共享。在开发中往往把工具方法使用static修饰,如所用到的二分法查找,排序等等,如果不使用static修饰,则这些方法属于该类的对象,我们得创建对象再调用方法,因为创建N个对象会损耗内存,降低性能。在开发中工具对象只需要一份即可,可能创建N个对象,此时我们往往把该类设计为单例,但是还是有点麻烦。所以一般的,在开发设计中,为了调用简单,我们使用static修饰
“`
4.类成员使用的优点和缺点

1)优点:对对象的共享数据进行单独空间的存储,节省空间,没有必要每一个对象都存储一份,可以直接被类名调用
2)缺点:生命周期过长。因为类成员是随着类的加载而加载的,意味着只要JVM还在运行就会一直存在,而不像实例成员那样,只要对象没有使用了就会被回收

5.代码:

package com.JAVABASIS6;
class ClassDemo2{
void isDo(){
System.out.println(“该学习了”);
}
}
public class StaticAndObjectDemo {
static String name = “成员变量”;
public static void main(String[] args){
//如果成员变量前面不用static进行修饰则会报错,Cannot make a static reference to the non-static field name,因为静态变量访问成员变量,该变量必须使用static进行修饰
System.out.println(name); //输出为”成员变量”
//当使用这句:ClassDemo2.isDo();//会报错:Cannot make a static reference to the non-static method isDo() from the type ClassDemo2

}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值