Java : 习题4

1.类中的实例变量在什么时候会被分配内存空间?

   答:只有在使用类创建对象的时被分配内存空间。(类变量在类被加载到内存时,就分配了相应的内存空间)

2.什么叫做方法的重载?构造函数可以重载么?

   答:一个类中可以有多个方法具有相同的名字,但这些方法的参数列表必须不同,即参数的个数不同,或者参数个数不同。

        构造函数可以重载。

    注:方法的返回类型和参数名字不参与比较。也就是说,如果两个方法的名字相同,即使返回类型不同,也必须保证参数不同。

3.类中的实例对象可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量么?

    答:因为类变量是和该类创建的所有对象相关联的变量,所以类变量不仅可以通过某个对象访问,也可以直接通过类名访问。需要注意的是,改变其中一个对象的这个类变量就同时改变了其他对象的这个类变量。

           类方法不可以操作实例变量。这是因为,实例变量只有在类创建对象时才被分配内存,而类方法可以直接通过类名调用,使用类方法去操作一个未被分配内存的对象的实例变量,这是不符合逻辑的。



4.类中的实例方法可以用类名直接调用吗?

    答:实例方法不能通过类名调用。这是因为,只有该类创建对象后,类中的实例方法才分配入口地址,从而实例方法可以被列创建的任何对象调用执行。

    需要注意的是,当我们创建第一个对象时,类中的实例方法就被分配了入口地址,当在创建其他对象时,不再分配入口地址。也就是说方法的入口是被所有的对象共享,当所有的对象都不存在时,方法的入口地址才被取消。

5.简述类变量和实例变量的区别。

    答:不同的对象实例变量互不相同:分配给不同对象的实例变量占有不同的内存空间,改变其中某一个对象的实例变量不会影响其他对象的实例变量。而类变量被该类创建的所有对象共享,所有对象的类变量占有相同的一处内存。其中一个对象将它的值改变,其他对象的类变量也会被改变。

           类变量在类被加载到内存时就被分配内存空间,而实例变量只有在使用类创建对象后才被分配内存空间。

           类变量可以通过类名和对象访问,而实例变量只可以通过对象访问。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值