当前位置: 首页 > news >正文

怎么做像知乎一样的网站/网站域名费一年多少钱

怎么做像知乎一样的网站,网站域名费一年多少钱,网站安全建设目的,小说网站开发 公司Java最基本的封装是class,除此之外还有接口interface。这段时间一直在想接口有什么作用呢,有了接口有哪些好处呢。结合网络上各位大神的文章,接口的作用大概体现在以下几个方面。 1.回调 2.方法参数 3.多态 对于上面的结论,笔者自…

  Java最基本的封装是class,除此之外还有接口interface。这段时间一直在想接口有什么作用呢,有了接口有哪些好处呢。结合网络上各位大神的文章,接口的作用大概体现在以下几个方面。
1.回调
2.方法参数
3.多态
对于上面的结论,笔者自己也做了思考,并且概括为:接口是一种能力的声明或者说是一种能力的约束。从接口能力的引用方面来看,这个是能力的声明。要想被这个接口引用指向,你就必须具备某种能力。从接口的实现来看,这个就是能力的约束。一个对象可能有多个能力,但是被这个接口引用指向了之后,智能表现出这种能力。下面就一些例子来说明一下自己的观点。
        先说说第一个,接口与回调,这个例子太多了,就来看看android系统的点击响应实现吧。
        Button button = new Button(this);
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                
            }
        });
这里就是一个典型的回调场景。给方法传递了一个匿名内部类,实现了onlick的方法。如果直接就这么写,感觉就是赤裸裸的能力声明,必须要实现onlick方法,哪怕只是一个空方法。当然你也可以这么写,button.setOnClickListener(this);给方法传递一个对象引用,这个对象实现了这个接口。当然这个对象也可能实现了更多的接口,比如下面的代码:
public class MainActivity extends Activity implements View.OnClickListener,
        View.OnLongClickListener {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = new Button(this);
        button.setOnLongClickListener(this);
        button.setOnClickListener(this);
    }
 
    @Override
    public boolean onLongClick(View v) {
        return false;
    }
 
    @Override
    public void onClick(View v) {
    }
}
在这里就能感受到了能力的约束,this具有对长按,和短按的响应能力,但是在一个方法里面只能展示出一个。
       再说说接口用来做参数。例子就是上面的例子,setOnClickListener方法的参数类型就是一个接口。如果不用接口,也只能用类了。类的话就有点笨重了,一个类只有一个能力。另外如果是类的话,那也不方便用button.setOnClickListener(this);这种方式了。这样看来用接口确实是省了不少事情。
      最后接口用来展示多态,这个和上面的确实不同了,得新举一个例子。最经典的应该是工厂模式吧。

//定义接口
interface Car {
    public void run();
    public void stop();
}
 
 
// 具体实现类
class Benz implements Car {
    public void run() {
        System.out.println("Benz开始启动了。。。。。");
    }
 
    public void stop() {
        System.out.println("Benz停车了。。。。。");
    }
}
 
class Ford implements Car {
    public void run() {
        System.out.println("Ford开始启动了。。。");
    }
 
    public void stop() {
        System.out.println("Ford停车了。。。。");
    }
}
 
// 工厂
class Factory {
    public static Car getCarInstance(String type) {
        Car c = null;
        if ("Benz".equals(type)) {
            c = new Benz();
        }
        if ("Ford".equals(type)) {
            c = new Ford();
        }
        return c;
    }
}
从这里看,car就是能力的声明,并且还有个传递这个能力的工厂,从这个工厂里面出来的每个产品都具有run和stop两个功能。而做为实现接口的benz和ford两个类,也可以具有其他能力,比如benz可以在实现一个飞机接口,ford也可以多实现一个船的接口。这样当从car factory出来的时候就约束它只给出了car的能力,从别的factory出来的时候就约束他有另外的能力。
        个人认为理解接口作用最好的地方是阅读Java容器系列接口。比如Java提供了arraylist,linkedlist,hashmap等一些列优质容器。这个仅仅是容器,他们能装很多东西,各自有各自的优点和缺点。有木有发现,数据结构里面说的栈,队列在这里以接口的方式做了声明,比如Deque<E>, List<E>, Queue<E> 。因为堆,栈仅仅是一种能力的声明,先进先出,先进后出,只要实现了那几种能力就可以了。不关注你是怎么实现的,不关注你除了这个能力之外还有别的什么能力。所以我们能看到arraylist,linkedlist的都实现了好几个接口。API提供给外界访问的方法,需要外界提供参数的时候,参数类型可以声明为list,这样如果你的数据经常有删除操作,你就可以用linkedlist,如果经常查找你就可以用arraylist。
--------------------- 
作者:AndrewBS 
来源:CSDN 
原文:https://blog.csdn.net/maybe_windleave/article/details/33422449 
版权声明:本文为博主原创文章,转载请附上博文链接!

http://www.lbrq.cn/news/1410517.html

相关文章:

  • wordpress二级菜单代码/谷歌搜索优化seo
  • 深圳交易网站建设/网络营销产品
  • ppt图标网站链接怎么做/中国最大的企业培训公司
  • 东莞金融网站建设/最新今日头条
  • 织梦后台点击网站主页/搜索引擎优化涉及的内容
  • 公司网页制作哪家强/seo投放营销
  • 建网站内容/整站seo排名
  • 网站营销应该怎么做/搜索引擎营销的优缺点及案例
  • wordpress评论cdn刷新/汕头seo代理
  • 深圳网站建设 东毅虎/免费网络推广平台
  • 海南做网站的公司/网站网络推广公司
  • 网站开发 明细/seo效果最好的是
  • 深圳网站推广优化/个人网页在线制作
  • 临朐整站优化/网页百度网盘
  • 高唐网站建设服务商/win7运行速度提高90%
  • 做阅读任务挣钱的网站/app推广地推接单网
  • 网站ip改变 备案/网站seo优化建议
  • html全屏网站/百度浏览器下载安装2023版本
  • 网站pc端和手机端分离怎么做/网站seo推广营销
  • 云南微网站搭建费用/怎么搭建自己的网站
  • 网站建设未验收会计账务处理/成都网站推广公司
  • 网络搏彩网站做代理/快速排名精灵
  • 上海门户网站制作/百度市场应用官方app
  • 营销型网站建设合同范本/微博推广方式
  • 中科院网站做的好的院所/网站查询信息
  • 做网站运营需要学什么条件/自己做网站需要什么条件
  • led照明企业网站模板/免费发布信息不收费的网站
  • 网站设计过时/互联网推广运营是干什么的
  • 所得税汇算清缴在哪个网站做/如何优化网页加载速度
  • wordpress中ajax请求/seo培训中心
  • 决策树:机器学习中的直观分类与回归工具
  • Android Coil3视频封面抽取封面帧存Disk缓存,Kotlin(2)
  • Git-2025-0818
  • [python学习记录1]python简介
  • 脉冲计数实现
  • 编程算法实例-Armstrong数(阿姆斯特朗数)