請問這兩种調用方式有啥區別

2003rainbow 2004-01-29 04:05:36
public class test001
{
public int x,y;
test001()
{

}
}
public class test002
{
test002()
{
test001 xx=new test001();
xx.x=1;
}
}
public class test003
{
test003()
{
test001 xx;
xx.x=1;
}
}


test002和test003都調用test001的x變量

但是寫法不一樣,可否告知有何區別
...全文
38 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
dahuzizyd 2004-01-29
  • 打赏
  • 举报
回复
test001的构造函数不为public ,所以在test002里会无法调用test001的构造函数。
test003对test001的实例的x赋值时,编译会报错: 使用了未赋值的局部变量“xx”
sxxny 2004-01-29
  • 打赏
  • 举报
回复
c#不是c++. test001是一个引用类型. 只能通过引用来访问.
所以你写test001 xx;在c#只相当于c++中的test001 *xx;
mytiu 2004-01-29
  • 打赏
  • 举报
回复
初始化变量
2003rainbow 2004-01-29
  • 打赏
  • 举报
回复
上面那种寫法

test001 xx=new test001();
test001 xx;

我在c++Builder
裏面編譯好像就通過了
.net不行 爲啥呢,其實這都是基本的c++語法
laodeng72586 2004-01-29
  • 打赏
  • 举报
回复
都有问题:
类的构造函数默认的访问性质不是public的,这样不能实例化对象的。
haowork1977 2004-01-29
  • 打赏
  • 举报
回复
静态类:
使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员
public static class test001
这时你可以用test001.x = 1;

否则:
你必须使用instance, test001 xx = new test001();xx.x=1;
01101230 2004-01-29
  • 打赏
  • 举报
回复
第三个出错,就这么简单,因为它没有被实例化。
实例化从内存角度说就是为创建一个类的实例分配所需要的内存,没有被分配的话该实例为NULL,也就是说它还没被创建,它不指向任何一个地址,当然无法访问成员。静态成员被放到特别的内存区域,可以通过类名存取。

从OO角度说就是一个类的一个个别实例,实例化之后该实例具有自己的状态。实例化时调用构造方法就用来初始化该实例的状态。没有实例化的话该实例不具备自己个别的特征(状态)
静态成员的话意思是所有成员共享,它不牵涉到个别特征,所以不需要实例化再访问。
2003rainbow 2004-01-29
  • 打赏
  • 举报
回复
其實我想問的主要是

test001 xx=new test001();
test001 xx;

這兩种調用方式,一種是事例化,一種沒有
我有點糊塗,大家可否講的仔細一點,專業一點啊
八爪鱼-杭州 2004-01-29
  • 打赏
  • 举报
回复
to whl9234(葫芦) :何为静态类,你是如何判断test001是静态类的
bobit 2004-01-29
  • 打赏
  • 举报
回复
test003没法调用 xx.x 因为还没有创建test001 的实例

就好象你给一个小孩取了名字,却在他生下来之前就叫他的名字,当然他不会理你(好象刚生下来的小孩你叫他名字也不会理哦,比方、比方、比方……)
whl9234 2004-01-29
  • 打赏
  • 举报
回复
test001是一个静态类,根本不用声明和事例化,可以直接调用,但不同页面之间调用时需要填加引用(using),你可以直接写test001.xx=...(因为xx是公有的),不过我认为上面的写法没有问题(我没实验).
八爪鱼-杭州 2004-01-29
  • 打赏
  • 举报
回复
test003有问题,要想使用x变量,要么实例化test001,要么把x改成static
chenlm 2004-01-29
  • 打赏
  • 举报
回复
test002也有问题
test001()
{

}
改加上public
jimh 2004-01-29
  • 打赏
  • 举报
回复
test003应该是有问题的,xx是空值(null)

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