第一小节(包,抽象,接口,多态)

------------恢复内容开始------------

1.1 包的概述和使用

包其实就是文件夹;

包的格式:package 包名;(多级包用“.”分开)

eg:package com.helloworld;

带包的Java类编译和执行

1)手动建包:

手动建包把class文件移到最里面带包执行

2)自动建包:

javac -d.HelloWorld.java (-d 资源管理器--------表示在当前目录下)

java com.helloworld.Helloword

2 导报的概述和使用

使用不同包下的类时,要写类的全路径,为了方便

导包的格式

        格式:import 包名;

eg: import helloworld.HEllo

3 修饰符

3.1 权限修饰符

        private                      只在本类中可使用(私有)

        默认                          同一个包中子类无关类

      protected                    同一个类,同一个包中子类无关类,不同包的子类 

          public                      同一个类,同一个包中子类无关类,不同包的子类 ,不同包的无关类

3.2 状态修饰符

       final           最终态----可修饰成员方法,成员变量,类

                        特点:修饰方法——表明该方法是最终方法,不能被重写;

                                   修饰变量——表明该变量是常量,不能再次被赋值;

                                   修饰类——表明该类是最终类,不能被继承;

                                    修饰局部变量—— 基本类型变量-数据值不能发生改变;

                                                                  引用类型-地址值不能改变,但地址里面内容可以改变;

3.3 Static       静态----可修饰成员方法,变量 ;  共享

                       特点:  被类的所有对象共享

                                     可以通过类名调用(也可以通过对象名调用);

                访问特点

                       静态成员方法只能访问静态成员;

4 多态(编译看左边,执行看右边)

概述:同一对象在不同时刻表现出来的不同形态

前提和体现:

        有继承/实现关系

        有方法重写

        有父类引用指向子类对象 (父类new一个子类对象) 

好处和弊端:

  提高了程序的扩展性——体现在 定义方法的时候,使用父类型作为参数,将来在使用的时候使用具体的子类型参与操作;

  不能使用子类的特有功能

多态中的转型:

  1)向上转型

      从子到父

      父类引用指向子类对象

  2)向下转型

      从父到子

      父类引用转为子类对象

5 抽象类  (abstract)

  概述: 在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类(抽象方法必须在抽象类-不能创建对象,用多态继承创建对象); 

      抽象类里可以存在非抽象方法,可以没有抽象方法;

  特点:

      抽象类和抽象方法必须使用 abstract 关键字修饰     eg:   public abstract class 类名{}、public abstract void eat ();

      抽象类中不一定有抽象方法,有抽象化方法的类一定是抽象类

      抽象类不能实例化,需参照多态的方式,通过子类对象实例化,这叫抽象类多态

      抽象类的子类——要么重写抽象类的所有抽象方法,要么本身是抽象类

抽象类的成员特点(子类使用必须重写(override))

  成员变量——可以是变量也可以是常量

  构造方法——有构造方法,但是不能实例化,构造方法的作用是用于子类访问父类数据的初始化;

  成员方法——可以有抽象方法,限定子类必须完成某些动作,也可以有非抽象方法,提高代码复用性(用继承来访问);

6 接口(抽象,不能被实例化)

  描述:接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用;

     JAVA 中的接口更多的体现在对行为的抽象

   接口的调用方法类一般是——    接口名+Impl(class类)

  特点:

     1.接口用关键字 interface 修饰       eg: public interface 接口名 {}

     2.类实现接口用implements(实现)表示       eg: public  class类名 implements 接口名 {}

    3.接口不能实例化——参照多态的方式,通过实现类对象实例化(接口多态)  

              多态的形式:具体类多态(几乎不用),抽象类多态,接口多态。

              多态的前提:有继承或者实现关系;有方法重写;有父(类/接口)引用指向(子/实现)类对象

    4.接口的实现类          要么重写接口中的抽象方法

              要么是抽象类(用接口可以不重写接口的方法)(+abstract)

接口的成员特点  

    成员变量    默认修饰符: public static final

            接口中成员变量  只能是常量 默认被final修饰  静态static   ,可从接口直接访问

               接口中不能有构造方法(对行为进行抽象,不是具体存在的)

    构造方法     无构造方法,默认继承Object类

    成员方法    只能是抽象方法(abstract)

            默认修饰符  public abstract

Object 类:

  Object类是类层次结构的根,所有类都直接或者间接继承着Object

 

 

类和接口的关系:

  类和类的关系:

      继承关系,只能单继承,但可以多层继承。

  类和接口的关系:

      实现关系,可以单实现,也可多实现,还可以在继承一个类的同时实现多个接口

      public class InterImpl  extends Object implements Inter1,Inter2,Inter3{}

  接口和接口的关系:

      继承关系,可以单继承也可以多继承

      public interface Inter3 extends Inter2,Inter3{}

(Java    多继承体现在接口上)

 

抽象类和接口的区别:

  成员区别

    抽象类        变量,常量;有构造方法;有抽象方法,非抽象方法

    接口        常量;抽象方法

  关系区别

    类与类    继承,单继承

    类于接口   实现,可以单实现,也可以多实现

    接口与接口  继承,单继承,多继承、

  设计理念区别

    抽象类    对类抽象,包括属性,行为

    接口    对行为抽象,主要是行为

        (报警门---------定义一个报警接口,一个抽象类门有开关的抽象方法,一个类继承抽象类调用报警接口,重写里面的开关报警方法)

 

 

形参和返回值

  类名作为形参和返回值

      方法的形参是类名,其实需要的是该类的对象

      方法的返回值是类名,其实返回的是该类的对象、

  抽象类名作为形参和返回值

      方法的形参是抽象类名,其实需要的事该抽象类的子类对象

      方法的返回值是抽象类名,其实返回的是该抽象类的子类对象

  接口名作为形参和返回值

      方法的形参是接口名,其实需要的是该接口的实现类对象

      方法的返回值是接口名,其实返回的是该接口的实现类对象

 

1 内部类

  概述:其实就是在一个类中定义一个类。eg    public class  Outer{

                            public class  Inner{}

                        }

  访问特点:

      内部类可以直接访问外部类的成员,包括私有

      外部类要访问内部类的成员,必须创建对象

1.1 成员内部类

    外界如何创建对象使用

        格式: 外部类名.内部类名 对象名  = 外部类对象.内部类对象;

         eg:  Outer.Inter oi =  new Outer().new Inner();

 

 

 

 

 

 

 

 

        

 

------------恢复内容结束------------

posted @ 2022-03-04 22:28  分析虎  阅读(55)  评论(0)    收藏  举报