跟我学JAVA / 第六课:深入Java类——关联关系 聚合关系 接口与抽象类

2018-03-09

本章我们将学到的知识点: 

1、关联关系   2、聚合关系   3、接口与抽象类

一、类的关联关系

1.关联关系:表示不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。 通过关联关系可以表示对象之间的沟通。 多个对象处于同一个层次上

包括: 一对一关系 一对多关系 多对多关系

2.聚合关系:聚合关系是关联关系的一种,是强的关联关系,表示整体与个体的关系。

聚合关系用于对模型元素之间的组装关系进行建模。如: 汽车由很多零部件组成; 计算机由很多设备组成; 图书馆由很多书组成; 公司由很多部门组成。

二、抽象类

在java中用abstract关键字来修饰一个类时,这个类叫做抽象类。

abstract class className{ }

抽象类的特点: 抽象类不能直接运用new创建对象 抽象类的实体中可以有abstract方法,且abstract方法只允许声明,而不允许实现

抽象类中不一定要包含abstract方法,但一个类中包含了abstract方法,则这个类必须声明为abstract类。 抽象类的实现子类必须实现抽象类中所有的abstract方法

abstract returnType method([paramList]);

三、接 口

接口:是抽象类的一种,只包含常量和方法的定义,而没有变量和方法的实现,且其方法都是抽象方法。

接口的含义: 所有实现了该特定接口的类看起来都象它。

接口定义:

1、 access为public 或没有(默认包访问修饰符)。

2、包括接口声明和接口体;接口体包括常量定义和方法定义。

3、常量被实现该接口的多个类共享; 具有public ,final, static的属性。

4、方法体具有 public和abstract属性。

接口定义例子:

Interface Callback{
     String name = "interface callback";
     void callback(int param);
}

接口的实现-implements 关键字:

实现格式:

access class classname [ extends superclass ] 
          [implements interface[ , interface…] ]{
    //class-body
 }

1、access是public或没有(默认包访问修饰)。

2、一个类可以实现多个接口,在implements子句中用逗号分开。

3、实现类共享接口中定义的常量为,而且必须实现接口中定义的所有方法。

4、实现接口的方法必须声明成public,且必须严格与接口定义中制定的类型匹配。

5、若多个接口中有相同的方法,只现实一次。

6、可在实现类中定义自己的附加变量或方法。

接口实现的例子:

public class Client implements Callback{
       //实现接口中定义的方法
       public void callback(int p){
             System.out.println("callback called with "+p);    
       }
    
      //自定义方法
       public void nonIfaceMeth(){
             System.out.println("define other method");    
       }

}

接口的局部实现--抽象类:

如果一个类包含一个接口但是不完全实现接口中定义的方法,那么该类必须定义成abstract型。 例如:

abstract class Incomplete implements Callback{
      int a,b;
      void show(){
            System.out.println(a + “ “+b);
      }
}

任何继承Incomplete的类都必须实现callback()方法,或是自己也定义成abstract类。

用接口实现多重继承—接口的应用:

1、用接口实现多重继承 2、用接口来实现群组常量的定义 3、可以将接口当成接口类型来使用 4、接口可以扩展

Java只支持单继承,那么我们可以通过实现接口的方式,让一个类拥有多个类型的操作。

例如: 如果要表示一个X是一个A和一个B以及一个C;

因为接口中定义的任何字段都是static和final的,可以将接口当成创建常量组的工具。

 public interface Months{
         int  JANUARY = 1, FEBRUARY = 2,  MARCH = 3,
               APRIL = 4, MAY = 5, JUNE = 6, JULY = 7,
               AUGUST = 8, SEPTEMBER = 9, OCTOBER = 10,
               NOVERBER= 11, DECEMBER = 12;
  }

引用的方法:packageName.Months.JANUARY即可代表数字1。

缺点: 缺少安全性。

接口可作为一种引用类型来使用。 可创建一个接口类型的类实例对象。 一个接口引用变量仅知道被它的接口定义声明的方法。

通过继承可以在新接口中添加新的方法,还可以在新接口中组合数个接口。当一个类实现了该接口,它必须实现接口继承链表中定义的所有方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值