黑马程序员技术交流社区

标题: 小弟不才,迄今见过的最全基础总结 [打印本页]

作者: NewDemo    时间: 2014-4-23 17:14
标题: 小弟不才,迄今见过的最全基础总结
本帖最后由 NewDemo 于 2014-4-23 21:28 编辑

从这份总结的知识点顺序来看,必须是毕姥爷视频的总结,至于详细程度,正如我标题所说,先来预览下内容
多 态★★★★★(面向对象特征之一):函数本身就具备多态性,某一种事物有不同的具体的体现。

体现:父类引用或者接口的引用指向了自己的子类对象。//Animal a = newCat();
多态的好处:提高了程序的扩展性。
多态的弊端:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。(前期不能使用后期产生的功能,即访问的局限性)
多态的前提:
    1:必须要有关系,比如继承、或者实现。
    2:通常会有覆盖操作。

多态的出现思想上也做着变化:以前是创建对象并指挥对象做事情。有了多态以后,我们可以找到对象的共性类型,直接操作共性类型做事情即可,这样可以指挥一批对象做事情,即通过操作父类或接口实现。
--------------------------------------------------------------
class 毕姥爷{
    void 讲课(){
        System.out.println("企业管理");
    }
    void 钓鱼(){
        System.out.println("钓鱼");
    }
}
class 毕老师 extends 毕姥爷{
    void 讲课(){
        System.out.println("JAVA");
    }
    void 看电影(){
        System.out.println("看电影");
    }
}
class {
    public static voidmain(String[] args) {
        毕姥爷 x = new 毕老师(); //毕老师对象被提升为了毕姥爷类型。
//      x.讲课();
//      x.看电影();  //错误.
        毕老师 y = (毕老师)x; //将毕姥爷类型强制转换成毕老师类型。
        y.看电影();//在多态中,自始自终都是子类对象在做着类型的变化。
    }
}
---------------------------------------------------------------
如果想用子类对象的特有方法,如何判断对象是哪个具体的子类类型呢?
可以可以通过一个关键字instanceof;//判断对象是否实现了指定的接口或继承了指定的类

格式:<对象 instanceof 类型> ,判断一个对象是否所属于指定的类型。
Student instanceof Person =true;//student继承了person类

