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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jtshawn 中级黑马   /  2014-9-11 13:24  /  1882 人查看  /  24 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问红色标注部分何解?   小弟先谢过了。另函数可以直接简写成   public+函数名?

public class Example{
        class Inner{
                void test(){
                        sample();
                }
        }
        public void sample(){
                System.out.println("Sample");
        }
        public  Example() {               
                (new Inner()).test();
        }
        public static void main(String[] args){
                new Example();
        }
}

24 个回复

倒序浏览
example()是空参数构造函数
里边创建了一个匿名内部类Inner()的对象,并调用它里面test()方法
回复 使用道具 举报
public  Example()是构造函数的特殊写法,构造函数不写返回值类型,修饰符也可以省略。
(new Inner()).test();是匿名内部类调用了它自己的test()方法。
建议看视频吧,毕老师的视频里都有讲。
回复 使用道具 举报
这是Example的构造函数
回复 使用道具 举报
本帖最后由 daoqin 于 2014-9-11 16:07 编辑

回复 使用道具 举报



                      System.out.println("Hello \r java");        打印结果是 java   
                        System.out.println("Hello \r\n java");        打印结果是 Hello
                                                                                                                        java   
                              \r, 转义字符 相当于按下回车,为何结果里面 Hello 被删除


                               \r\n     在DOS里面的输出效果相当于\n了,
    哪位大神能解此一问么,是不是我理解错了噢{:3_49:}


再弱弱的问下,怎么得黑马币呀:)   我还发不了贴:'(
回复 使用道具 举报
新语新空 发表于 2014-9-11 15:34
public  Example()是构造函数的特殊写法,构造函数不写返回值类型,修饰符也可以省略。
(new Inner()).test ...

恩恩,好的,谢谢了啊,视频一直在看!才看了一半多!
回复 使用道具 举报

这不是毕老师的专长么!
回复 使用道具 举报
Se7en_Liu 发表于 2014-9-11 16:38
System.out.println("Hello \r java");        打印结果是 java   
             ...

黑马币可以通过回复发帖,还有回答悬赏问题获得,也可以充值!
回复 使用道具 举报
那个问题,也能知道不:hug:
回复 使用道具 举报
Se7en_Liu 发表于 2014-9-11 16:38
System.out.println("Hello \r java");        打印结果是 java   
             ...

另关于转义字符的问题,在java里面    \r  和  \r\n    输出的结果是相同的,刚刚试过了,没有hello被删除的情况
回复 使用道具 举报
犹豫铅笔 发表于 2014-9-11 15:54
这是Example的构造函数

哦,懂了,谢谢啦
回复 使用道具 举报
逍遥呆 发表于 2014-9-11 15:28
example()是空参数构造函数
里边创建了一个匿名内部类Inner()的对象,并调用它里面test()方法 ...

脑子抽了一下,new Inner().test(); 这个明白。 多加了个括号一下子没懂.....
回复 使用道具 举报
Se7en_Liu 发表于 2014-9-12 12:33
那个问题,也能知道不

{:3_62:}  什么问题啊
回复 使用道具 举报
这是我刚演示了一下

[64{`W)FGWRIZP5D2$123OA.jpg (41.98 KB, 下载次数: 3)

[64{`W)FGWRIZP5D2$123OA.jpg

9COVP2OP2P)B`1NE3@P{1DC.jpg (25.97 KB, 下载次数: 5)

9COVP2OP2P)B`1NE3@P{1DC.jpg
回复 使用道具 举报
再看  \r\n的结果  就是正常的

所以就有疑问了  

341YUYWAWKB@B1UA1(ZT5JF.jpg (42.72 KB, 下载次数: 3)

341YUYWAWKB@B1UA1(ZT5JF.jpg

WQDSL1A31Q7P7S}H@C[ULCE.jpg (26.15 KB, 下载次数: 3)

WQDSL1A31Q7P7S}H@C[ULCE.jpg
回复 使用道具 举报
Se7en_Liu 发表于 2014-9-12 12:43
这是我刚演示了一下

稍等,破电脑,出问题了!
回复 使用道具 举报
本帖最后由 jtshawn 于 2014-9-12 13:45 编辑
Se7en_Liu 发表于 2014-9-12 12:46
再看  \r\n的结果  就是正常的

所以就有疑问了

弄电脑弄了半天。
关于你说的问题,这是我个人的理解
\r 代表回车,也就是将有 \r  的地方作为光标的起始点,然后打印是从光标之后开始打印,所以   \r   之前的东西不会被打印出来。
\n 代表换行,也就是将光标切换到下一行,然后从光标之后进行打印。

补充一点就是只在dos里区分,lz一开始是用Eclipse,所以用\r      \r\n打印的结果都是一样的。
回复 使用道具 举报
jtshawn 发表于 2014-9-12 13:44
弄电脑弄了半天。
关于你说的问题,这是我个人的理解
\r 代表回车,也就是将有 \r  的地方作为光标的起始 ...

谢谢,有点启发了  可以找找答案  :hug:
回复 使用道具 举报
亲,红色的是构造函数,构造函数可以用public修饰,表示在其它包可以实例这个类的对象。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马