如果我们已经定义好一个publicl类型的类Parameters。下面的语句:
Parameters p=new Parameters();可以用p=new Parameters();来代替吗?请说明原因。
Parameters p=new Parameters();可以用p=new Parameters();来代替吗?请说明原因。
解决方案 »
- 运行时出现 log4j:WARN No appenders could be found for logger (freemarker.cache). 错误
- 面向对象与面向过程的具体优劣
- Java连接SQLServer出现了一些问题
- applet报这个错,请问什么原因
- 怎么样在java代码块里启动DOS命令窗口??/
- 解析excel问题,急急急..........
- 10g数据库编程问题
- 做了个小应用程序用visulage ,但后来在可视界面上打开却看不见所有控件了
- 大家怎么看待SCJP
- 求助!! 在jframe界面添加图片失败
- setOpaque这个方法怎么用?
- 这一段代码中的 << 是什么意思
这种东西不应该看原因,而是看过程所带来的意义,很多事情因为有相对的意义,所以才会存在
举个例子,先定义好一个publicl类型的类Parameters,就好比先和朋友约好去看电影
再p=new Parameters();就是到了电影院后再选择具体看哪个
如果直接Parameters p=new Parameters();就好比直接和朋友约好看哪个电影还有一种情况就是,你定义了成员变量Parameters p,然后再局部中又定义了Parameters p,这2个p是不同的,简单的例子class gogogo
{
static int i=0;
public static void main(String[] args)
{
int i=1;//可以把这句去掉
System.out.println(i);
}
}结果是1
说明main中的i与外部的i无关,因为不同的生命周期,所以可以被声明和在同声明周期下使用
下面来详细叙述:
//1.这种情况下会报错
Parameters p;
Parameters p=new Parameters();
//2.这种情况是对的 这种情况是先申明对象p,之后再实例化p.
Parameters p;//申明对象p
p=new Parameters();//实例化p
//3.这种情况是在申明对象的同时实例化了对象
Parameters p=new Parameters();
当然还要注意全局和局部的问题