黑马程序员技术交流社区

标题: 关于接口的定义的小问题 [打印本页]

作者: 清秋    时间: 2011-11-18 23:38
标题: 关于接口的定义的小问题
本帖最后由 清秋 于 2011-11-21 09:51 编辑

在习题中看到接口定义
i
  1. interface A()
复制代码
接口定义应该怎么写,可以省略大括号{}么?
作者: 徐杨    时间: 2011-11-18 23:41
interface A {
内容....
}

不可以省略大括号
接口的基本思想:
1,接口就是对外暴露的规则。
2,接口是功能的扩展。
3,接口的出现降低了耦合性(紧密联系程度)。耦合性的降低就是实现了模块化的开发。

作者: 清秋    时间: 2011-11-18 23:52
徐杨 发表于 2011-11-18 23:41
interface A {
内容....
}

我在视频day10-6里看到好多都是省略{}的。
  1. interface Inter
  2. {
  3.         void show( int a, int b );
  4.         void func();
  5. }
  6. class Demo
  7. {
  8.         public static void main(String[] args)
  9.         {
  10.                 //补足代码:调用两个函数,要求用匿名内部类
  11.                 Inter in = new Inter()
  12.                 {
  13.                         public void show( int a, int b )        //此处为什么用public
  14.                         {
  15.                         }
  16.                         public void func()
  17.                         {
  18.                         }
  19.                 };
  20.                 in.show(4,5);
  21.                 in.func();
  22.         }
  23. }
复制代码
还有此处匿名内部类的方法,为什么一定要定义为public
作者: 徐杨    时间: 2011-11-19 00:12
第二行{

第五行}
这个是可以不在一行的
建议重新巩固基础知识

关于内部类为什么权限一定要定义为public
这是为了内部类外面的类来调用该内部类中的方法
如果内部类中方法设置为私有方法,相当于外部类都看不见内部类的任何方法,更别说调用使用了
但是我觉得不是一定要设置为public   根据需求来定是public还是private
比如你内部类里有一个算法方法,只需要内部类里的其他方法调用,不需要外部类调用,完全可以私有化 然后不对外暴露。
这还体现了封装的优势
作者: 清秋    时间: 2011-11-19 01:16
徐杨 发表于 2011-11-19 00:12
第二行{

第五行}

很感谢的回答
对一些基础知识点。我觉得用视频的方式巩固起来特别不方便。虽然我做了些笔记。但总不是十全十美的

还有。此处的public,应该是因为匿名内部类实现了接口。

视频里讲到:
接口中的成员都有固定修饰符
                常量:public static final
                方法:public abstract

        接口中的成员都是public

但练习中的接口并没有用public.而子类继承父类权限必须大于等于父类,此处如果父类是 省略 ,那子类可不可以省略呢。
作者: 徐杨    时间: 2011-11-19 20:51
省略也是一个权限  叫做 默认权限
public,可以再不同类,不同包的子类访问,完全暴露在外
protected,可以在同一个类、同一个包、不同包中的子类访问
默认:在同一个类、同一个包中访问,区别在最后一点,不能在子类中访问。

接口中的成员都有固定修饰符
                常量:public static final
这个目的在于接口是相当于一个规范,如果想用这个接口就要遵循这个规则。里面的成员变量 不应随其他对象而改变,固设置为final

方法:public abstract

是声明了方法,但为实现方法,如果使用这个接口需要实现所有接口的抽象方法。这也是需要使用接口就必须遵循接口规则的体现




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2