0 0

我以为我懂 this 了,但是看到这段代码,我无法浆糊了10

贴代码:

 

@SuppressWarnings("unused")
public class Client {
	public static void main(String[] args) {
		B b = new B();
	}
}
class A{
	private String name = "class A";
	public A(){
		System.out.println("A: "+ this.getClass().getName() );
		System.out.println("A: "+ this.name);
	}
}
class B extends A {
	private String name = "class B";
	public B() {
		System.out.println("B: "+ this.getClass().getName() );
		System.out.println("B: "+this.name);
	}
}

上面代码的运行结果如下:

 

 写道
A: cn.test.generic.B
A: class A
B: cn.test.generic.B
B: class B

 为什么会出现这样的结果呢?this既然是 Class B ,为什么能打印 A 中的私有属性值呢?

 

 

 

 


问题补充:我的问题是,在构造父类时,this到底指向的是什么对象?
2012年12月21日 08:57

9个答案 按时间排序 按投票排序

1 0

    在子类实例化调用父类构造方法时会把实例传到父类中,应此在调用父类的构造方法时,this是子类的对象引用;private的访问范围是本类,所以相当于子类实例在A类中访问自己的变量,所以打出A类的变量

2012年12月21日 11:20
1 0

     * Returns the runtime class of this {@code Object}. The returned
     * {@code Class} object is the object that is locked by {@code
     * static synchronized} methods of the represented class.


看源码解释,getClass()返回的是运行时的类,这个程序运行时的类是B,不是A

2012年12月21日 09:48
0 0

引用
问题补充:我的问题是,在构造父类时,this到底指向的是什么对象?


在父类构造器中,this也是指向实际的实例(Class B的实例)。但私有对象变量不可能存在继承关系,使用this访问私有对象变量时采用编译期静态绑定(不会在运行期去查看子类是否有同名的变量),因此在父类中用this访问私有变量只会访问到父类中的那一个。

这个现象跟构造器没有本质联系,你在子类中调super方法,在super方法中用this访问私有变量同样是访问到super类中的那个私有变量。

2012年12月24日 20:38
0 0

new子类的时候调用父类的构造,private的访问权限是:类的内部,问题解决了。

2012年12月21日 11:20
0 0

A, B 类代码等同于下:


class A{  
    private String name = "class A";  
    public A(){  
        super();
        System.out.println("A: "+ this.getClass().getName() );  
        System.out.println("A: "+ this.name); 
    }  
}  
class B extends A {  
    private String name = "class B";  
    public B() {  
        super();
        System.out.println("B: "+ this.getClass().getName() );  
        System.out.println("B: "+this.name);  
    }  
}  

2012年12月21日 11:18
0 0

子类构造方法 默认会调用父类的构造方法 所有New B 的时候先实例父类 A  在实例化B

2012年12月21日 10:39
0 0

调用子类的构造方法的时候,会先调用父类的构造方法。和this没有关系。

2012年12月21日 09:53
0 0

子类初始化前会先调用父类的构造方法,你new B()的时候,先调用了A()的构造方法

2012年12月21日 09:31
0 0

public class TestParent {
	public static void main(String[] args) {
		Child c = new Child();
		Parent p = c;
		System.out.println(p.name); // Parent
		System.out.println(p.get());// Child
		System.out.println(c.name);// Child
		System.out.println(c.get());// Child
	}
}

class Parent {
	String name = "Parent";

	public String get() {
		return name;
	}
}

class Child extends Parent {
	String name = "Child";

	public String get() {
		return name;
	}
}

2012年12月21日 09:03

