A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 取名回忆的时光 中级黑马   /  2014-11-16 11:54  /  1188 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. <blockquote>class Demo
复制代码
错误提示为:
请问这是为何?我是按照毕老师的一模一样的书写的,可我为何我的包这个错,这个编译错误是什么原因、?


error.jpg (26.65 KB, 下载次数: 18)

error.jpg

8 个回复

倒序浏览
本帖最后由 取名回忆的时光 于 2014-11-16 11:59 编辑

class Demo
{
};
class DemoTest
{
        public static void main(String[] args)
        {
                Demo d = new Demo();
                Class c = new d.getClass();
                System.out.println(d.toString());
                System.out.println(Integer.toHexString(d.hashCode()));
                System.out.println(c.getName());
        }
}
这是原代码
回复 使用道具 举报
java中不能New的类有三种情况:一:你把接口错当成类,二:你new的是一个抽象类,三:你那个类没有public的构造函数;  你的这样情况就是Demo里面没有public的构造函数
回复 使用道具 举报
d已经是一个对象了,怎么能再new
回复 使用道具 举报 1 0
wangshuying 发表于 2014-11-16 14:54
d已经是一个对象了,怎么能再new

谢谢哥,原来是这么回事
回复 使用道具 举报
15621506590 发表于 2014-11-16 14:27
java中不能New的类有三种情况:一:你把接口错当成类,二:你new的是一个抽象类,三:你那个类没有public的 ...

哥,我找到原因了,不是因为没有Demo没有构造函数,而是我的Demo已经是一个对象了,在语句中我又new 了一次。所以不对
回复 使用道具 举报
颜仔 中级黑马 2014-11-18 19:18:16
7#
你这是拿类的字节码文件:有三种方法:
(1)对象.getClass()。你这d已经是一个对象不能再new,应改为:Class c=d.getClass();
(2)类名.class
(3)Class。forName("类名")。一般用第三种。
回复 使用道具 举报
15621506590 发表于 2014-11-16 14:27
java中不能New的类有三种情况:一:你把接口错当成类,二:你new的是一个抽象类,三:你那个类没有public的 ...

类不写public 可以吧??默认情况下不是就是Public?
回复 使用道具 举报
chensc 金牌黑马 2014-11-19 19:25:32
9#
学习学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马