多态在子父类中的成员上的体现的特点:
1,成员变量:在多态中,子父类成员变量同名。
    在编译时期:参考的是引用型变量所属的类中是否有调用的成员。(编译时不产生对象,只检查语法错误
    运行时期:也是参考引用型变量所属的类中是否有调用的成员。
    简单一句话:无论编译和运行,成员变量参考的都是引用变量所属的类中的成员变量。
    再说的更容易记忆一些:成员变量 --- 编译运行都看 = 左边。
2,成员函数。
    编译时期:参考引用型变量所属的类中是否有调用的方法。
    运行事情:参考的是对象所属的类中是否有调用的方法。
    为什么是这样的呢?因为在子父类中,对于一模一样的成员函数,有一个特性:覆盖。
    简单一句:成员函数,编译看引用型变量所属的类,运行看对象所属的类。
    更简单:成员函数 --- 编译看 = 左边,运行看= 右边。
3,静态函数。
    编译时期:参考的是引用型变量所属的类中是否有调用的成员。
    运行时期:也是参考引用型变量所属的类中是否有调用的成员。
    为什么是这样的呢?因为静态方法,其实不所属于对象,而是所属于该方法所在的类。
    调用静态的方法引用是哪个类的引用调用的就是哪个类中的静态方法。
    简单说:静态函数 --- 编译运行都看 = 左边。


内部类:如果A类需要直接访问B类中的成员,而B类又需要建立A类的对象。这时,为了方便设计和访问,直接将A类定义在B类中。就可以了。A类就称为内部类。内部类可以直接访问外部类中的成员。而外部类想要访问内部类,必须要建立内部类的对象。
-----------------------------------------------------
class Outer{
    int num = 4;   
    class  Inner {
        void show(){
            System.out.println("innershow run "+num);         
        }
    }
    public void method(){
        Inner in = newInner();//创建内部类的对象。
        in.show();//调用内部类的方法。
    }
}
-------------------------------------------------------
当内部类定义在外部类中的成员位置上,可以使用一些成员修饰符修饰 private、static。
1:默认修饰符。

直接访问内部类格式:外部类名.内部类名 变量名 = 外部类对象.内部类对象;

Outer.Inner in = new Outer.new Inner();//这种形式很少用。
  但是这种应用不多见,因为内部类之所以定义在内部就是为了封装。想要获取内部类对象通常都通过外部类的方法来获取。这样可以对内部类对象进行控制。
2:私有修饰符。
  通常内部类被封装,都会被私有化,因为封装性不让其他程序直接访问。
3:静态修饰符。
  如果内部类被静态修饰,相当于外部类,会出现访问局限性,只能访问外部类中的静态成员。
  注意;如果内部类中定义了静态成员,那么该内部类必须是静态的。

内部类编译后的文件名为:“外部类名$内部类名.java”;

为什么内部类可以直接访问外部类中的成员呢?
那是因为内部中都持有一个外部类的引用。这个是引用是 外部类名.this
内部类可以定义在外部类中的成员位置上,也可以定义在外部类中的局部位置上。
当内部类被定义在局部位置上,只能访问局部中被final修饰的局部变量。

匿名内部类:没有名字的内部类。就是内部类的简化形式。一般只用一次就可以用这种形式。匿名内部类其实就是一个匿名子类对象想要定义匿名内部类:需要前提,内部类必须继承一个类或者实现接口。

匿名内部类的格式:new 父类名&接口名(){ 定义子类成员或者覆盖父类方法 }.方法。

匿名内部类的使用场景:
当函数的参数是接口类型引用时,如果接口中的方法不超过3个。可以通过匿名内部类来完成参数的传递。
其实就是在创建匿名内部类时,该类中的封装的方法不要过多,最好两个或者两个以内。
--------------------------------------------------------
//面试
        //1
        new Object(){
            void show(){
                System.out.println("showrun");               
            }
        }.show();
        //2
        Object obj = newObject(){
            void show(){
                System.out.println("showrun");
            }
        };
        obj.show();
        
        1和2的写法正确吗?有区别吗?说出原因。
        写法是正确,1和2都是在通过匿名内部类建立一个Object类的子类对象。
        区别:
        第一个可是编译通过,并运行。
        第二个编译失败,因为匿名内部类是一个子类对象,当用Object的obj引用指向时,就被提升为了
        Object类型,而编译时检查Object类中是否有show方法,所以编译失败。
-------------------------------------------------------
class InnerClassDemo6 {
    +(static)class Inner{
        void show(){}
    }
    public void method(){
        this.new Inner().show();//可以
    }
    public static voidmain(String[] args) {//static不允许this
        This.new Inner().show();//错误,Inner类需要定义成static
    }
}
------------------------------------------------------




{:2_36:}你们的支持是我分享的动力

国际惯例,做个看帖必回的好少年
{:2_40:}[hide=d100]链接: http://pan.baidu.com/s/1xm3y2 密码: usyb[/hide]




1.jpg (120.06 KB, 下载次数: 117)

1.jpg

2.jpg (125.93 KB, 下载次数: 119)

2.jpg

3.jpg (160.85 KB, 下载次数: 122)

3.jpg

4.jpg (144.42 KB, 下载次数: 125)

4.jpg

5.jpg (182.25 KB, 下载次数: 115)

5.jpg

6.jpg (224.47 KB, 下载次数: 112)

6.jpg

作者: ☆枫の云    时间: 2014-4-23 17:27
介个必须顶,顶顶顶!
作者: 孟凡超    时间: 2014-4-23 17:31
什么时候能学明白啊 啊啊啊啊
作者: 那谁,站住。就    时间: 2014-4-23 18:08
支持了,辛苦  呵呵
作者: 那谁,站住。就    时间: 2014-4-23 18:10
感谢分享了 啊
作者: Sniper_qiu    时间: 2014-4-23 20:00
下载先看看再说。
作者: @文瑞    时间: 2014-4-23 20:06
这个必须顶
作者: 织语不如书    时间: 2014-4-23 20:13
看一下哦~~~~~~~~~
作者: skill20    时间: 2014-4-23 22:37
必须顶!

作者: hhmm665544    时间: 2014-4-24 00:36
好东西,下来复习

作者: 曹冬明    时间: 2014-4-24 08:19
看看看看
作者: 天山    时间: 2014-4-24 10:41
不错啊,又 深刻学习了一下 内部类和外部类的 关系
作者: 2528870651    时间: 2014-4-24 21:03
好吧 顶你!!!!!!!!
作者: askyle    时间: 2014-4-24 22:14

感谢分享了 啊
作者: 歌诗王道    时间: 2014-4-24 22:35
来看看:):)
作者: 646245771    时间: 2014-4-24 22:53
看看有多详细
作者: 小周务商    时间: 2014-4-25 13:16
必须顶啊。分享给更多的人。
作者: 无人海    时间: 2014-4-25 15:05
支持一下
作者: 飘哥1988    时间: 2014-4-25 16:10
来看一看啊
作者: Sunday    时间: 2014-4-26 00:28
好东西,下来复习
作者: 闲人    时间: 2014-4-26 02:38
很缺这个东西
作者: 付江涛    时间: 2014-4-26 18:41
国际惯例,做个看帖必回的好少年
作者: mentally    时间: 2014-4-26 20:54
感谢分享 来看看
作者: ifuzhen    时间: 2014-4-26 21:07
look this
作者: 244611    时间: 2014-4-26 22:28
正在学习中
作者: noway    时间: 2014-4-26 22:49
小弟不才,现在才来‘
作者: iloveyou    时间: 2014-4-27 01:35
你的分享是我们的福气
作者: 1636971198    时间: 2014-4-27 14:08
不错写的很详细。和视频讲的相同
作者: 枫叶零渡    时间: 2014-4-27 15:11

