Javaの勉強しています。
下のプログラムのクラスの修飾子publicを取ってコンパイルすると
appletviewerに文字が表示されません。

どうしてpublicが必要なんですか?

publicはほかのクラスにアクセスを許可するってことなので
Graphicsクラスがこのクラスにアクセス出来ないってことですか???
なにか重大な勘違いしてますか?

import java.applet.Applet;
import java.awt.Graphics;
/*
<applet code="FirstApplet" width=200 height=200>
</applet>
*/
public class FirstApplet extends Applet {
public void paint(Graphics g) {
g.drawString("This is my first applet!", 20, 100);
}
}