java语言规范
来源:互联网 发布:javascript:; 编辑:程序博客网 时间:2024/06/05 02:19
- 一个完整的java源程序应该包括下列部分:
- package语句; //该部分至多只有一句,必须放在源程序的第一句
- import语句; /*该部分可以有若干import语句或者没有,必须放在所有的
- 类定义之前*/
- public classDefinition; //公共类定义部分,至少只有一个公共类的定义
- //java语言规定该java源程序的文件名必须与该公共类名完全一致
- classDefinition; //类定义部分,可以有0个或者多个类定义
- interfaceDefinition; //接口定义部分,可以有0个或者多个接口定义
- 例如一个java源程序可以是如下结构,该源程序命名为HelloWorldApp.java:
- package javawork.helloworld; /*把编译生成的所有.class文件放到包
- javawork.helloworld中*/
- import java.awt.*; //告诉编译器本程序中用到系统的AWT包
- import javawork.newcentury; /*告诉编译器本程序中用到用户自定义
- 的包javawork.newcentury*/
- public class HelloWorldApp{......} /*公共类HelloWorldApp的定义,
- 名字与文件名相同*/
- class TheFirstClass{......} //第一个普通类TheFirstClass的定义
- class TheSecondClass{......} //第二个普通类TheSecondClass的定义
- ...... //其它普通类的定义
- interface TheFirstInterface{......} /*第一个接口
- TheFirstInterface的定义*/
- ......
- package语句; //该部分至多只有一句,必须放在源程序的第一句
package语句:由于java编译器为每个类生成一个字节码文件,且文件名与类名相同,因此同名的类有可能发生冲突。为了解决这一问题,java提供包来管理类名空间,包实际提供了一种命名机制和可见性限制机制。而在java的系统类库中,把功能相似的类放到一个包(package)中,例如所有的图形界面的类都放在java.awt这个包中,与网络功能有关的类都放到java.net这个包中。用户自己编写的类(指.class文件)也应该按照功能放在由程序员自己命名的相应的包中,例如上例中的javawork.helloworld就是一个包。包在实际的实现过程中是与文件系统相对应的,例如javawork.helloworld所对应的目录是path\javawork\helloworld,而path是在编译该源程序时指定的。比如在命令行中编译上述HelloWorldApp.java文件时,可以在命令行中敲入"javac -d f:\javaproject HelloWorldApp.java",则编译生成的HelloWorldApp.class文件将放在目录f:\javaproject\javawork\helloworld\目录下面,此时f:\javaprojcet相当于path。但是如果在编译时不指定path,则生成的.class文件将放在编译时命令行所在的当前目录下面。比如在命令行目录f:\javaproject下敲入编译命令"javac HelloWorldApp.java",则生成的HelloWorldApp.class文件将放在目录f:\javaproject下面,此时的package语句相当于没起作用。
但是,如果程序中包含了package语句,则在运行时就必须包含包名。例如,HelloWorldApp.java程序的第一行语句是:package p1.p2;编译的时候在命令行下输入"javac -d path HelloWorldApp.java",则HelloWorldApp.class将放在目录path\p1\p2的下面,这时候运行该程序时有两种方式:
第一种:在命令行下的path目录下输入字符"java p1.p2.HelloWorldApp"。
第二种:在环境变量classpath中加入目录path,则运行时在任何目录下输入"java p1.p2.HelloWorldApp"即可。
import语句:如果在源程序中用到了除java.lang这个包以外的类,无论是系统的类还是自己定义的包中的类,都必须用import语句标识,以通知编译器在编译时找到相应的类文件。例如上例中的java.awt是系统的包,而javawork.newcentury是用户自定义的包。比如程序中用到了类Button,而Button是属于包java.awt的,在编译时编译器将从目录classpath\java\awt中去寻找类Button,classpath是事先设定的环境变量,比如可以设为:classpath=.;d:\jdk1.3\lib\。 classpath也可以称为类路径,需要提醒大家注意的是,在classpath中往往包含多个路径,用分号隔开。例如classpath=.;d:\jdk1.3\lib\中的第一个分号之前的路径是一个点,表示当前目录,分号后面的路径是d:\jdk1.3\lib\,表示系统的标准类库目录。在编译过程中寻找类时,先从环境变量classpath的第一个目录开始往下找,比如先从当前目录往下找java.awt中的类Button时,编译器找不着,然后从环境变量classpath的第二个目录开始往下找,就是从系统的标准类库目录d:\jdk1.3\lib开始往下找java.awt的Button这个类,最后就找到了。如果要从一个包中引入多个类则在包名后加上".*"表示。
如果程序中用到了用户自己定义的包中的类,假如在上面程序中要用到javawork.newcentury包中的类HelloWorldApp,而包javawork.newcentury所对应的目录是f:\javaproject\javawork\newcentury,classpath仍旧是classpath=.;d:\jdk1.3\lib\,则编译器在编译时将首先从当前目录寻找包javawork.newcentury,结果是没有找到;然后又从环境变量classpath的第二个目录d:\jdk1.3\lib\开始往下找,但是仍然没有找到。原因在于包javawork.newcentury是放在目录f:\javaproject下面。因此,需要重新设定环境变量classpath,设为classpath=.;d:\jdk1.3\lib\;f:\javaproject\ 。所以编译器从f:\javaproject开始找包javawork.newcentury就可以找到。
- package helloOkA.A;
- //import
- public class helloOkA{
- public static void main(String args[]){
- String szTmp = "";
- int nlen = 100;
- nlen = szTmp.length();
- Book jbook = new Book("Java详解", 200);
- jbook.PrintBookInfo();
- jbook.SaveBookName("精通JAVA");
- jbook.SaveBookNum(300);
- jbook.PrintBookInfo();
- System.out.println(nlen);
- return;
- }
- }
- class Book implements BookFace{
- String szName; //书名
- int Num; //页码
-
- Book(String szName, int Num){
- this.szName = szName;
- this.Num = Num;
- }
-
- public void PrintBookInfo(){
- System.out.println("书名:" + this.szName +"\n" +"页码:" + this.Num);
- return;
- }
-
- public void SaveBookName(String szName){
- if(szName.length() > 0)
- this.szName = szName;
- return;
- }
-
- public void SaveBookNum(int Num){
- this.Num = Num;
- return;
- }
- };
- interface BookFace{
-
- }
包名:包名是全小写的名词,中间可以由点分隔开,例如:java.awt.event;
类名:首字母大写,通常由多个单词合成一个类名,要求每个单词的首字母也要大写,例如class HelloWorldApp;
接口名:命名规则与类名相同,例如interface Collection;
方法名:往往由多个单词合成,第一个单词通常为动词,首字母小写,中间的每个单词的首字母都要大写,例如:balanceAccount, isButtonPressed;
变量名:全小写,一般为名词,例如:length;
常量名:基本数据类型的常量名为全大写,如果是由多个单词构成,可以用下划线隔开,例如:int YEAR, int WEEK_OF_MONTH;如果是对象类型的常量,则是大小写混合,由大写字母把单词隔开。
上一篇:Java 的工作原理
下一篇:SQL(一)
- 七匹狼董事长:电商一定颠覆商...
- 我们现在已经得到了别人的地方...
- Apple Swift编程语言入门教程...
- pywebkit 文档搜寻之旅
- 使用Linux命令行测试网速...
- JDK1.6官方下载_JDK6官方下载_...
- MyEclipse6.5下载及注册码...
- Eclipse 插件安装、升级和卸载...
- Eclipse+MyEclipse的配置
- 最新版SWT Designer 6.0 安装,...
- 初学UNIX环境高级编程的,关于...
- chinaunix博客什么时候可以设...
- 一个访问量较大网站的服务器。...
- 收音机驱动与v4l2架构的关系,...
- 如何将linux驱动改为裸机驱动(...
- Java语言编码规范
- java语言编码规范
- Java语言编码规范
- Java语言编码规范
- java语言编程规范
- Java 语言编码规范
- Java语言编码规范
- Java语言规范3.0
- Java 语言编码规范
- Java语言编码规范
- Java语言编码规范
- Java语言编码规范
- JAVA 语言编码规范
- Java语言编程规范
- java 语言规范
- Java 语言编码规范
- Java语言规范
- java语言规范
- iconv的转化脚本
- 笔试必考-C语言之sizeof详解
- java链表
- select函数用法详解(以例子剖析)
- Java 的工作原理
- java语言规范
- SQL(一)
- java练习1--随机产生13个0~51不同的随机数
- java_xml读取写入方法
- MD5算法C语言版
- Java和C语言混合编程--Windows版
- ECLIPSE导入已有源码
- C语言版 字符串转换为二进制
- 随机生成某几个汉字