this 到底指向谁
我们在初学 Java 基础时,this 一般都是这样解释的:哪个对象调用,this 就代表哪个对象,
这时我就有疑问了,那如果我父对象调用,this 难道还能指向父对象不成,
先说结论:
- this.属性 只会指向当前类的属性
- this.方法 才是谁调用就指向谁
实测:
public class extend_Test1 {
public static void main(String[] args) {
Son son = new Son();
son.method();
}
}
class Father {
private String name = "Father的属性";
public void method() {
System.out.println(this.getClass());
System.out.println(this.name);
}
}
class Son extends Father {
public String name = "Son的属性";
}
打印结果如下:
很奇怪吧,this 的运行时类型明明是 Son,打印属性的结果却是 Father 的属性,于是我决定在父类和子类中都定义一个方法,并通过反射获取 this 的属性值
public class extend_Test1 {
public static void main(String[] args) {
Son son = new Son();
son.method();
}
}
class Father {
private String name = "Father的属性";
public void abc() {
System.out.println("FatherFather");
}
public void method() {
System.out.println(this.getClass());
System.out.println(this.name);
this.abc();
for (Field field : this.getClass().getDeclaredFields()) {
try {
Object value = field.get(this);
System.err.println("属性值:" + value);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
class Son extends Father {
public String name = "Son的属性";
public void abc() {
System.out.println("SonSon");
}
}
打印结果如下:
为此我想起来了一个知识点,不知道和这个问题有没有关系,那就是属性是在编译时就确定下来的,没有多态的概念,但是感觉这跟 this 的关系也不大,可能只能等后面学到 jvm 的时候才能有个完美的解答了
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
作者分享
2024 年度总结
5
我的大专三年,共勉
20
收到鱼总的周边啦,感谢鱼总(。ò ∀ ó。)
除夕快乐呀各位小伙伴 ٩( 'ω' )و
19
#职场#
小厂生存之道
一、定义小厂
十个人左右的公司,老板的权利达到了百分百,没有实际意义上的管理层,有点像初中历史学的专制主义中央集权达到了顶峰哈哈哈😂
二、多出去谈业务,如果有的话
前面说了小厂的定义,业务基本上都是老板自己去拉来的,所以有时候老板出去洽谈业务的时候能跟最好跟一下
我一开始挺排斥和老板一起出去谈项目,因为我觉得浪费时间,自己也没得到什么成长
后来我思想发现了改变,有时候多出去看看业务是怎么谈下来的也挺开阔视野,即使去的不是互联网公司,也能学到很多行业大概的初步面貌
三、老板在的时候最好和同事聊些项目或者技术上的问题,总之就是不要让他觉得你很闲
这个是同事教我的,我一开始还对此嗤之以鼻,直到老板叫我去做些与工作毫无关系的事情我才恍然大悟
四、该睡觉就睡觉,该摸鱼学习就摸鱼学习
不要有什么负罪感,想想你那可怜的工资,给公司卖啥命呢,公司和员工是双向选择,而不是员工绑定了公司
记得一开始我入职的时候,恨不得把全天的时间投入到工作中,一天做完一周的需求,但后来我思想进行了转变,因为需求是永远做不完的,这里更针对的是重复性工作或者技术含量不高的,如果做的需求有成长我觉得把全天时间都投入到工作中也未尝不可
其实只要把当日 task 完成,然后就做自己的事情就好了,当然做好当日 task 也不要过早汇报了
五、说老板坏话时,最好先看看四周,有可能他刚好回来了
由于没有中间层,所以同事之间经常会在上班时说老板坏话
有一次他迟了一天发工资,我在公司抱怨了几句,没想到他刚好在办公室里面,不知道有没有听到,还是有点尴尬的哈哈
六、和同事相处
先观察同事一段时间,看情况选择是否交朋友还是只是做单纯同事
我在小厂的一个同事技术还可以,但是有点摆烂,没有那种主动学习的热情,只有在工作上需要才学下(当然我也觉得这种状态没啥问题,但是因为他才比我大了两三岁,如果想继续深耕这个行业肯定是要持续学习的,也不止是编程这行如此),他没事时候基本上都在和别的同事聊游戏,政治,女人等,成分及其复杂,我有时也会或多或少的被带进去讨论
16
专科大二找实习的心路历程
38
