黑马程序员技术交流社区

标题: 加引号的问题 ,什么时候加什么时候不加?? [打印本页]

作者: 石欣欣    时间: 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字符串类型,如果调用
  1. Person p1=new Person(gogo);  
复制代码
语句,因为gogo没有加双引号,默认不是字符串类型,这时程序去调用构造函数,由于参数类型不同无法调用构造函数  Person(String n),又找不到匹配的构造函数,故报错。
[ 本帖最后由 lily 于 2011-09-10  00:41 编辑 ]




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2