感谢分享了 啊
作者: 余琪琪    时间: 2014-4-27 17:19
略吊!顶一个!!!
作者: 362688114    时间: 2014-5-2 17:52
好吧,做个好少年
作者: 王春涛    时间: 2014-5-2 18:18
学习了
作者: 来男.    时间: 2014-5-2 23:33
谢谢分享!
作者: 孙旌棋    时间: 2014-5-3 14:28
哇哦, 好东西~
作者: 遮天    时间: 2014-5-3 15:46
好吧,回帖好少年
作者: renshu16    时间: 2014-5-3 20:40
好东西,收藏先
作者: の放下执著    时间: 2014-5-3 23:57
看看 学习学习
作者: dkwoxihuan    时间: 2014-5-4 11:08
看看啊看看
作者: 曾欢欢    时间: 2014-5-5 11:39
看贴回复,我是好少年
作者: 神马    时间: 2014-5-5 15:35
恩,还不错。支持一下
作者: eternallove    时间: 2014-5-5 16:29
极力支持呀。。。
作者: uudon    时间: 2014-5-5 22:51
非常好的开头啊,看看~~~~~~~
作者: qtyy    时间: 2014-5-5 23:29
hahahhhhhha
作者: 821728010    时间: 2014-5-6 00:23
顶一个!!!
作者: 沙漠侧行者    时间: 2014-5-6 00:30
专程来看隐藏内容的
作者: 李想    时间: 2014-5-6 00:49
下载看看咯,谢啦
作者: 菠萝包丶    时间: 2014-5-6 08:50
看到好东西,先回复,哈哈哈
作者: 观决    时间: 2014-5-6 09:18
看看 谢谢分享
作者: yemenglin    时间: 2014-5-6 09:21
顶一个先
作者: ERYER    时间: 2014-5-7 10:19
AAAAAAAAAAAAAAAA
作者: you4580    时间: 2014-5-7 18:29
看看内容
作者: 崔杰    时间: 2014-5-7 23:04
希望你说的很有用吧。。。。
作者: 方超    时间: 2014-5-7 23:12
11111111111111
作者: qidanei624    时间: 2014-5-9 02:27
总结的不错啊
作者: 李章敏    时间: 2014-5-9 16:32
liuzhe                                                            
作者: snowaves    时间: 2014-5-9 18:39
回复回复,看隐藏
作者: dongdong5982    时间: 2014-5-9 19:13
回复看看
作者: miedongdong    时间: 2014-5-20 09:57
看一下,谢了
作者: 欧阳疯    时间: 2014-5-22 14:17
恩恩  必须顶
作者: 漫天沙飞    时间: 2014-5-22 15:56
应该看看
作者: 肖岩    时间: 2014-5-22 16:08
像楼主这样的好人多多益善啊!
作者: rao    时间: 2014-5-22 21:14
感谢您的分享。
作者: 刘岳林    时间: 2014-5-23 01:08
谢谢分享
作者: 947415283    时间: 2014-5-23 01:16
不错不错
作者: hengxing0079    时间: 2014-5-23 05:49
回复看看,多谢你的分享!
作者: 张周飞    时间: 2014-6-6 10:13
好吧!!我也学习学习
作者: felixzr    时间: 2014-6-7 23:06
好资源,赞一个
作者: 妖精斩月    时间: 2014-6-11 21:49
能下载不
作者: 中国力量    时间: 2014-6-16 20:21
很流弊啊 学习了
作者: pancl    时间: 2014-6-16 21:38
过来看看
作者: 曾经的迷失    时间: 2014-6-18 06:29
{:2_32:}看看
作者: xiaokai2014    时间: 2014-6-18 11:11
嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎
作者: 小呀嘛小二郎    时间: 2014-6-18 12:28
哇哇哇,好腻害~~顶上
作者: IStudying    时间: 2014-6-19 14:09
学习学习。。
作者: 钟翠翠    时间: 2014-6-19 16:33
赞一个,好东西就要分享
作者: 客剑    时间: 2014-6-19 18:46
下了,复习时候用,非常感谢楼主的分享
作者: 一米光年    时间: 2014-6-20 00:01
好东西感谢分享!!!!!!!!
作者: 张然龙    时间: 2014-6-20 11:39
果断收藏慢慢看...
作者: mirror    时间: 2014-6-20 12:21
学习了{:2_32:}
作者: 唐坚    时间: 2014-6-20 13:18
       好
作者: caohaikuan    时间: 2014-6-20 13:32
瞅瞅是怎么回事
作者: 工作号    时间: 2014-6-20 13:32
好东西  的的顶顶顶顶顶顶顶顶顶顶
作者: 为梦想而活着    时间: 2014-6-20 16:57
看我之后我要笑了,怎么全是中文命类名呢?毕老师,毕姥爷  哈哈····················
作者: 唐杰亮    时间: 2014-6-21 00:15
很好。。。
作者: 彬锐    时间: 2014-6-21 10:42
楼楼太给力了。必须下载
作者: qq617631450    时间: 2014-7-7 23:39
好吧。我是个好骚年!
作者: 为梦想而活着    时间: 2014-7-8 13:20
不错,那个面试例子挺好的~~
作者: ⋛⋌⋚JEEP    时间: 2014-7-8 14:44
好资源,攒个!
作者: 渴望学习    时间: 2014-7-8 15:03
看看~~~~~~~~~~~~~~~~~~~~~
作者: DKID    时间: 2014-7-27 23:01
好东西,大家分享
作者: David.L    时间: 2014-7-27 23:20
这个必须学习下!!!!
作者: qingxi1    时间: 2014-7-28 00:21
好东西谢谢分享啊




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