您的位置:首页 > 职场人生

黑马程序员——面向对象(接口和内部类)

2014-10-13 20:02 204 查看
-----------android培训java培训、java学习型技术博客、期待与您交流!------------

一、接口

          接口也是一种抽象类,接口是程序的功能的扩展,它降低了耦合性,更重要的是可以用来多实现,就是说一个子类可以实现多个接口。

          抽象类是继承,是 "is a "关系。

          接口是实现,是 ""like a关系。

          抽象类中可以定义非抽象方法,供子类直接使用。

          接口的方法都是抽象,接口中的成员都有固定修饰符。

二、内部类

          一个类中还可以定义一个类,这个类中类就是内部类。

 要实例化一个内普通类之前必须先实例化外部类对象。

         

内部类定义原则:

当描述事物中,事物的内部还有事物,该事物用内部类来描述。
因为内部事务在使用外部事物中的内容。


         静态内部类

        一个内部类属于一个外部类的成员,也可以被private static修饰;

 如果一个内部类被修饰为private,这个内部类只能在外部类的内部使用;  

         如果一个内部类被修饰为static,实例化此内部类的时候不需要先实例化外部类;   

         静态的内部类只能访问静态的外部类成员;  

         如果一个一个内部类包含了静态成员,那么这个内部类必须是静态的;

          局部内部类

  /*
           局部内部类:

          1.在一个方法体内,可以定义一个类,叫:局部内部类;

          */

                   interface IA

                    {
                   void show();

                     }

                     class Outside

                     {
              public IA fun(){

       final int num = 10;
       class Inside implements IA{
public void show(){
System.out.println("B --> show() num = " + num);
}
}
Inside inner = new Inside();
return inner;

//匿名内部类,实现IA接口的子类没有名字

                   /* IA aObj = new IA(){//相当于定义一个内部类实现IA接口,并且重写接口中的方法,而且同时实例化了一个这个子类对象
          public void show(){
              System.out.println("B --> show() ");
             
}
         
};
         return aObj;

           */
           /*return new IA(){
                 
public void show(){
                System.out.println("B --> show() ");
            
                }
                                     
};
             */
             }

                }

                         class Demo 

                          {
                               public static void main(String[] args) 
                                  {
                                        //
Outside outer = new Outside();
                                             //
outer.fun();

                              Outside a = new Outside();
                                         
//Object obj = a.fun();
                                            IA obj = a.fun();
                                                       
obj.show()

                 }

                }

  在一个方法体内,可以定义一个类,叫:局部内部类;

           局部内部类的不可以为静态类;

           内部类定义在局部的时候:

                1.不可以被成员修饰符修饰

                2.可以直接访问外部类中的成员,因为还持有外部类中的引用

               但是不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量。

          面向对象可以说基本讲完,但是总感觉自己写代码时就错误百出。可能是自己练得不多吧!不过幸好听的比较认真,所以说压力不大。。。

-----------android培训<
9d4b
/span>、java培训、java学习型技术博客、期待与您交流!------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  黑马程序员 java
相关文章推荐