我在一段代码中看到的.我把它的意思重新写了一下
看下面的三个文件源代码:CObj.java ====================================================
public class CObj {
public int iObj = 0;
public CObj() {
this(1);
}
public CObj(int a) {
iObj = a;
System.out.println("Create CObj:(" + a + ")");
}
public void print() {
System.out.println("This.Value:=" + iObj + ";");
}
public static void main(String[] args) {
//
}
}
StaticMethod.java ============================================
public class StaticMethod {
public CObj myObj = null;
public static CObj myMethod() {
return new CObj(9);
}
public static void main(String[] args) {
//
}
}
TestObj.java =================================================
public class TestObj {
public static void main(String[] args) {
StaticMethod staticMethod = new StaticMethod(); //下面这句话是什么意思;
//CObj 和 StaticMethod 是两个类名;能这样赋值么?
//具体有什么好处;
//TIJ2中我没有看到过.
CObj StaticMethod = staticMethod.myMethod();
}
}
看下面的三个文件源代码:CObj.java ====================================================
public class CObj {
public int iObj = 0;
public CObj() {
this(1);
}
public CObj(int a) {
iObj = a;
System.out.println("Create CObj:(" + a + ")");
}
public void print() {
System.out.println("This.Value:=" + iObj + ";");
}
public static void main(String[] args) {
//
}
}
StaticMethod.java ============================================
public class StaticMethod {
public CObj myObj = null;
public static CObj myMethod() {
return new CObj(9);
}
public static void main(String[] args) {
//
}
}
TestObj.java =================================================
public class TestObj {
public static void main(String[] args) {
StaticMethod staticMethod = new StaticMethod(); //下面这句话是什么意思;
//CObj 和 StaticMethod 是两个类名;能这样赋值么?
//具体有什么好处;
//TIJ2中我没有看到过.
CObj StaticMethod = staticMethod.myMethod();
}
}
解决方案 »
- 100分求解:构造器模式中常用的那个静态内部类
- 请教大家个 scjp认证里面的试题(标题要长.-------------------------------------------------------)
- 串口问题,各位大虾帮帮忙
- 请问如何画2象素的曲线?
- 如何解决Jbuilder9的光标问题
- 如何使用xsd进行开发
- 成都的SCJD和java高手请进
- (关于cast)知道我的方法有问题,只求更好的建议(新手)
- 关于JTextFeild
- 我用DatabaseMetaData中的getPrimaryKey()返回的是ResultSet是空集?
- 小弟初学jsp跟sql2000的连接,出现连接问题不会解决,请帮忙。
- 这是不是Java的设计缺陷(Double型 a=a+b和a=b+a )
我是小虾,一点意见,不知道对不对
我用的是 JDK1.5 + Notepad.exe 的.通过了。一起来学学吧.~~ 先别这么肯定!
我用的是 JDK1.5 + Notepad.exe 的.通过了。一起来学学吧.~~ 先别这么肯定!
赋值: CObj myCObj = StaticMethod.myMethod();
这句大小写没写错?
调用StaticMethod的静态方法生成一个CObj对象,这个对象的名称为StaticMethod
没错呀
CObj staticMethod = StaticMethod.myMethod(); //注意大小写;
并且:没看到上面的定义吗.staticMethod 不是CObj对象;
StaticMethod staticMethod = new StaticMethod();
我很忙.今天还要交差. 没时间来玩文字游戏.还是你看错了. 我写的变量名的字首都是小写的.类名是大写的.
我又仔细检查了一边.并没有发现你所谓的文字游戏.
我看的很清楚..
也写的很清楚.你明白我问的问题 和 我写的代码吗 ?
还是你看错了. 我写的变量名的字首都是小写的.类名是大写的.
----------------------------------------------
没看懂,楼主你说的是真的吗?
那StaticMethod不是变量名吗?
小人愚笨,恕罪
public class StaticMethod {
public CObj myObj = null;
public static CObj myMethod() {
return new CObj(9);
}
public static void main(String[] args) {
//
}
}
public class TestObj {
public static void main(String[] args) { //各位能再看仔细写吗?为了不造成视觉效应我改一下.(只改变量名)
StaticMethod mySMethod = new StaticMethod();
CObj StaticMethod = mySMethod.myMethod();//1,比较2的staticMethod的大小写
//下面这样是谁都能理解的.楼上的很多兄弟都在说下面这种情况.
CObj myCObj = null;
myCObj = StaticMethod.myMethod();//2,比较1的StaticMethod的大小写
}
}
你可真 TMD 三八.
Sample hissample=new HisSample();随着项目的深入,Sample可能还会"生出很多儿子出来", 那么我们要对这些儿子一个个实例化,更糟糕的是,可能还要对以前的代码进行修改:加入后来生出儿子的实例.这在传统程序中是无法避免的.但如果你一开始就有意识使用了工厂模式,这些麻烦就没有了.工厂方法
你会建立一个专门生产Sample实例的工厂:public class Factory{ public static Sample creator(int which){ //getClass 产生Sample 一般可使用动态类装载装入类。
if (which==1)
return new SampleA();
else if (which==2)
return new SampleB(); }}
那么在你的程序中,如果要实例化Sample时.就使用Sample sampleA=Factory.creator(1);这样,在整个就不涉及到Sample的具体子类,达到封装效果,也就减少错误修改的机会,这个原理可以用很通俗的话来比喻:就是具体事情做得越多,越容易范错误.这每个做过具体工作的人都深有体会,相反,官做得越高,说出的话越抽象越笼统,范错误可能性就越少.好象我们从编程序中也能悟出人生道理?呵呵.
这句话创建了一个没有任何引用的实例. 那他不会被 gc 回收吗 ?
我要引用变量 mySimple 引用它呢 ? 我该怎么做呢?
这个模式产生的对象是CObj 初始值的 9.这种东西当学习用都不好.没有任何引用的实例会被gc 回收Sample mySimple =Factory.creator(1); mySimple 就是你已经引用了.你的慨念太不清楚了,建议先写简单的程序,在学模式
//CObj 和 StaticMethod 是两个类名;能这样赋值么?
//具体有什么好处;
//TIJ2中我没有看到过.
CObj StaticMethod = staticMethod.myMethod();我觉得最后的StaticMethod 仅仅被当作一个普通的变量来用了,随便你改成什么,甚至是Object 结果都一样。
不啊. StaticMethod 不是一个变量. 它是一个类名.可一定要看清楚
一个方法的返回值是一个COBJ类呀
然后将他赋给一个相同的类,有什么不行.
这个不就是类挎贝吗??
变量、
方法、
对象、学习ing
CObj StaticMethod = staticMethod.myMethod();
不啊. StaticMethod 不是一个变量. 它是一个类名.可一定要看清楚
---------------------------------------------------------------------------------------
如果你认为StaticMethod是一个类名,那是你概念错误(Java中没用这种语法),StaticMethod虽然和你的类名相同,但是它只是被用来做为普通变量来使用,不信你换一个其他的变量试试。
如果你认为StaticMethod是变量名,那是你变量名命名不规范。
sorry. 是我看错了。to :ioby(iii)
你说的对的,我做了测试。起先还不相信.呵呵。to : 27257674(烈火£焰冰)
我还没有清楚你说的是什么.不过.我在我以前写代码里面.有一点是错的.正如ioby所说的。
CObj StaticMethod = staticMethod.myMethod();//这里的StaticMethod已经被JVM认为是一个变量名。但如果你在下面使用 StaticMethod sm = new StaticMethod();也是行的.希望你也能清楚.
Hashtable Hashtable = new Hashtable();