大神求解

Sweeterswift 2014-03-06 06:18:26
/**
*文件名为Date2_ex.class
*/
package java.Data;

class Date2{
/**
* 私有的成员变量
*/
private int year;
private int month;
private int day;
public Date2(int y,int m,int d){
set(y,m,d);
}
public Date2(){
this(2006,1,1);
}

/**
* 拷贝构造方法,由已存在对象创建对象,重载
*/
public Date2(Date2 aday){
this(aday.day,aday.month,aday.year);
}
public void set(int y, int m, int d) {
// TODO Auto-generated method stub
this.year=y;
this.month=((m>=1)&(m<=12))?m:1;
this.day=((d>=1)&(d<=31))?d:1;
}
public void set(Date2 aday){
set(aday.year,aday.month,aday.day);
}
public int getYear(){
return year;
}
public int getMonth(){
return month;
}
public int getDay(){
return day;
}
public boolean equals(Date2 aday2){
return this==aday2 || this.year==aday2.year && this.month==aday2.month && this.day==aday2.day;
}
public void tomorrow(){
this.day++;
}
public Date2 daysAftrer(int n){
return new Date2(this.year,this.month,this.day); //返回新创建的对象,没有改变当前对象的值
}
public boolean isLeapYear(){
return (year%400==0 || (year%100)!=0) && (year%4==0);
}
public String toString(){
return this.year+"-"+this.month+"-"+this.day;
}
public void print(){
System.out.println("data is"+this.toString());
}
}

public class Date2_ex {

public static void main(String[] args) {
// TODO Auto-generated method stub
Date2 aday1=new Date2();
Date2 aday2=new Date2(2006,2,28);
Date2 aday3=new Date2(aday2);
aday3.set(2007,12,31);
aday1.print();
aday2.print();
aday3.print();

Date2 aday4=aday1.daysAftrer(1);
aday4.print();
aday1.tomorrow();
aday1.print();
System.out.println("aday4.equals(aday1)"+aday4.equals(aday1)); //比较两个对象的值

}

}
程序有异常:
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.Data
at java.lang.ClassLoader.preDefineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

...全文
751 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sweeterswift 2014-03-07
  • 打赏
  • 举报
回复
哦,谢谢,我知道原因了,是我自己定义包名的时候错了
末日哥 2014-03-06
  • 打赏
  • 举报
回复
看classload源码中有这么一段,懂了吧
        if ((name != null) && name.startsWith("java.")) {
            throw new SecurityException
                ("Prohibited package name: " +
                 name.substring(0, name.lastIndexOf('.')));
        }
灰太狼A代 2014-03-06
  • 打赏
  • 举报
回复
没看你代码 直接看的异常 他不是说包名有错误吗??

62,614

社区成员

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

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