黑马程序员技术交流社区
标题:
加引号的问题 ,什么时候加什么时候不加??
[打印本页]
作者:
石欣欣
时间:
2011-9-9 12:55
标题:
加引号的问题 ,什么时候加什么时候不加??
//构造函数
class Person
{
private String name;
private int age;
Person()
{
System.out.println("A: name="+name+"...age="+age);
}
Person(String n)
{
name=n;
System.out.println("B: name="+name+"...age="+age);
}
Person(String n,int a)
{
name=n;
age=a;
System.out.println("c: name="+name+"...age="+age);
}
}
class PersonDemo2
{
public static void main(String[] args)
{
Person p=new Person();
Person p1=new Person("gogo");
Person p2=new Person("haha",4);
}
}
//Person p1=new Person("gogo"); gogo为什么加双引号??,不加就不能编译,说找不到符号,变量:gogo
请介绍加引号和不加引号的情况????
作者:
匿名
时间:
2011-9-9 13:04
在java里面字符串常量是需要加双引号的。
比如:
"zhongguo" "123"(123在此不作为数字,而作为字符串)
而变量是不用的。
比如:
String gogo = "gogo"; new Perpon(gogo);这里的gogo是变量就不用加双引号了
作者:
匿名
时间:
2011-9-9 13:16
[color=DarkOrange]gogo为什么加双引号??[/color]
Person p1=new Person("gogo"); 你正在创建person对象,用的是第二个构造函数:Person(String n)
gogo 加上双引号才是String(字符串),不加双引号编译器会把它当作变量处理
[color=DarkOrange]请介绍加引号和不加引号的情况???? [/color]
字符加单引号,字符串加双引号。不加引号的情况似乎木有。
作者:
张晨
时间:
2011-9-9 13:26
加或者不加,就看需要的数据,二楼解释很清楚 ,我在给你举几个例子
public void demo1 (String a)
{
System.out.println( a );
}
// 使用这个方法,需要传送String 类型,
1.直接传String,
demo1 ("hello");
2.也可以自己定义变量在传递
String x= "hello";
demo1( x ); 注意x被定义成一个String类型的变量,就不需要引号了
[
本帖最后由 张晨 于 2011-09-09 13:32 编辑
]
作者:
匿名
时间:
2011-9-9 20:03
Person() 是Person类的初始构造函数,后面重载了两个同名但参数类型或个数不同的重载函数,其中Person(String n){......}这个Person(String n)这个重载函数定义的参数是字符串类型的,在java里面字符串常量是需要加双引号的,而如果先把字符串常量赋给一个String类型的变量,那么调用这个函数时要传入的变量实参就不需要加双引号了.
作者:
lily
时间:
2011-9-10 00:37
理解这个问题,首先要理解数据类型的问题.
java 中的数据类型有基本类型和引用类型,一般来说,用在方法里的参数都是基本类型的,基本类型有int,float,char,String等.
其中,String字符串类型赋值时需要加双引号(" "),Char 字符类型赋值时需要加单引号(' ').
楼主在定义构造函数 Person(String n) 时,把参数类型设置为了String字符串类型,如果调用
Person p1=new Person(gogo);
复制代码
语句,因为gogo没有加双引号,默认不是字符串类型,这时程序去调用构造函数,由于参数类型不同无法调用构造函数 Person(String n),又找不到匹配的构造函数,故报错。
[
本帖最后由 lily 于 2011-09-10 00:41 编辑
]
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2