相关推荐

    浆糊瓶标贴标机的种类及功能

    浆糊贴标机的种类繁多,功能各异,依据浆糊产品的不同形态和特性,大致可以分为固体浆糊贴标机、固态颗粒状(粉状)浆糊贴标机、液体及乳液状浆糊贴标机、膏状浆糊贴标机等几种类型。 首先,固态颗粒状(粉状)浆糊...

    浆糊贴标机的开发方向

    浆糊贴标机的开发方向主要集中在包装机械的现代化、高效化和环保化。随着市场经济的高速发展和消费者生活质量的提高,包装机械行业面临巨大的商机。"十一五"期间,中国包装工业的总产值预计可达4500亿元人民币,并...

    行业文档-设计装置-一种新型浆糊笔.zip

    标题中的“设计装置”指的是对某种机械设备或工具的设计过程,而“新型浆糊笔”则是一种创新的工具,可能是用于书写、绘画或是特殊工艺制作的工具。浆糊笔可能结合了传统的笔和浆糊的功能,使得在某些特定的创作或...

    行业分类-设备装置-古书画装裱浆糊及其制备方法.zip

    在这个过程中,浆糊作为装裱的粘合剂起着至关重要的作用。本文将深入探讨古书画装裱浆糊的种类、制作方法以及其在文物保护中的应用。 浆糊是装裱工艺中的核心材料,它的质量直接影响到书画作品的保存寿命。传统的...

    行业资料-电子功用-光电自动浆糊机的说明分析.rar

    光电自动浆糊机是一种在电子行业中广泛应用的自动化设备,主要用于浆糊的精确涂抹。这份行业资料深入探讨了这种机器的工作原理、设计特点以及在实际生产中的应用,旨在为电子制造企业提供有关浆糊机的详尽知识。以下...

    大班美术 浆糊印画.doc

    浆糊印画,作为一项富有创意与趣味的美术活动,正符合这一教育理念。 **一、体验与尝试,开拓艺术视野** 在活动中,首要的目标是让幼儿体验与尝试浆糊印画这一新颖的艺术表现手法。对于大班的孩子们来说,这不仅是...

    行业分类-设备装置-壁纸上浆机中的自动浆糊供给方法及其装置.zip

    本话题聚焦于壁纸上浆机中的自动浆糊供给方法及其装置,这是一个旨在提高生产效率、减少人力成本和保证产品质量的关键技术。 自动浆糊供给系统的核心目标是实现浆糊的精确控制和持续供应,以确保壁纸涂层的一致性和...

    幼儿园教案2021-大班美术 浆糊印画.doc

    在2021年的幼儿园大班美术教学活动中,浆糊印画成为了一项备受孩子们欢迎的创作方式。这项活动旨在通过系统的教学设计,培养幼儿的美术创作能力和想象力,让他们在艺术的海洋里自由徜徉。 美术教育作为幼儿教育中的...

    浆糊贴标机单层热封包装材料对包装机的适性

    在现代食品工业中,包装材料的适性对于自动化包装过程至关重要...在这个过程中,浆糊贴标机作为一个重要的辅助设备,也发挥着不可替代的作用,它通过自动化的方式提高标签的贴附效率和准确性,从而提升整体的包装水平。

    电信设备-代替浆糊粘贴的信(函)袋封口器.zip

    "电信设备-代替浆糊粘贴的信(函)袋封口器.zip"这个文件压缩包显然聚焦于一个旨在提升通信处理速度和工作流程优化的设备——信(函)袋封口器。这种设备是用来替代传统浆糊粘贴方式,对大量信封或邮件进行快速、整洁...

    大班美术欣赏教案《浆糊印画》润新教育.txt

    大班美术欣赏教案《浆糊印画》润新教育.txt

    大班美术活动教案《浆糊印画》润新教育.txt

    大班美术活动教案《浆糊印画》润新教育.txt

    电子功用-可重结晶的玻璃作为等离子体面板电极浆糊的矿物粘合剂的应用

    这篇行业资料——"电子功用-可重结晶的玻璃作为等离子体面板电极浆糊的矿物粘合剂的应用"探讨了在PDP制造过程中,采用可重结晶玻璃作为电极浆糊的粘合剂的创新技术。 等离子体显示面板的工作原理基于气体放电现象,...

    python实现解数独程序代码

    无奈是个数独菜鸟,以前没玩过,根本就走不出几步就一团浆糊了。 于是就打算借助计算机的强大运算力来暴力解数独,还是很有乐趣的。 下面就记录一下我写解数独程序的一些思路和心得。 一.数独游戏的基本解决方法 ...

    pytorchDQN.py

    那么也可以拿来做强化学习, 之前我用另一个强大神经网络库 Tensorflow来制作了这一个 从浅入深强化学习教程, 你同样也可以用 PyTorch 来实现, 这次我们就举 DQN 的例子, 我对比了我的 Tensorflow DQN 的代码, 发现 ...

    大学生实习银行工作感想小结.docx

    现金管理是银行工作的一个重要方面,实习中,我学习了如何处理现金,包括人民币的摆放、封签的盖章、浆糊的涂抹等。这些看似基础的工作,实际上却蕴含着银行对资金安全和效率管理的严谨态度。我渐渐明白,银行的每一...

    学做牛轧糖作文1000字.pdf

    如今,我将这幅画面细细描绘成一篇1000字的作文,希望能够通过文字的力量,将那份甜蜜与喜悦传递给每一个读到这篇文章的人。 在那个阳光明媚的午后,我和阿姨一起准备制作牛轧糖。我们的材料非常简单:棉花糖、熟...

    100小时学会sap

    我个人是蛮喜欢这个书的,尽管里面错误不少。 但是从操作层面来说,知识覆盖面蛮全的。 但是这本书也很操蛋的说。 封面上说100小时学会SAP,恐怕这个100小时是针对熟手而言的。 新人如果100天能都全部搞定,就要...

    单片机可调电子钟及初始--HELLO--显示

    在这个项目中,我们看到的"HELLO"显示可能是系统启动或操作成功时的一个简单提示信息,它通常用于验证硬件和软件的基本功能。下面我们将深入探讨这个主题。 首先,单片机(Microcontroller Unit,MCU)是这种电子钟...

    幼儿园中班美术教案《我装饰的光盘》.doc

    《我装饰的光盘》这一中班美术教案,巧妙地将两者结合在一起,通过利用废旧光盘进行装饰创作,引导孩子们认识并实践环保理念,同时提高他们的艺术表现力。 活动的背景源于现代社会普遍存在的一个现象——光盘在使用...

Global site tag (gtag.js) - Google Analytics