Java知识总结2

抽象类

           什么是抽象类?   拥有抽象方法的类必须定义成抽象类。用abstract修饰。

                      父类的个个子类某个功能完成的情况不一样,子类自己重写这个功能,那么父类的该                        功能就可以定义成抽象方法。子类重写调用自己的方法。

           什么是抽象方法? 

                     没有方法体只有方法名,且必须用abstract修饰的。

                  (拥有抽象方法的类一定是抽象类,抽象类中不一定包含抽象方法。)

           抽象类的使用:

                     抽象类就是为了被子类所继承,约束子类要重写的抽象方法。(抽象类的意义)

                    子类继承了抽象类,要么全部重写抽象类的全部抽象方法,要么也定义成抽象类。

           抽象类的定义方式:

                    abstract   class    A{

                             public abstract  void  eat(); // 抽象类公开,才能被子类继承,才有意义。

                    }

           抽象类的特征:

                     抽象类拥有抽象方法的能力。抽象类失去了创建对象的能力。

                   (抽象类属于类,抽象类一定有构造器,提供给子类创建对象调用父类构造器使用。

                       但是抽象类不能创建对象)

                    

接口

           接口是更彻底的抽象,实现接口的子类必须重写完接口的全部抽象方法。

         (接口中只能定义抽象方法和常量)

           定义方式:

                     修饰符   interface  接口名称{

                     }

           接口的实现方式:

                     修饰符  class  实现类名称  implement   接口1,接口2,接口3.......{

                    }    //接口支持多实现  (类与类之间是单继承,但是接口支持多实现)

                     但必须完成所实现的接口的全部抽象方法。

                   接口与接口之间也是多继承,在实现类实现已经继承其他接口的接口的时候,需要实现             所有的接口中的抽象方法。

          

           接口中没有构造器,不能创建对象。

代码块

           代码块按照有无static修饰分为:静态代码块,实例代码块。

           静态代码块格式:

                     static {

                     }

                     必须用static修饰。属于类,与类一起加载,自动触发执行一次!

                    静态代码块可以用于执行类的方法之前进行静态资源的初始化操作。

           实例代码块格式:

                     {

                     }

                     <1>必须无static修饰。属于类的每个对象,会与类的每个对象一起加载,每次创建对                         象的时候代码执行一次。

                     <2>实例代码块可以用于初始化实例资源

                     <3>实例代码块实际上是提取到每个构造器中执行的。

内部类

              内部类是指定义在一个类里面的类就是内部类。

              内部类的分类:

                       (1)静态内部类

                       (2)实例内部类

                       (3)局部内部类

                       (4)匿名内部类

              内部类的作用:

                          可以提供更好的封装性,内部类有更多权限修饰符,封装性有更多的控制。

            (1)静态内部类

                          有static修饰,属于外部类本身,会加载一次。

                          定义格式:

                                    class  A{

                                             public  static  class B{

                                             }

                                    }

                           B 就是静态内部类

                           静态内部类创建对象的格式:

                                    外部类名称 . 内部类名称  对象名称 =  new 外部类名称 . 内部类名称();

                                    A.B i = new  A.B();

             (2)实例内部类

                           无static修饰,属于外部类的每个对对象,与对象一起加载。   

                           定义格式:

                                    class  A{

                                             public  class B{

                                             }

                                    }

                             实例内部类创建对象的格式:                    

                   外部类名称.内部类名称 对象名称 =  new 外部类构造器.new 内部类构造器;

                                        A.B I = new A() . new B();

                           实例内部类的成员特点:

                                        实例内部类中不能定义静态成员,其他都可以定义。

               (3)局部内部类

                            定义在方法中,构造器中,代码块中,for循环中的内部类就是局部内部类。

                           局部内部类的特点:

                                       只能定义实例成员,不能定义静态成员。可以定义常量。

                                      (局部内部类很少用到)

               (4)匿名内部类

                             一个没有名字的局部内部类。

                            匿名内部类的格式:

                                      new  类名 | 抽象类 | 接口 (形参){

                                                   方法重写。

                                     }   

                 Animal a = new Animal() {
                      @Override
                      public void run() {
                           System.out.println("猫跑的贼溜~~~");
                     }
                };                

final关键字

              final可以用于修饰类,方法,变量。

              特点:

                        (1)final修饰类:类不能被继承。

                        (2)final修饰方法:方法不能被重写。

                        (3)final修饰变量,变量有且仅能被赋值一次。

              final修饰变量的总规则:有且仅能被赋值一次。

                         成员变量 (被修饰,成员变量变成常量)

                                 静态成员变量:有static修饰,属于类,只能加载一份。

                                 实例成员变量:无static修饰,属于每个对象,与对象一起加载。

                        局部变量

                                 只能在方法中,构造器中,代码块中,for循环中,用完作用范围消失。

              (final修饰局部变量,在运行过程中防止被修改。)

权限修饰符

 

 (上述笔记,作者自己总结。如果不正确的地方,欢迎指正。)

                                      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值