android API中蓝色的注释跟绿色的注释有什么区别,怎么判断API中一个类的某一个方法是否会自动执行?

自己也不清楚的就算了,表示感谢... 自己也不清楚的就算了,表示感谢 展开
 我来答
双四别阴我
推荐于2017-12-16 · TA获得超过2282个赞
知道大有可为答主
回答量:1250
采纳率:57%
帮助的人:1187万
展开全部

我想你说的蓝色的应该是这样的吧?


绿色的应该是这样的吧?


两种注释的区别是:

  1. 蓝色的注释 一般是用在方法、接口、类、变量的注释上,用处就是当你鼠标移到这个方法、类、接口、变量上的时候,eclipse会展示出对应的注释。这样用的好处就是,封装好的方法(其余同理),别人通过注释就可以了解此方法的用途。

  2. 绿色的注释一般是写给自己或阅读这里代码的人看的,在别的地方是看不到注释的。比如你在类名上注释成绿色的,那么别人把鼠标移到此类上,就不会看到此类的注释。一般用在重要代码上的注释上,还有就是分支处理(if else   switch case)时通常要加上,便于理解。


API中的某一个类是否会自动执行,这个没有理解你想要表达什么意思。

如果想知道此类是否存在引用,或者说有没有地方调用这个类或方法,你都可以双击选中此类名、方法名,然后按快捷键Ctrl + Shift + G来查看有无引用。


如果说类似于Activity的onCrete、View的onClick方法,这些都是回调方法,也就是说是抽象类里或接口里定义的方法。

匿名用户
2013-12-12
展开全部
一种是注释当前行的,一种是主要包含在/*和*/内的都是注释内容。另外哪有无缘无故自动执行的方法,不知道你说的什么意思。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
logic1965
2013-12-13 · TA获得超过551个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:210万
展开全部
/*
  Copyright &#169;, 2011-2014, XXX Tech. Co., Ltd.
  Author:          
  Date: 2013-12-13
  Description:    用于详细说明此程序文件完成的主要功能,与其他模块或函数的接口,输出值、取值范围、含义及参数间的控制、顺序、独立或依赖等关系
  Others:         // 其它内容的说明
*/
package cn.mark;
/**
 *〈一句话功能简述〉
 * 〈功能详细描述〉
 *
 * @author [作者]
 * @version [版本号, 2013-12-13 上午10:00:19]
 * @see [相关类/方法]
 * @since [产品/模块版本] 
 */
public class MyClass {
 
 /**
  * 变量
  */
 private boolean ok;
 
 /**
  * 〈一句话功能简述〉
  *
  * @param [参数1] [参数1说明]
  * @param [参数2] [参数2说明]
  * @return [返回类型说明]
  * @exception/throws [违例类型] [违例说明]
  * @see [类、类#方法、类#成员]
  */
 public boolean isOk(){
  return ok;
 }
}

注释的颜色是由你的开发工具设定的, 所以只能以上面例子来解释。

在package前面以/*开头的注释,或者以//开头的,你在eclipse中右键工程->export->java->javadoc,导出java注释时,这种注释被过滤。

在类,域,方法上面的注释,以/**开头的,这种注释导出不被过滤掉,你可以测试下,注释会按一定格式生成一些html文件。

 

------------------------------------------------------------------------------------------

 

你说的自动执行的API方法,我想应该是以@Override标记的方法,这个标记只是表示要覆盖父类的方法,所谓覆盖,假设父类A定义了一个public 方法M,你定义一个子类B继承父类A,根据继承性质,B的对象是可直接调用M,但是通常B有不同于A的行为,M方法B可能要重新实现,因此M被标记为@Override,在java中,不写也可以,不过写上有如下好处:
1、可以当注释用,方便阅读;
2、编译器可以给你验证@Override下面的方法名是否是父类中所有的,如果没有则报错。

java默认支持动态绑定的,如:

A a = new B();//上面B extends A
  a.M();

语句a.M(); a声明类型是A,但在运行时调用的确实B中覆盖的方法M,这就是动态绑定。

 

----------------------------------------------------------------------

方法是不会自动执行的,之所以你在写android代码时,比如你覆盖了onCreate方法,看起来你写的代码是没有去调用这个方法,但好像onCreate被自动执行了,其实在android 系统中已经写了调用onCreate的代码,这些代码被android封装好了, 这就是上面提的多态和动态绑定,假设你写了MyActivity类,android 系统中一定有类似代码:

Activity act = new  MyActivity();
act.onCreate();//这里执行了你覆盖的onCreate

至于为什么android 系统能知道你定义了MyAcitvity,那是因为AndroidManifest.xml,里面有你声明的Actiivty. 应用程序安装时,系统会解析这个文件,把里面的组件信息记录下来,当点击应用icon时,发出intent,系统根据包名类名会找到那个main activity,创建并调用onCreate. 这样看起来好像你没调用它,它确被执行了,这就是面向对象的“神奇”之处。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式