java程序问题?

哪位大神帮我解答这个?应该是个小问题。。。... 哪位大神帮我解答这个?应该是个小问题。。。 展开
 我来答
microroom
科技发烧友

2020-04-19 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1581万
展开全部
因为没有显式提供构造方法(也叫构造器或构造函数),所以,java会自动为你提供一个默认构造方法(无参构造方法) ,而new ObjectInstance()就是调用的这个默认构造方法来创建对象的。

同时类ObjectInstance覆盖(重写)了toString方法,这个方法的作用就是把类ObjectInstance的对象转换成一个字符串。
在这个方法内部调用了从Object类继承的getClass方法,getClass方法会返回一个类Class(注意这里的Class表示一个类,实际上Class还是一个泛型类)的对象,这个Class类的对象保存了类ObjectInstance的元数据(比如,ObjectInstance类有哪些属性、哪些方法、超类是谁、实现了什么接口等)。而Class类的对象有一个getName方法,这个方法会返回Class对象表示的类的类名,因为现在的Class类的对象保存的是类ObjectInstance的元数据(即它代表了类ObjectInstance),所以getName方法返回的是类ObjectInstance的类名"ObjectInstance"。

而当调用println输出一个类ObjectInstance的对象时,会先自动调用这个对象的toString方法,将对象转换为字符串后再输出。所以,输出的是ObjectInstance类的类名。
更多追问追答
追问
为什么会自动调用重写的toSpring方法?
追答
因为你在用println输出一个对象啊。
println函数有一个重载版本是println(Object o),你调用的正是这个重载。在这个重载函数内部的某个地方会调用o.toString()将对象转换为字符串(就是在这里调用的toString),然后输出。

直白地讲,调用对象的toString方法,就是方法println为你提供的功能。
百度网友d78ce2c
2020-04-19
知道答主
回答量:26
采纳率:33%
帮助的人:1.6万
展开全部
Java源程序一般用java作为扩展名,是一个文本文件,用Java语言写成,可以用任何文本编辑器创建与编辑;编译源程序Java编译器,“javac”,读取你的Java源程序并翻译成Java虚拟机能够明白的指令集合,且以字节码的形式保存在文件中。通常,字节码文件以class作为扩展名;运行class(字节码)文件Java解释器读取字节码,取出指令并且翻译成计算机能执行的代码,完成运行过程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Getline
2020-04-19 · 科技领域创作者
Getline
采纳数:405 获赞数:2705

向TA提问 私信TA
展开全部
第一,编译器会生成了一个默认的无参数构造函数。
第二,之所以输出ObjectInstance ,是自动调用了toString方法。
追问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式