初学JAVA 一个简单的内部类的问题

来源:百度知道 编辑:UC知道 时间:2024/05/06 19:07:09
那位高人能帮我看看!我这个代码要怎么改
编译时说非静态方法不能在静态上下文中使用。
谢谢了!!
public class length
{
int num;
String sum;
void prin()
{
System.out.println(num+"厘米");
}
void Chage()
{
Length.chage(sum);
}
class Length
{

int chage(String sum)
{
if(sum=="英寸")
{
num=num*10;
}
return num;
}
}
public static void main(String[] args)
{
length a=new length();
a.num=10;
a.sum="厘米";
a.Chage();
a.prin();
length a1=new length();
a1.num=13;
a1.sum="英寸";
a1.Chage();
a1.prin();

看了半天,不知道你的程序是为了做什么?看看我的程序是不是你想要的:
public class Length {
int num;
String sum;

public Length(int num, String sum) {
this.num = num;
this.sum = sum;
}
private void change(){
if(this.sum=="英寸"){
num*=10;
}
}
public static void main(String[] args){
Length l1=new Length(10,"厘米");
l1.change();
System.out.println(l1.num+l1.sum);
Length l2=new Length(13,"英寸");
l2.change();
System.out.println(l2.num+l2.sum);
}
}

当然,如果你觉得你的没问题,那么只需要把Length.chage(sum); 改成
new Length().chage(sum);就OK了

length你的类名 改成其他的名字