java中预定类String 为什么可以直接 String s=new String(“abc”);

java中预定类String 为什么可以直接 String s=new String(“abc”);
而自己定义的类,括号里就什么都不能加呢。如自己定义了个Cat类, 只能是
Cat s=new Cat()。

第1个回答  2015-02-17
自己定义的类也是可以加的,区别只是构造方法是无参数的,还是有参数的,比如你说的Cat类
如果有
public class Cat {
private String name;

public Cat(String catName) {
name = catName;

}

}
Cat类包含了带参数的构造函数,就可以用你说的那种方式new
Cat s = new Cat("咪咪");追问

那意思是说 String s=new String(“abc”);new String 的String是 String类里的一个构造方法?

追答

是的,String是java里的一个内置对象,就是预先写好方便使用的,就包含了你说的这个以“string”为参数的构造方法,也包含了其他的一些构造方法,你可以试一下,比如
String s = new String(char[] a); 通过char类型的数组初始化一个String等等。
同时,也有默认的无参数构造方法
String s = new String();构造一个空字符串

本回答被提问者采纳
第2个回答  2015-02-17
String类是基础类,里面有个构造方法 String(String str),所以实例化对象可以String s = new String(“abc”),你自己定义类加个构造方法 Cat(String str)后 也就可以这样了追问

那意思是说 String s=new String(“abc”);new String 的String是 String类里的一个构造方法?

相似回答