李京蔚 JAVA 学习笔记 2009 年 12 月 8 日
从新开始、从心开始
一个 Java 类的结构:
// 此类所在项目的哪个包中 package com.lee.chapter1; // 引入外部包 import java.util.*; // 类的声明 public class Structure { // 全局变量也叫成员变量 static int i ; // 成员变量初始化可以不用赋值, int 类型数据默认值是 0 public static void main(String[] args) { // 此方法是 JAVA 整个程序的入口处 main 函数 // 局部变量 int k = 0; // 局部变量初始化时必须赋值,即使在初始化是不赋值,也要在调用此变量之前附上值,否则会报错 System. out .println( "i=" +String.valueOf ( i )); // 由于主函数是静态方法,所以调用本类的成员变量也是要静态的变量 System. out .println( "k=" +String.valueOf (k)); }
} |
一个 Java 应用包含一个或者多个 Java 源文件,每个 Java 源文件只能包含下列内容(空格和注释除外)
l 零个或多个包声明语句( package *.*.*; )
l 零个或多个包引入语句( import *.*.*; )
l 零个或多个类的声明( public class ***{} )
l 零个或多个接口声明( interface )
l 零个或多个类的生命( public void ***( 参数类表 ){} )
包生命语句 package *.*.*;
Package 在一个类中只能出现一次,并且必须放在源文件的第一行(注释行除外)
包的作用:
1. 能够区分名字相同的类
2. 有助于实施访问权限控制
3. 有助于划分和组织 Java 应用的各个类
包引入语句 import *.*.*;
import 在一个类中可以出现多次,可以引入不同的包以便对该类的应用做支持
当一个类想要访问其他包中的类时,那么必须引入要访问类的所在包( java.lang 包创建类的时候默认加载,这个除外)
例:
import com.lee.chapter1; 此方法引入指定包中的类
import com.lee.*; 此方法引入 com.lee 包中下所有的类
相比较而言前者方法在性能上要优于后者,因为前者能迅速的指向该包中的类,而后者要搜寻该包中下所有的类,直至找到对应的类。
另外当一个类导入其他包时不会初始化导入的包,详细请看以后章节的介绍 …
类的声明 public class one{};
每个 java 源文件中可以包含多个类或接口的定义,但是对多只能有一个类或接口是 public 的。而且 java 源文件的名字必须要与此类的 public 类型的类名相对应。
public class one{}; class two{}; |
源文件名字与类 one 名字对应。
方法的声明
在 Java 语言中,每个方法都属于特定的类,方法的声明必须位于类的声明之中
// 类的声明 public class Structure { // 方法的声明 public void one(String name) { ………… 方法体 } } |
如果在声明方法中返回值类型为 void 时,那么该方法可以没有 return 语句,如果有返回值类型
如 public String one(){}
那么要在方法中加入 retrun 语句
// 类的声明 public class Structure { // 方法的声明 public String one(String name) { ………… 方法体 return null ; // 实际中要与返回值类型相对应 } } |
return 语句的作用
1. 结束该方法的执行
2. 想本方法的调用者返回数据
程序入口 main() 方法的声明
Main 方法必须符合四个条件
1. 访问权限: public
2. 静态方法: static
3. 参数限制: main(String[] args)
4. 返回类型: void
例:
1. public static void main(String[] args ) {} 2. public static void main(String args[] ) {} 3. static public void main(String[] args) {} 4. final public static void main(String[] args ) {} |
以上四种方式都是合法的声明主方法的格式
args 是 main 方法的参数,他是一个 String 类型的数组,把这个参数改成其他的名称也是可以的。
此外,由于被 static 修饰的方法默认都是 final 类型,随以在前边加上 final 类型进行修饰也是可以的( final 类型是不能被子类覆盖的)。
另外, main 方法可以重载。尽管不能再次作为程序的入口,但是是合法的方法,能通过编译。
给 main 方法传递参数
当用 java 命令执行 Java 应用程序时,可以在命令行想 main() 方法传递参数,格式为
Java classname [args…]
例:
java Structure args1 args2 |
此时 main 方法中的 args 参数的长度为 2, 值分别是 args1 、 args2
注释语句
在 java 中有三种注释方法
1. //… 从 // 开始到本行结束为注释内容,被编译器忽略
2. /*…*/ 在 /* 之后到 */ 之前的内容全部为注释,被编译器忽略
3. /**…*/ 在 /** 之后到 */ 之前的内容全部为注释,被编译器忽略,但是可以作为 JavaDoc 文档内容
关键字
在 java 中有些单词是不可用的,这些单词被称为关键字,因为在 java 本身就已经用到了这些词语,如果我们再次使用这些关键字的话,会和 java 本身产生冲突,这样编译器不会通过
Java 语言的关键字包括
用于类和接口的生命—— class,extends,implements,interface
包引入和包声明—— import,package
数据类型—— boolean,byte,char,double,float,int,long,short
某些数据类型的可选值—— false,true,null
流程控制—— break,case,continue,default,do,dlse,for,if.return.switch,while
异常处理—— catch,finally,throw,throws,try
修饰符—— abstract,final,native,private,protected,public,static,synchronized,transient,volatile
操作符—— instanceof
创建对象—— new
引用—— this,super
方法返回值类型—— void
所有的关键字都是小写的。
另外还有一些 java 保留字,保留字虽然现在没有作为关键字,但是 java 的后续版本可能用到,那么现在 java 的保留字有 const,goto 。
标识符
标识符是指程序中包、类、接口、方法、变量的名字,那么名字是有一定规范的。
l 标识符的手字符必须是字母、下划线 (_) 、美元符 ( $ ) 、或者为人民币符 ( ¥ )
l 标识符有数字( 0-9 )大小写字母( A-Z )、下划线 (_) 、美元符 ( $ ) 、或者为人民币符 ( ¥ ) 等组成
l 不能把关键字或保留字作为关键字使用
l 标识符没有长度的限制
l 标识符是大小写敏感的 one 和 One 是两个标识符
变成规范
类名和接口名:首字母大写,如果有多个单词组成,那么每个单词的首字母大写,如: ThisIsClass
方法名和变量名:首字母小写,如果由多个单词组成,那么第一个单词首字母小写,其余的单词首字母大写
包名:全部小写
常量名:全部大写,如果由多个单词组成,在没个单词连接处用( _ )链接各个单词
Java 常用开发目录
目录 | 描述 |
src 子目录 | 存放 java 源文件 |
classes 子目录 | 存放编译生成的 java 类文件 |
lib 子目录 | 存放第三方 java 软件的 jar 文件 |
doc 子目录 | 存放各种帮助文档 |
doc/api | 存放 javadoc 文档 |
deploy 子目录 | 存放 java 应用的打包文件—— jar 文件 |
Javadoc 文档
前面说到的注释 /**…*/ 可以作为 javadoc 来使用
Javadoc 用法请另外查询其使用方法,这里不说明。
Java 虚拟机
以后深究
持续未完。。。。。。。。。