当前位置: 技术问答>java相关
与String相关!!!请大家帮助!!!
来源: 互联网 发布时间:2015-11-19
本文导语: 所写程序如下: class Str{ Str(int a){ age=a; System.out.println("Class Str is constructed!"); } void Display(){ System.out.println(s); } private int age; String s="I am "+age+" years old."; } public class ...
所写程序如下:
class Str{
Str(int a){
age=a;
System.out.println("Class Str is constructed!");
}
void Display(){
System.out.println(s);
}
private int age;
String s="I am "+age+" years old.";
}
public class StringTest{
public static void main(String args[]){
int a=Integer.parseInt(args[0]);
Str s=new Str(a);
s.Display();
}
}
运行结果如下:
Class Str is constructed!
I am 0 years old.
不知道怎么回事,main()当中的a的值却没有能够传到class Str中
String s="I am "+age+" years old."的age。
本来我的目的是想让把a的值给传过去,可是串s中的age的值始终是0。
不知道这是什么原因造成的?恳请各位能帮我找一下答案,谢谢!
class Str{
Str(int a){
age=a;
System.out.println("Class Str is constructed!");
}
void Display(){
System.out.println(s);
}
private int age;
String s="I am "+age+" years old.";
}
public class StringTest{
public static void main(String args[]){
int a=Integer.parseInt(args[0]);
Str s=new Str(a);
s.Display();
}
}
运行结果如下:
Class Str is constructed!
I am 0 years old.
不知道怎么回事,main()当中的a的值却没有能够传到class Str中
String s="I am "+age+" years old."的age。
本来我的目的是想让把a的值给传过去,可是串s中的age的值始终是0。
不知道这是什么原因造成的?恳请各位能帮我找一下答案,谢谢!
|
String s="I am "+age+" years old.";
s的赋值是在调用构造函数之前运行的,age的值当时确实是0,故此你看到的。I am 0 years old.
你把s的赋值语句写入构造就符合你的要求了
s的赋值是在调用构造函数之前运行的,age的值当时确实是0,故此你看到的。I am 0 years old.
你把s的赋值语句写入构造就符合你的要求了
|
//在构造方法里那样给类变量赋值是错误的,看着也很别扭.
//如果目的只是练习参数传递,下面这样要简洁度了,也肯定不会发生意外
class Str{
Str(int a){
int age=a;
String s="I am "+age+" years old.";
System.out.println("Class Str is constructed!");
System.out.println(s);
}
}
public class StringTest{
public static void main(String args[]){
int a=Integer.parseInt(args[0]);
Str s=new Str(a);
}
}
//如果目的只是练习参数传递,下面这样要简洁度了,也肯定不会发生意外
class Str{
Str(int a){
int age=a;
String s="I am "+age+" years old.";
System.out.println("Class Str is constructed!");
System.out.println(s);
}
}
public class StringTest{
public static void main(String args[]){
int a=Integer.parseInt(args[0]);
Str s=new Str(a);
}
}
|
应该是没有取到值,int默认是 0啊。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。