超人不穿裤衩 2020-10-18 14:15 采纳率: 100%
浏览 123
已采纳

静态成员的赋值问题;this.value和value为何不同

输出的结果为3和33;不明白为何不同 ,为何不都是3。
求大佬解答。

public class Apple {
    static int value = 33;

    public static void main(String[] args) throws Exception{
        new Apple().printValue();
    }

    private void printValue(){
        int value = 3;
        System.out.println(this.value);
        System.out.println(value);

    }
}
  • 写回答

3条回答 默认 最新

  • 封印di恶魔 2020-10-19 16:38
    关注

    this指代当前对象
    如果方法中没重新声明value,那么this.value和value是相同的都是外部的那个value
    但是方法内声明了局部变量,value就表示本方法中的value,而this.value表示外部的value

    常用的还有this和super的比较,this指代当前对象,super指代当前类继承的父类
    所以如果重写方法时,要保留父类逻辑的同时还要新增逻辑可以用到super

    @override
    public void save(Object a) {
        a.num = 10;
        super.save();
    }
    

    如果有帮到你的话请采纳下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程