黑马程序员技术交流社区

标题: 有人帮忙解释下么 [打印本页]

作者: 姚伟涛    时间: 2012-4-18 11:32
标题: 有人帮忙解释下么
  1. import java.awt.Canvas;  
  2. import java.awt.Graphics;  

  3. import javax.swing.ImageIcon;  

  4. public class gameBack extends Canvas{  
  5. public gameBack(){  
  6. System.out.println("canvas construction");  
  7. }  
  8. public void paint(Graphics g){  
  9. System.out.println("canvas paint");  
  10. }  
  11. public static void main(String[] args) {  
  12. gameBack gb = new gameBack();  
  13. gb.setVisible(true);  
  14. }  
  15. }  

复制代码
运行程序..觉得应该打印什么?  
实际上只打印了construction..没paint;  
有人知道原因吗?
作者: 韩新凯    时间: 2012-4-18 15:12
gameBack gb = new gameBack();默认调用了无参的构造函数,如果想要输出paint的话,可以这样在GameBack gb = new GameBack();后面添加
                Graphics g = null;
                gb.paint(g);就行了
作者: 光sail    时间: 2012-4-18 16:56
gameBack gb = new gameBack(); 在new出gb这个对象时,由于括号里没参数,所以调用无参的构造方法,打印输出construction..,new出对象后,没有调用paint方法,所以没打印输出canvas paint ,想要打印输出canvas paint,必须在new出根本对象后面添加面添加
                Graphics g = null;   \\声明变量
                gb.paint(g); \\调用paint方法
这样就打印输出canvas paint




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2