怎么给对象赋了值????(高手来)

来源:百度知道 编辑:UC知道 时间:2024/06/25 01:44:41
请判断一下我的理解对与错:

string s=new string("");

s即使一个变量,也是一个对象 ,但不知道为什么不直接写成string s="";

我不知道有没有string s=new string();这种写法

再学C#OOP的时候,感觉 例子:student是个类,里面有我封装好的属性,方法 然后我再其他地方student st=new student();就实例化它了

为什么定义变量也要NEW一下啊?难道它被实例化了?他有属性,方法?(是不是用string.isnullorempty()这个方法啊?)

有没有string s=new string();这种写法呢?

还是string s=new string(“”);才是唯一的,请具体解释一下了

讲讲为什么NEW一下 直接 STRING S="";不就行了吗?
声明一下:我是一个菜鸟,请大家尽量说明原因,例如2楼的String类是一个特殊的类,特殊在哪里?
而使他 String s = "",
和string s = new string("");是一样的效果。

谢谢大家了 帮我看看这个问题 我会高分悬赏的

http://zhidao.baidu.com/question/89051274.html

String类是一个特殊的类
String s = "asdfasf",
和String s = new string("asdfasf");
是不一样的
详情请看宋中山,严千均的java程序设计教程
String s = "asdfasf"是每次创建对象时去常量池中看有没有asdfasf,如果有就直接用句柄指向它,如果没有再创建
String s = new string("asdfasf"); 是不管常量池中有没有都会直接创建对象

String类是一个特殊的类,因为经常用到,为了使用方便,在声明String类对象的时候,可以采用直接声明并赋值的方式,也就是你提到的String s = "",
和string s = new string("");是一样的效果。

这是java和c语法不同的地方,java中的Sting的确是一个类,继承自Object类,有自己的属性方法构造器,并且是final类不能被继承.java中只有八种基本数据类型,不包括String.
但是要说明的是又由于String这个类太常用了,所以java语言的设计者设计了可以直接赋值的方式用来构造String对象并重载了加号运算符用于字符串的连连,这是一个特例而已

string s1 = new string("abc");
string s2 = new string("abc");
这两个不是同一个对象。s1!=s2 但是s1.equals(s2)是true
string s1 = "abc";
string s2 = "abc";
这连个是同一个对象,s1==s2 s1.equals(s2) 都是true.
如果有new就是开辟内存新建对象了,如果没有就是在String池里找了,如果找到了就用String池的这个对象,否则新建String对象并加入池,下次有这个对象的时候也是直接用这个,不