java中只能通过对象来访问类的属性或者方法吗?

比如:classA{inta;voida(){a=10;}}以上代码中,没有new对象不是也成功的访问到a属性了吗?... 比如:class A{
int a;void a(){
a = 10;
}
}
以上代码中,没有new对象不是也成功的访问到a属性了吗?
展开
 我来答
其隐植
推荐于2017-10-03 · TA获得超过131个赞
知道小有建树答主
回答量:131
采纳率:100%
帮助的人:76万
展开全部
你这个例子,只是对象自己内部调用,有一个隐含的自身应用对象“this”,相当于this.a=10.外部访问的话,静态的属性和方法不需要通过实例对象访问,直接用类名就行,如Math.random()。还有反射机制,虽然不用使用new关键字,但也要通过newInstance()等方法搞到类的实例。
追问
也就是说,只要是外部访问,都必须让类先实例化才行,对吧?
追答
如果是静态的方法和属性,就不用实例化;非静态的,必须先实例化。
xiao_0702
2014-03-04 · TA获得超过129个赞
知道小有建树答主
回答量:99
采纳率:0%
帮助的人:70.9万
展开全部

按照上述写法其实只是在类中写了个方法将属性初始化了而已!

一般在一个类中写的属性都会写成是私有的属性,如:private int a;然后给其加上set和get方法,在类的外部通过这两个方法访问类的属性;

至于方法,在外部访问同样需要new对象来访问的;

//类A
public class A {
int a;
void a(){
a=10;
}
}
//在类B中访问类A的属性
public class B {
public void b(){
A aa = new A();
aa.a = 10;//若写成a=10;就会报错
aa.a();//同样写成a()也会出错
}
}
追问
也就是说,只要是外部访问,都必须让类先实例化才行,对吧?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
范0凯
2014-03-04 · TA获得超过125个赞
知道答主
回答量:31
采纳率:0%
帮助的人:22.9万
展开全部
利用java的反射机制,可以不用new,一般属性要封装的,没有封装的属性,可以用对象.属性名,但经过封装的属性用对象.属性名则不行,须调用对用的getter方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-04
展开全部
不是的 你可以去看看相应的API文档 里面写的很清楚
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式