我想你说的蓝色的应该是这样的吧?
绿色的应该是这样的吧?
两种注释的区别是:
蓝色的注释 一般是用在方法、接口、类、变量的注释上,用处就是当你鼠标移到这个方法、类、接口、变量上的时候,eclipse会展示出对应的注释。这样用的好处就是,封装好的方法(其余同理),别人通过注释就可以了解此方法的用途。
绿色的注释一般是写给自己或阅读这里代码的人看的,在别的地方是看不到注释的。比如你在类名上注释成绿色的,那么别人把鼠标移到此类上,就不会看到此类的注释。一般用在重要代码上的注释上,还有就是分支处理(if else switch case)时通常要加上,便于理解。
API中的某一个类是否会自动执行,这个没有理解你想要表达什么意思。
如果想知道此类是否存在引用,或者说有没有地方调用这个类或方法,你都可以双击选中此类名、方法名,然后按快捷键Ctrl + Shift + G来查看有无引用。
如果说类似于Activity的onCrete、View的onClick方法,这些都是回调方法,也就是说是抽象类里或接口里定义的方法。
2013-12-12
/*
Copyright ©, 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. 这样看起来好像你没调用它,它确被执行了,这就是面向对象的“神奇”之处。