黑马程序员技术交流社区

标题: 求教 [打印本页]

作者: jtshawn    时间: 2014-9-11 13:24
标题: 求教
请问红色标注部分何解?   小弟先谢过了。另函数可以直接简写成   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();
        }
}

作者: 逍遥呆    时间: 2014-9-11 15:28
example()是空参数构造函数
里边创建了一个匿名内部类Inner()的对象,并调用它里面test()方法
作者: 新语新空    时间: 2014-9-11 15:34
public  Example()是构造函数的特殊写法,构造函数不写返回值类型,修饰符也可以省略。
(new Inner()).test();是匿名内部类调用了它自己的test()方法。
建议看视频吧,毕老师的视频里都有讲。
作者: 犹豫铅笔    时间: 2014-9-11 15:54
这是Example的构造函数
作者: daoqin    时间: 2014-9-11 16:04
本帖最后由 daoqin 于 2014-9-11 16:07 编辑


作者: Se7en_Liu    时间: 2014-9-11 16:38



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


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


再弱弱的问下,怎么得黑马币呀:)   我还发不了贴:'(

作者: jtshawn    时间: 2014-9-12 12:20
新语新空 发表于 2014-9-11 15:34
public  Example()是构造函数的特殊写法,构造函数不写返回值类型,修饰符也可以省略。
(new Inner()).test ...

恩恩,好的,谢谢了啊,视频一直在看!才看了一半多!
作者: jtshawn    时间: 2014-9-12 12:24
daoqin 发表于 2014-9-11 16:04

这不是毕老师的专长么!
作者: jtshawn    时间: 2014-9-12 12:30
Se7en_Liu 发表于 2014-9-11 16:38
System.out.println("Hello \r java");        打印结果是 java   
             ...

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

另关于转义字符的问题,在java里面    \r  和  \r\n    输出的结果是相同的,刚刚试过了,没有hello被删除的情况
作者: jtshawn    时间: 2014-9-12 12:38
犹豫铅笔 发表于 2014-9-11 15:54
这是Example的构造函数

哦,懂了,谢谢啦
作者: jtshawn    时间: 2014-9-12 12:40
逍遥呆 发表于 2014-9-11 15:28
example()是空参数构造函数
里边创建了一个匿名内部类Inner()的对象,并调用它里面test()方法 ...

脑子抽了一下,new Inner().test(); 这个明白。 多加了个括号一下子没懂.....
作者: jtshawn    时间: 2014-9-12 12:42
Se7en_Liu 发表于 2014-9-12 12:33
那个问题,也能知道不

{:3_62:}  什么问题啊
作者: Se7en_Liu    时间: 2014-9-12 12:43
这是我刚演示了一下

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

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

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

9COVP2OP2P)B`1NE3@P{1DC.jpg

作者: Se7en_Liu    时间: 2014-9-12 12:46
再看  \r\n的结果  就是正常的

所以就有疑问了  

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

341YUYWAWKB@B1UA1(ZT5JF.jpg

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

WQDSL1A31Q7P7S}H@C[ULCE.jpg

作者: jtshawn    时间: 2014-9-12 12:50
Se7en_Liu 发表于 2014-9-12 12:43
这是我刚演示了一下

稍等,破电脑,出问题了!
作者: jtshawn    时间: 2014-9-12 13:44
本帖最后由 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打印的结果都是一样的。
作者: Se7en_Liu    时间: 2014-9-12 14:34
jtshawn 发表于 2014-9-12 13:44
弄电脑弄了半天。
关于你说的问题,这是我个人的理解
\r 代表回车,也就是将有 \r  的地方作为光标的起始 ...

谢谢,有点启发了  可以找找答案  :hug:
作者: 家进    时间: 2014-9-12 15:06
亲,红色的是构造函数,构造函数可以用public修饰,表示在其它包可以实例这个类的对象。
作者: Allencheng    时间: 2014-9-12 15:40
红色的部分相当于封装一个新的对象。new Inner()是新建一个对象并调用该对象内的test方法。public 后可以跟函数名+方法 同时也可以构建加abstract构建抽象函数。
作者: jtshawn    时间: 2014-9-12 16:09
Se7en_Liu 发表于 2014-9-12 14:34
谢谢,有点启发了  可以找找答案

没事没事,多交流,共同进步
作者: jtshawn    时间: 2014-9-12 16:10
家进 发表于 2014-9-12 15:06
亲,红色的是构造函数,构造函数可以用public修饰,表示在其它包可以实例这个类的对象。 ...

恩,好的,懂了,谢谢啦
作者: jtshawn    时间: 2014-9-12 16:12
Allencheng 发表于 2014-9-12 15:40
红色的部分相当于封装一个新的对象。new Inner()是新建一个对象并调用该对象内的test方法。public 后可以跟 ...

懂了,谢谢了
作者: 范鹏霄    时间: 2014-9-12 16:15
是构造方法,加油!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2