关于对象的迷惑!

guaigm 2004-10-11 09:32:33

//我发现这样使用不行啊!
public class classA
{
public classB newClassB = new classB();
//实例例化某个对象;
public void methodOne
{
newClassB.methodName();//随便调用着各类里面的方法
}
public void methodTwo
{
newClassB.methodName();//随便调用着各类里面的方法
}


}







//但这样可以阿
public class classA
{

public void methodOne
{
public classB newClassB = new classB();
//实例例化某个对象;
newClassB.methodName();//随便调用着各类里面的方法
}
public void methodTwo
{
public classB newClassB = new classB();
//实例例化某个对象;
newClassB.methodName();//随便调用着各类里面的方法
}

//我发现这样使用不行啊!
}
...全文
81 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ipv 2004-10-11
不可能不成
代码不会错的
错的永远是人
估计大小写搞错了?
回复
nwpulipeng 2004-10-11
帮顶混分
回复
zhaoqiubo 2004-10-11
public class A {
public A() {
}
public void mothodA()
{
};
public void mothodB()
{
};
}
---------------
public class B {

public A a = new A();
public void mothodA(){
a.mothodA();
}
public void mothodB(){
a.mothodB();
}
}

这是我写的,没有问题呀..
回复
wumingwangzi 2004-10-11
把你源码贴一下吧
回复
xjtufans 2004-10-11
public class ClassA
{

public ClassB classb = new ClassB();

public ClassA()
{
System.out.println("A Construct");
}

public void methodA()
{
System.out.println("A methodA");
classb.methodA();
}

public void methodB()
{
System.out.println("A methodB");
classb.methodB();
}


public static void main(String[] args)
{
ClassA a = new ClassA();
a.methodA();
a.methodB();
}
}

class ClassB
{
public ClassB()
{
System.out.println("B Construct");
}


public void methodA()
{
System.out.println("B methodA");
}

public void methodB()
{
System.out.println("B methodB");
}
}
-----------------------------------
上面是我写的。没有见有任何问题。
问题的原因应该是你的classB的问题。
回复
sunny518 2004-10-11
应该是classB定义错误
回复
xjtufans 2004-10-11
呵呵。楼主的问题不可能发生啊。
可能是classB写的有问题。
回复
zhaoqiubo 2004-10-11
不应该有错误,第一种方法和第二种方法有区别,但第一种是合理的.你把错误信息和classB源码贴出来看看..........
回复
guaigm 2004-10-11
不好意思我写错了!我的本意是


//我发现这样使用不行啊!
public class classA
{
public classB newClassB = new classB();
//实例例化某个对象;
public void methodOne()
{
newClassB.methodName();//随便调用着各类里面的方法
}
public void methodTwo()
{
newClassB.methodName();//随便调用着各类里面的方法
}


}







//但这样可以阿
public class classA
{

public void methodOne()
{
classB newClassB = new classB();
//实例例化某个对象;
newClassB.methodName();//随便调用着各类里面的方法
}
public void methodTwo()
{
classB newClassB = new classB();
//实例例化某个对象;
newClassB.methodName();//随便调用着各类里面的方法
}
}





为什么我编译第一种写法的时候总体是我类有问题呢!?

而第二种就可以啊为什么啊
回复
funcreal 2004-10-11
methodOne的后面不加括号可以吗?
public void methodOne()//这里不加括号马?
{
newClassB.methodName();//随便调用着各类里面的方法
}
回复
UTF888 2004-10-11
你在类里面实例化一个对象,可以是public 也可以是private 等等。
但你一旦在方法里实例化一个对象,如:
public void methodOne {
public classB newClassB = new classB();
newClassB.methodName();
}

那么只能用final ,如例你用public 是不正确的.把public去掉就可以了。
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告