猿问

方法spjg未定义的类型?

package java2;

import java.util.*;

import java.io.*;

public class Shipinglianxi 

{

public static void main(String[]args)throws Exception//抛出异常

{

Spg1 shipin=new Spg1();

//对象shipin的创建,aa对象(构造方法Spg1)也一并创建

BufferedReader sr=new BufferedReader(new InputStreamReader(System.in));

while (true)

{

System.out.println("请按提示选择以下功能");

System.out.println("添加食品请按1");

System.out.println("查找食品信息请按2");

System.out.println("修改食品价格请按3");

System.out.println("删除食品请按4");

System.out.println("退出请按0");

String srt=sr.readLine();//readLine读取一行

if(srt.equals("1"))

{

System.out.println("请输入食品编号");

String bh=sr.readLine();//sr.next()

System.out.println("请输入食品名称");

String mc=sr.readLine();

System.out.println("请输入食品价格");

double jg=Double.parseDouble(sr.readLine());

//Float.parseFloat强行将sr.readLine()字符串格式转换为double形式

sp sp=new sp(bh,mc,jg);

shipin.addsp(sp);

//添加对象sp

}

else if(srt.equals("2"))//查询食品信息

{

System.out.println("请输入食品编号");

String bh=sr.readLine();

shipin.spxx(bh);    //调用spxx方法

}

else if(srt.equals("3"))

{

System.out.println("请输入食品编号");

String bh=sr.readLine();

System.out.println("请输入新的价格");

double jg=Double.parseDouble(sr.readLine());

shipin.spjg(bh,jg);//报错:The method spjg(String, double) is undefined for the type Spg1求大神指点哪里错误?

}

else if(srt.equals("4"))//删除食品

{

System.out.println("请输入食品编号");

String bh=sr.readLine();

shipin.delsp(bh);

}

else if(srt.equals("0"))

{

System.out.println("感谢您的使用,再见");

System.exit(0);

}

else

{

System.out.println("输入有误");

}

}

}

}

class sp

{

private String bianhao;

private String mingcheng;

private double jiage;

sp(String bianhao,String mingcheng,double jiage)//初始化成员变量

{

this.bianhao=bianhao;

this.mingcheng=mingcheng;

this.jiage=jiage;

}

public void setBianhao(String bianhao)

{ //封装变量使用set和get

this.bianhao=bianhao;

}

public void setMingcheng(String mingcheng)//封装变量使用set和get

{ //使用set规定取值范围有参数

this.mingcheng=mingcheng;

}

public void setJiage(double jiage) //封装变量使用set和get

{

this.jiage=jiage;

}

public String getBianhao() //使用get,调用时取出值

{

return bianhao;

}

public String getMingcheng()

{

return mingcheng;

}

public double getJiage()

{

return jiage;

}

}

class Spg1

{

private ArrayList aa=null;

Spg1()

{

aa=new ArrayList();//创建aa对象

//使用集合类来统计食品名称,编号等对象

//所以要使用构造方法开始时就初始化所有对象

}

public void addsp(sp sp)//增加食品

{

aa.add(sp);

System.out.println("食品添加成功");

}

public void spxx(String bh)//食品查询系统

{

int i;//要将i值定义在for外面

for( i=0;i<aa.size();i++)

{

sp sp=(sp)aa.get(i);

if(sp.getBianhao().equals(bh))

//sp.getBianhao()方法

{

System.out.println("该食品的信息为:");

System.out.println("食品编号:"+bh);

System.out.println("食品名称:"+sp.getMingcheng());

System.out.println("食品价格:"+sp.getJiage());

break;

}

}

if(i==aa.size())//上面for循环退出时i的值一定小于aa.size(),

//如果不是那么一定没有该食品

{

System.out.println("对不起,查无此食品");

}

}

private void spja(String bh,double jg)//修改食品价格

{

int i;

for(i=0;i<aa.size();i++)

{

sp sp=(sp)aa.get(i);//遍历对象

if(sp.getBianhao().equals(bh))

{

sp.setJiage(jg);//重新取值

System.out.println("价格修改成功");

break;

}

}

if(i==aa.size())

{

System.out.println("对不起,查无此食品");

}

}

public void delsp(String bh)//食品删除系统

{

int i;

if(aa.size()==0)

{

System.out.println("没有食品记录");

}

for(i=0;i<aa.size();i++)

{

sp sp=(sp)aa.get(i);//遍历对象

if(sp.getBianhao().equals(bh))

{

aa.remove(i);

System.out.println("移除成功");

break;

}

}

if(i==aa.size()&&aa.size()!=0)//保证对象不能为空aa.size()!=0

{

System.out.println("对不起,查无此食品");

}

}



}


黄森huang
浏览 1553回答 2
2回答

黄森huang

程序使用方法错误:Spg1类中的更改食品价格方法是spja但调用的是spjg

Panda小潘

没有声明spjg这个方法,是不是写错字了...
随时随地看视频慕课网APP

相关分类

Java
我要回答