免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1945 | 回复: 8
打印 上一主题 下一主题

第一次看java实际程序就懵了,请教一下。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-17 10:50 |只看该作者 |倒序浏览
public class NetManager
{
        static private NetManager nmServer;
        
        
   ......
        ......
}
请问在类的声明中就可以实例化一个本身的变量么?记得在c语言的结构体定义时是可以包含一个自己的指针,难道这里nmServer是一个类似于指针的东西?

论坛徽章:
0
2 [报告]
发表于 2003-06-17 10:52 |只看该作者

第一次看java实际程序就懵了,请教一下。

不好意思,网络较慢,心急按了两下,版主帮忙删一个。

论坛徽章:
0
3 [报告]
发表于 2003-06-17 11:12 |只看该作者

第一次看java实际程序就懵了,请教一下。

对,可以这么理解。

但 java 里没有指针

java 有两种数据类型:
原始数据类型: int, float, long...
对象: String, Hashtable

处理方式不同:
  处理 原始数据类型 是 传值的,不能传内存中的地址
处理 对象 是 传引用(你可以把它理解为 c 里的指针)

论坛徽章:
0
4 [报告]
发表于 2003-06-17 12:33 |只看该作者

第一次看java实际程序就懵了,请教一下。

原帖由 "cinc" 发表:
对,可以这么理解。

但 java 里没有指针

java 有两种数据类型:
原始数据类型: int, float, long...
对象: String, Hashtable

处理方式不同:
  处理 原始数据类型 是 传值的,不能传内存中的地址
..........
   

谢谢斑竹!

论坛徽章:
0
5 [报告]
发表于 2003-06-17 14:22 |只看该作者

第一次看java实际程序就懵了,请教一下。

Strin是例外

它是对象
但是
传值的

论坛徽章:
0
6 [报告]
发表于 2003-06-17 15:29 |只看该作者

第一次看java实际程序就懵了,请教一下。

好像不是的,看看下面的程序:


  1.     public void testString(){
  2.         String out = "aaa";
  3.         System.out.println ("out's hashcode is " + out.hashCode());
  4.         testStringIn(out);
  5.     }
  6.     public void testStringIn(String in){
  7.         System.out.println ("in's hashcode is " + in.hashCode());
  8.     }
复制代码


输出如下:
D:\Temp>;java Main
out's hashcode is 96321
in's hashcode is 96321

所以 String 传递的还是 对象的引用

:)

论坛徽章:
0
7 [报告]
发表于 2003-06-17 16:10 |只看该作者

第一次看java实际程序就懵了,请教一下。

原帖由 "cinc" 发表:
对,可以这么理解。

但 java 里没有指针

java 有两种数据类型:
原始数据类型: int, float, long...
对象: String, Hashtable

处理方式不同:
  处理 原始数据类型 是 传值的,不能传内存中的地址
..........
   

在我的记忆里,好像结构体里的指向自身的指针唯一的用途就是构成链表,除此之外就是无意义的,不知道正确否?

论坛徽章:
0
8 [报告]
发表于 2003-06-18 08:46 |只看该作者

第一次看java实际程序就懵了,请教一下。

不一定,singleton也是需要这种声明的。

论坛徽章:
0
9 [报告]
发表于 2003-06-18 10:29 |只看该作者

第一次看java实际程序就懵了,请教一下。

原帖由 "cinc" 发表:

输出如下:
D:\Temp>;java Main
out's hashcode is 96321
in's hashcode is 96321

所以 String 传递的还是 对象的引用

:)
   

hehe


you'd beeter try this!!


传值试验

public class test{
String s="aaa";
void changeString(String a){
a="bbb";
}
void changeObject(test a){
    a.s="bbb";
}
public static void main(String[] args){
test t=new test();
String c="aaa";
System.out.println(c);
t.changeString(c);
System.out.println(c);
System.out.println(t.s);
t.changeObject(t);
System.out.println(t.s);
}
}
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP