调用者调用paint的时候,传递了一个Graphics对象,当然可以对其进行setColor等操作。。
别管什么形参实参的,特别是那种渣渣入门书说一大堆废话,一定要用专有名词把简单的东西搞复杂,你把函数调用原理搞清楚了,根本不需要去想什么形参实参的概念

解决方案 »

  1.   

    首先一个方法就是要干点什么事情,如果有形参,那就是要对这个形参干点什么,
    如paint方法形参为Graphics g ,那就是说我paint方法有对Graphics类型对象进行操作的能力,
    paint方法写出来只是表明它有这个能力,而要操作具体的对象时,你必须产生一个实际的对象g1,然后调用paint方法
    把g1做实参传递给形参,
    就是说方法写出来只是说它有某种功能,paint方法就是有画的功能,但是你给我各种各样的画笔(如:毛笔,铅笔,钢笔,这就是形参得到的实参不同了),我画出来的东西不一样。
      

  2.   

    在这个例子中,要在【调用方法的之前new出实例对象】来
    在方法当中,形参看起来没有接收实例对象,
    形参调用的是【调用方法的之前new出来的实例对象】的方法Graphics是类,里面有setColor()和drawString()的定义【亦或者继承自其父类】
    g是Graphics类的对象,所以g可以调用setColor()和drawString()方法
    其执行结果,对【调用方法的之前new出来的实例对象】起作用
      

  3.   

    paint方法没有被调用啊,没有看到graphics实例传递给graphics g 啊。在applet类里面,系统会自动调用paint方法,然后系统自动传递graphics实例给graphics g?
      

  4.   

    paint方法由Applet自己调用,Eclipse里右键选择Open Call Hierarchy可以看到这个方法被哪些方法调用了
      

  5.   

    这paint方法是自己定义的吧,我也可也写成paints(    ),没关系吧。是不是所有继承applet的类,该类里面的方法中类定义的形参就可以直接接收系统传递该类的实例,不需要自己调用。像类似这种情况,以后怎么看的出。还有比如说一个类继承了一个窗口类,继承的类所创建的对象就是窗口,像这种系统自己解决的,很多类似的搞不明白
      

  6.   

    java非常非常多东西细节完全封装,你要打破砂锅追寻到每一个根源,那要累死你的,像什么面板,窗口,画笔,相应的方法,全部都已经由前辈写好了,你只要会用,可以产生效果就行,当然由于不是自己写的东西,不搞明白觉得很不自在,觉得理解有障碍,呵呵。要完全搞明白,以现在的能力,完全没必要,也没能力,浪费时间精力,你还有非常多的东西要学呢,你的目的是开发项目,不是研究原理,这些东西你只要做到心中有数,下次我知道怎么用就可以了。时间可是不等人的哦。
      

  7.   

    paint()是重写的方法    JPanel继承JComponent      JComponent  中有一个paint()方法     你代码中的paint方法就是重写了这个爷爷JComponent 中的paint()方法                     repaint()方法每次被调用时都会调用paint()方法,
    也就是说paint()是画,repaint()也是画,它里面调用了paint(),