可能又是STATIC闯的货,请帮忙看看,请请大家了。

ztpia 2006-01-03 09:16:28
下面有程序A和B两个程序,主要功能都是读取一个名叫test.bmp的位图,并输出其高与宽。
在程序A中,通过调用静态方法getImage()得到了BufferedImage对象,能正确输出结果。
在程序B中,将BufferedImage 对象放到main中来得到,编译时,提示不能找到src对象,
我个人认为因为main是静态方法,里面调用了非静态的方法,但是就在这分析不下去了,请大家帮帮忙。
import java.io.*;
import java.awt.image.*;
import javax.imageio.*;
程序A:
public class IMGTest{
public static BufferedImage getImage(String filename){
BufferedImage bi = null;
try{
File _file = new File(filename);
bi = ImageIO.read(_file);
}catch(IOException e){
System.out.println(e);
}
return bi;
}
public static void main(String [] args){
BufferedImage src = IMGTest.getImage("test.bmp");
int wideth = src.getWidth();//得到源图宽
int height = src.getHeight();
System.out.println(wideth);
System.out.println(height);
}
}
程序B:
import java.io.*;
import java.awt.image.*;
import javax.imageio.*;

public class IMGTest{
public static void main(String [] args){
try{
File _file = new File("test.bmp");//读入文件
BufferedImage src = ImageIO.read(new File("test.bmp"));//构造Image对象
}catch(IOException e){
System.out.println(e);
}
int wideth = src.getWidth();//得到源图宽
int height = src.getHeight();
System.out.println(wideth);
System.out.println(height);
}
}

...全文
157 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
denny008 2006-01-06
  • 打赏
  • 举报
回复
你没弄懂变量的作用欲啊这和static无关,好好卡书吧
GDSHJSN 2006-01-05
  • 打赏
  • 举报
回复
static 一直默默无闻 勤勤恳恳 任劳任怨的工作 一直是位好同志 怎么可以这么说他
kingofhawks 2006-01-04
  • 打赏
  • 举报
回复
楼上正解,在B中,src是在try块中定义的局部变量,所以后边就会编译出错找不到src.
j2me_home 2006-01-04
  • 打赏
  • 举报
回复
import java.io.*;
import java.awt.image.*;
import javax.imageio.*;
public class IMGTestA{
public static BufferedImage getImage(String filename){
BufferedImage bi = null;
try{
File _file = new File(filename);
bi = ImageIO.read(_file);
}catch(IOException e){
System.out.println(e);
}
return bi;
}
public static void main(String [] args){
BufferedImage src = IMGTestA.getImage("test.bmp");
int wideth = src.getWidth();// 得到源图宽
int height = src.getHeight();
System.out.println(wideth);
System.out.println(height);
}
}

import java.io.*;
import java.awt.image.*;
import javax.imageio.*;

public class IMGTestB {
public static void main(String[] args) {
BufferedImage src;
try {
src = ImageIO.read(new File("test.bmp"));// 构造Image对象
int wideth = src.getWidth();// 得到源图宽
int height = src.getHeight();
System.out.println(wideth);
System.out.println(height);
} catch (IOException e) {
System.out.println(e);
}
}
}
darkula 2006-01-04
  • 打赏
  • 举报
回复
这跟static 有关系么....

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