刚学java,抄了一个程序在 jdk1.4.2环境编译,结果出现4处错误,怎么回事?import java.applet.Applet;
import java.awt.*;public class AccessControl extends Applet
{
ClassBeAccessed c=new ClassBeAssessed();  //提示出错:cannot resolve symbol
subClass sc=new subClass();
PackageClass ic=new PackageClass(); public void paint(Graphics g)
{
g.drawString("Self Accessible: ",10,20);
g.drawString(c.toString(),20,35);
g.drawString("Sub Accessible: ",10,55);
g.drawString(sc.AccessDirectly(),20,70);
g.drawString("Package Accessible: ",10,90);
g.drawString(ic.AccessDirectly(),20,105);
g.drawString("Access using public method: ",10,125);
g.drawString(sc.AccessCls(),20,140);
g.drawString(ic.AccessCls(),20,155);
}
}public class ClassBeAccessed      //提示出错:class ClassBeAccessed is public, should be declared in a file named ClassBeAccessed
{
public String m_PublicProperty;
String m_FriendlyProperty;
private protected String m_PrivateProtectedProperty;   //提示出错:illegal combination of modifiers
private String m_PrivateProperty; ClassBeAccessed()
{
m_PublicProperty=new String("Public");
m_FriendlyProperty=new String("Friendly");
m_PrivateProtectedProperty=new String("Private Protected");
m_PrivateProperty=new String("Private");
} public String toString()
{
return(m_PublicProperty+";"+m_FriendlyProperty+";"+m_PrivateProtectedProperty+";"+m_PrivateProperty+";");
}
}class subClass extends ClassBeAccessed
{
ClassBeAccessed c=new ClassBeAccessed(); String AccessDirectly()
{
//提示出错:m_PrivateProperty has private access in ClassBeAccessed
return(c.m_PublicProperty+";"+c.m_FriendlyProperty+";"+c.m_PrivateProtectedProperty+";"+c.m_PrivateProperty+";");
} String AccessCls()
{
return(c.toString());
}
}class PackageClass
{
ClassBeAccessed c=new ClassBeAccessed(); String AccessDirectly()
{
return(c.m_PublicProperty+";"+c.m_FriendlyProperty);
} String AccessCls()
{
return(c.toString());
}
}

解决方案 »

  1.   

    Java中,一个文件中只能有一个public class, 若多于一个,则要另外放一个文件中
      

  2.   

    public class ClassBeAccessed      有两个PUBLIC的类,错误private protected String m_PrivateProtectedProperty;   有是受保护,又是私有,当然错
      

  3.   

    ClassBeAccessed c=new ClassBeAssessed();
    类名和构造方法名不一致,当然要出错了!
    像这样的书,我劝你今后少看!
      

  4.   

    一般书上的程序都是调试后再放上去的。
    是你没有搞清这些类之间的关系。两个public类放在一个文件里面肯定不能通过编译的