| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4542 人关注过本帖
标题:会java,有OOP思想的人进来看!请版主置顶
只看楼主 加入收藏
可可℃乐
Rank: 2
等 级:新手上路
威 望:3
帖 子:1054
专家分:0
注 册:2006-5-9
收藏
得分:0 

List def =new ArrayList();
这一句是不是说地 :定义了一个List 的一个对象 def ,可是却分配了一个ArrayList对象的内存空间.
def 是一个对象,new ArrayList()也是一个对象.
我真的快要死拉.学了好久了。这些问题还是搞不明白...


[url=http://www.]网页设计教程[/url]
2006-05-23 16:53
yangwudong
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:244
专家分:0
注 册:2005-8-18
收藏
得分:0 
你会C吗?
List def =new ArrayList();
def是在java中叫做引用,楼上的兄弟已经说过了,他就好比C中的指针,他里面存放的是一个地址,这个地址就是对象所在的地址(内存的地址)。
new ArrayList()是指的创建一个新的ArrayList的对象,java会在内存当中开辟一块内存去放他。
整个的这一句话的解释就是,创建一个默认的ArrayList的对象,然后把这个对象的地址赋给def(对象的引用),这样解释应该是挺形象的了,但是,也有不少地方的解释是创建一个ArrayList对象,然后将对象的引用--def和他关联起来!
这是第一题的第二个小题的答案!应该比较标准了吧!如果有问题,请大家提出来,谢谢!
另外,我决定今天下午公布答案了,因为可能周末的一段时间会有点事情,不能准时发答案了,所以,决定今天公布!

别做程序了,给你们一个赚钱的秘诀。做豆腐;if 做硬了 then 卖豆腐干;if 做稀了 then 卖豆腐花;if 太稀了 then 卖豆浆;if 豆腐卖不动了放几天 then 卖臭豆腐; else if 还卖不动放坏了 then 卖腐乳;
2006-05-23 17:06
yangwudong
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:244
专家分:0
注 册:2005-8-18
收藏
得分:0 
公布答案啦!
String abc = new String("123");
这个地方应该是创建了三个对象,大家不要急,应该多试验一下,就知道了!
首先,大家都只到,"123"是一个对象,我就不用说了(注:只是一个临时对象,很快就会被java垃圾回收的)。
其次,new String()这又是创建了一个对象!这个大家应该也都知道!
最后,也就是最有难度的一个地方!String和别的类是不一样的!他的那个“abc”,不是叫做对象的引用,他也是一个对象,大家一定都没有注意过吧!你可以是一下:
String a = "123";
String b = a;
b = b + "1";
System.out.println("a: " + a);
System.out.println("b: " + b);
然后,你可以同理去试验一下其他的类!

别做程序了,给你们一个赚钱的秘诀。做豆腐;if 做硬了 then 卖豆腐干;if 做稀了 then 卖豆腐花;if 太稀了 then 卖豆浆;if 豆腐卖不动了放几天 then 卖臭豆腐; else if 还卖不动放坏了 then 卖腐乳;
2006-05-23 17:21
yangwudong
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:244
专家分:0
注 册:2005-8-18
收藏
得分:0 
所有的类都是继承于Object这个类,因为,我们写的所有的类,最终都要生成对象这个实际的东西,所以,都是继承于Object这个类,很多人都知道答案了,但是,没有仔细的想过!

别做程序了,给你们一个赚钱的秘诀。做豆腐;if 做硬了 then 卖豆腐干;if 做稀了 then 卖豆腐花;if 太稀了 then 卖豆浆;if 豆腐卖不动了放几天 then 卖臭豆腐; else if 还卖不动放坏了 then 卖腐乳;
2006-05-23 17:23
yangwudong
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:244
专家分:0
注 册:2005-8-18
收藏
得分:0 
最后一个题了,null,很多人都说这是一个空引用,这样的说法不太对,引用?存的是地址吗?他是一个确切的对象,如同你们写的"123"一样,也是一个对象!

别做程序了,给你们一个赚钱的秘诀。做豆腐;if 做硬了 then 卖豆腐干;if 做稀了 then 卖豆腐花;if 太稀了 then 卖豆浆;if 豆腐卖不动了放几天 then 卖臭豆腐; else if 还卖不动放坏了 then 卖腐乳;
2006-05-23 17:24
yangwudong
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:244
专家分:0
注 册:2005-8-18
收藏
得分:0 
我的问题的回答完了,如果大家有什么不同的意见或着要给我说我那个地方说错了,大家可以一起讨论!我希望我发的这个帖子能够对大家有点帮助!

别做程序了,给你们一个赚钱的秘诀。做豆腐;if 做硬了 then 卖豆腐干;if 做稀了 then 卖豆腐花;if 太稀了 then 卖豆浆;if 豆腐卖不动了放几天 then 卖臭豆腐; else if 还卖不动放坏了 then 卖腐乳;
2006-05-23 17:26
yangwudong
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:244
专家分:0
注 册:2005-8-18
收藏
得分:0 
对了,版主是不是应该给我加点经验了啊?我发了这么多东西了!怎么还是一个小小的游民啊!等级太低了啊!

别做程序了,给你们一个赚钱的秘诀。做豆腐;if 做硬了 then 卖豆腐干;if 做稀了 then 卖豆腐花;if 太稀了 then 卖豆浆;if 豆腐卖不动了放几天 then 卖臭豆腐; else if 还卖不动放坏了 then 卖腐乳;
2006-05-23 17:27
可可℃乐
Rank: 2
等 级:新手上路
威 望:3
帖 子:1054
专家分:0
注 册:2006-5-9
收藏
得分:0 
我不会C,只学了JAVA,还很不好.
呵呵 大哥QQ留下行不,我想跟大哥好好学学...

[url=http://www.]网页设计教程[/url]
2006-05-23 17:29
疯子java
Rank: 4
等 级:贵宾
威 望:13
帖 子:328
专家分:0
注 册:2004-9-19
收藏
得分:0 

呵呵
又来要经验了呀
不过答对的人确实不多的哈

哈哈哈
我也是一样的


连答都不敢答哟


疯言疯语 疯部可及 ---世界法第1章第1节第1条规定 此人由于说话太过于疯!!!其余人等切不可与其交谈! 此人由于说话太过于疯!!!此人的话100%的不能相信
2006-05-23 18:11
iyuohz
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-2-22
收藏
得分:0 
以下是引用yangwudong在2006-5-23 17:21:00的发言:
公布答案啦!
String abc = new String("123");
这个地方应该是创建了三个对象,大家不要急,应该多试验一下,就知道了!
首先,大家都只到,"123"是一个对象,我就不用说了(注:只是一个临时对象,很快就会被java垃圾回收的)。
其次,new String()这又是创建了一个对象!这个大家应该也都知道!
最后,也就是最有难度的一个地方!String和别的类是不一样的!他的那个“abc”,不是叫做对象的引用,他也是一个对象,大家一定都没有注意过吧!你可以是一下:
String a = "123";
String b = a;
b = b + "1";
System.out.println("a: " + a);
System.out.println("b: " + b);
然后,你可以同理去试验一下其他的类!

这段代码 ...我觉得有问题
在java里,因为String 属于较常用的东西,所以 它有两种.
一个是 new String() 另一种是 直接 ="acc" 这样的(为了运行起来速度快)
这两种,的区别 主要在于 存放的位置
acc 这个存放到了 类似 常量池(有的好像称为 字符串 池里,而且 这个里面的 字符串是没有重复的)
所以 , String a="123", 这样 是把 "123" 放到了 字符串池里,
String b=a 是说,让b也去 指向 字符串池里的 "123" 这个字符串
之后 字符串 b=b+"1" ,因为 字符串池里 没有相同的字符串,所以 会在里面新生成一个 字符串"1231",
这个时候 b 指向了这个新生成的字符串"1231",

而String abc = new String("123"); 这个就不一样了,
它是把"123" 这个放到堆里,它和放到常量池里的"123",意义不一样

所以 String abc = new String("123"); 应该就是一个引用.一个对象

在String这个类里,由于equals用来比较字符串的内容,那么用==来比较 引用

String a="123";
String b="123";
if(a==b){...你要输出的内容}
如果输出,就表示 a和b指向了相同的对象,也就是 字符串池里有个"123"字符串

同样的 可以试试
String c=new String("123");
String d=new String("123");
再去通过==去比较一下它们的引用

[此贴子已经被作者于2006-5-23 21:30:12编辑过]


2006-05-23 21:26
快速回复:会java,有OOP思想的人进来看!请版主置顶
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018542 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved