class Book
{public char name[]; //定义属性
public float price;
Book(char i_name[],float i_price) //构造函数
{name=new char[i_name.length];
System.arraycopy(i_name,0,name,0,i_name.length);
price=i_price;
}
void showdata() //显示数据
{System.out.println("书的名字是:"+name);
System.out.println("书的价格是:"+price);
}
}
class Literature extends Book
{Literature(char i_name[],float i_price)
{super(i_name,i_price);
System.out.println("这是一本文学书");
}
}
class Cartoon extends Book
{Cartoon(char i_name[],float i_price)
{super(i_name,i_price);
System.out.println("这是一本漫画书");
}
}
public class qu
{
public static void main(String args[])
{
char str1[]={'J','a','n','e'};
float a=20.0f;
Literature a_Literature=new Literature(str1,a);
a_Literature.showdata();
char str2[]={'S','l','a','m','D','u','n','k'};
float b=18.5f;
Cartoon b_Cartoon=new Cartoon(str2,b);
b_Cartoon.showdata();
}
}
书名是英文呀
{public char name[]; //定义属性
public float price;
Book(char i_name[],float i_price) //构造函数
{name=new char[i_name.length];
System.arraycopy(i_name,0,name,0,i_name.length);
price=i_price;
}
void showdata() //显示数据
{System.out.println("书的名字是:"+name);
System.out.println("书的价格是:"+price);
}
}
class Literature extends Book
{Literature(char i_name[],float i_price)
{super(i_name,i_price);
System.out.println("这是一本文学书");
}
}
class Cartoon extends Book
{Cartoon(char i_name[],float i_price)
{super(i_name,i_price);
System.out.println("这是一本漫画书");
}
}
public class qu
{
public static void main(String args[])
{
char str1[]={'J','a','n','e'};
float a=20.0f;
Literature a_Literature=new Literature(str1,a);
a_Literature.showdata();
char str2[]={'S','l','a','m','D','u','n','k'};
float b=18.5f;
Cartoon b_Cartoon=new Cartoon(str2,b);
b_Cartoon.showdata();
}
}
书名是英文呀
即保留public,修改文件名为qu.java罗
上面的源代码在我机子可以运行,不过书名位置输出的是乱码,有人让我把源代码中的相应位置改为
void showdata() //显示数据
{
String name2 = new String(name);
System.out.println("书的名字是:"+name2);
System.out.println("书的价格是:"+price);
}
问题得到解决,不过不知道为什么,请高手指点一二
我配置是WIN XP 2600英文版