Java 基础语法详解
一.程序结构:
二.一些基础语法
1 一个源文件可以写多个类,每个类编译后都会生成一个字节码文件
2 一个源文件可以写多个类,但只能有一个public类
3 源文件名必须跟public类的类名一致
4 一个源文件里可以不包含public的类,此时源文件名不需要跟任何一个类名相同
三.标志符,关键字
1 何为标志符
2 标志符的语法规定(见名知意)
1)标志符第一个字母只能是大小字母,$ , _
2)标志符第一个字母之后的只能是大小字母,$ , _,数字
3)标志符的长度没有限制
4)标志符不能与关键字相同
举例(以下的标识符合法吗?)
HelloWorld
class
_983
data#
$128
class FirstJava{…}
3 关键字
关键字是java已经占用一些特殊符号,这些特殊符号被赋予了特定的涵义,开发人员不能用它来做标志符
关键字都是小写
true,false,null三个也是赋予了特殊含义,但不是关键字
goto,const是一个保留关键字,暂时java语言没有使用它,但是开发人员也不够用它
abstract boolean break byte case catch char class continue default do double else extends enum false final finally float for if implements import instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try void volatile while |
四.标识符的命名规范
遵守一定的命名规则,可以让程序更具有阅读性
命名规则的第一要则就是见名知义
面向对象:类名:StudentTest,变量名:studentTest,方法名跟变量名命名方法一样;包名:com.tocean.cn(全小写)
面向过程:student_test sql
java领域的命名,一般采用驼峰式命名(不成文的规则)
类名:首字母大写,以后的每个单词的第一个字母大写,其它小写,如HelloWorld
方法名:首字母小写,以后的每个单词的第一个字母大写,其它小写,例如getName()
变量:与方法名一样
包名:所有包名都是小写,一般采用域名倒转,例如com.xxxx.xxxx;
public class StudentDome
{
studentName
}
五.注释和javadoc
1 注释是什么
备注和解释,用来说明解释我们的代码是什么的功能,完成什么事情
注释不会包含在编译后的字节码文件中
2 为什么要注释
方便未来的维护,包括自己和其他维护人员
3 java是如何注释
1)单行注释 //
2)多行注释 /* ..... */
3)文档注释 /** .... */ 一般写在类、成员变量,方法的声明上
javadoc命令生成api帮助文档
javadoc -d E:\doc -author -version TestComments.java
-d:E:\doc表示文档生成到E:\doc。
-author表示生成作者信息
-version 表示生成版本信息。
六.package
1 何为package
package是用来声明程序的包
2 为什么需要package
在开发中,我们的程序文件非常多,可能有成千上百程序文件,这些放在一个文件夹下,管理起来就非常不方便,另外一个缺点就是我们2个类名不能相同。所以我们就需要用package来组织这些类
1)将不同功能的类归在不同的文件夹下,例如连接数据库的所有类放dao文件夹下,然后将处理实际业务的相关类放置在service文件下
2)分模块来组织类,每个模块对应一个包,产品模块的相关类放在product文件夹下,订单模块相应的类放在order文件下
3)类名相同,但功能不同,放在不同的包下
3 如何声明package
在所有代码的前面使用
package 包名;//全小写 域名的倒转
4 一般情况下,包的命名规范
1)唯一,一般情况下用域名的倒转,比如www.gongsi.com,声明包的时候就可以
pakcage com.gongsi.qms.dao;
2) 全部小写
5 javac -d
-d 参数 有2个作用
1) 生成包对应的层级文件夹
2)指定放置的位置
例如:javac -d E:\ TestPackage.java
6 package使用的规则和注意事项
1)一定在第是一行
2)包的定义只能定义一次
3)声明了包的类,编译后的字节码必须处在包相应的文件夹下,该类才能被加载
4)声明包,运行时就必须在类名的前面加上包名(完整限定名=包名.类名)
5)我们的类路径需要设置到顶级包的上一层就可以,不要进到到里面,此时就可以在任何位置上运行该类。
6)如果类路径中只有. (.表示当前路径)则必须转换cd到顶级包的上一层目录才能运行。
package com.gongsi.corejava.ch02;
public class TestPackage{}
com\gongsi\corejava\ch02\TestPackage.class
假设放置到E:
E:\com/gongsi/corejava/ch02/TestPackage.class
set classpath=.;E:\com/gongsi/corejava/ch02/ (错误)
set classpath=.;E:\ (正确)
其实包只是用来对字节码文件(.class)的管理,并不是用来对源码文件管理
七.import
1 何为import
导入的意思,用来导入使用到的另一个包中的类
2 为什么 用import
我们的源文件里使用了另外一个包中定义的类,需要将这个类import到当前文件里
当我们运行字节码文件的时候,类加载器就会去寻找对应包中的类,然后加载进来
3 如何使用import
在package后面使用
import pkg2.Student;
4 系统默认导入
1) 会默认导入同一个包中的类
2) 会默认导入java.lang.*; (可以在jdk/jre/lib/rt.jar中找到这个包)
5 经常遇到错误
原因基本上
1)没有导入用到的类
2)没有正确的导入
3)有导入,但是类路径下找不到这个类
八.常量和变量
(1)
1 何谓常量
不可变化量叫常量,值是确定的
2 声明常量
常量不能单独存在,只能和其它表达式一起连用
"HelloWorld"
1
true
(2)
1 何为变量,可以把变量看做一个容器
未来可以改变的量,变量其实就是内存中的一些存储单位,当声明一个变量时,实际上就是在内存中分配一块存储区域给它
2 变量三要素
1)类型 - 决定分配给它的存储空间的大小,强类型语言
2)名称 - 名称决定我们后面代码如何使用(找到)这块存储空间
3)作用范围 - 决定了它的有效使用的范围
3 如何声明变量
int i =10;//i就是变量,10常量
i =11;