JAVA语言基础组成文档格式.docx
《JAVA语言基础组成文档格式.docx》由会员分享,可在线阅读,更多相关《JAVA语言基础组成文档格式.docx(40页珍藏版)》请在冰豆网上搜索。
![JAVA语言基础组成文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/26/b6e1513e-365b-4aca-9359-937bcab12d4a/b6e1513e-365b-4aca-9359-937bcab12d4a1.gif)
class文件
//显示程序运行结果
1关键字
java关键字
概述
关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。
Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名。
一个Java语言中的关键字,用在类的声明中来指明一个类是不能被实例化的,但是可以被其它类继承。
一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现。
break
一个Java的关键字,用来改变程序执行流程,立刻从当前语句的下一句开始执行从。
如果后面跟有一个标签,则从标签对应的地方开始执行。
case
Java语言的关键字,用来定义一组分支选择,如果某个值和switch中给出的值一样,就会从该分支开始执行。
catch
Java的一个关键字,用来声明当try语句块中发生运行时错误或非运行时异常时运行的一个块。
char
Java语言的一个关键字,用来定义一个字符类型。
int
Java语言的一个关键字,用来定义一个整型类型数据或变量。
for
Java语言的一个关键字,是循环结构中经常使用的一个关键字,其形式为:
for(表达式1;
表达式2;
表达式3)
{
其中表达式1用于给相应的变量赋值,表达式2是条件判断语句,表达式3循环控制语句。
if
Java语言的一个关键字,是用来判断条件用的。
break
Java语言的一个关键字,用来中断程序的执行,一般用在循环语句中,用来跳出本层循环,转去执行下面的程序。
abstract
boolean
byte
class
continue
default
do
double
else
extends
final
finally
float
for
if
implements
import
instanceof
int
interface
long
native
new
package
private
protected
public
return
short
static
super
switch
synchronized
this
throw
throws
transient
try
void
volatile
while
详细介绍
类和接口
abstract标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。
class类,
格式为:
class类名extends父类名称{
属性声明及初始化;
方法声明及方法体;
implements实现
import导入
interface接口。
interface接口名[extends父接口列表]{
[public][static][final]属性类型属性名=常量值;
[public][abstract]返回值类型方法名(参数列表);
package打包,声明仅仅指定了文件中所定义的类属于哪一个包。
static静态属性,用来描述一个类下所有对象共享的属性。
throws扔,一个方法中发生异常但没有捕获,在方法头声明,由方法调用者处理。
//throw后不允许有其他的语句。
void空
数据类型
boolean值只能是true和false,而不能用0和1代替,并且一定要小写。
byte字节型
char字符型
double双精度浮点型
float单精度浮点型
int整形
long长整形
short短整形
流程控制
break中断switch语句的执行,在循环语句中,同样也是结束循环语句的执行。
continue只跳出本次循环,还要继续执行下一次的循环。
break完全跳出所在或者是所标记的循环。
do和while连用,
do{
循环体;
}while(循环条件);
//不要忘记分号;
表达式3){
循环体;
}
final如果不希望某个类被其他的类继承,在这种情况下需要使用修饰符final来说明一个类是终极的,不能够做父类。
if(条件表达式)
{功能代码块1}
else
{功能代码块}//条件表达式返回值为真,则执行功能块,否则执行else功能块。
return
switch
switch(表达式){
case值1:
功能代码1;
[break;
]
case值2:
功能代码2;
];
……
case值n:
功能代码n;
default:
功能代码others;
while
while(循环条件)
{循环体;
访问范围
protected表明被它修饰的成员变量为保护类型,在同一个包里和public类型是一样的,也是能够访问到的。
但是如果在不同包里的protected类型的成员变量就只能通过子类来访问,这个修饰符是区别于其他的修饰符的。
public公共的,他表示某个变量或者函数是全局函数,例如:
publicinta表示a这个整型变量是全局变量。
private私有地,Private语句在模块级别中使用,用于声明私有变量及分配存储空间。
类的实例
new该子句创建一个新的对象实例。
New子句必须指定一个可以用来创建实例的已定义类。
可以在声明语句或赋值语句中使用New。
执行该语句时,它将调用指定类的构造函数,传递提供的所有参数。
this引用属性,当方法中的参数和某个属性有相同的名字时,这是局部变量优先,属性被隐藏。
然而,有时为了能够在方法中以用隐藏的属性,就可以用this区分,由this引用的就是属性,没有this引用的则是局部变量或者是参数。
super被继承的类称为超类,继承的类称为子类。
其它
1、catch捕获错误的语句。
2、finally为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性,无论有没有异常发生都执行代码。
3、native是方法修饰符。
Native方法是由另外一种语言(如c/c++,FORTRAN,汇编)实现的本地方法。
因为在外部实现了方法,所以在java代码中,就不需要声明了,有点类似于接口方法。
Native可以和其他一些修饰符连用,但是abstract方法和Interface方法不能用native来修饰。
4、strictfp修饰类和方法,意思是FP-strict,精确浮点,符合IEEE-754规范的。
当一个class或interface用strictfp声明,内部所有的float和double表达式都会成为strictfp的。
Interfacemethod不能被声明为strictfp的,class的可以。
5、try当try子句中的某行代码发生异常,会终止程序的运行,跳转到catch子句来执行。
6、transilent变量修饰符。
标记为transient的变量,在对象存储时,这些变量状态不会被持久化。
当对象序列化的保存在存储器上时,不希望有些字段数据被保存,为了保证安全性,可以把这些字段声明为transient。
7、volatilevolatile修饰变量。
在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。
而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。
这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
8、goto
java中关键字表中虽然没有goto关键字但是在声明变量时是不可以使用该单词的
2标示符
标识符概念
Java语言中,对于变量,常量,函数,语句块也有名字,我们统统称之为Java标识符.
标识符组成
Java标识符由数字,字母和下划线(_),美元符号($)组成。
在Java中是区分大小写的。
而且还要求首位不能是数字。
最重要的是,Java关键字不能当作Java标识符
3注释
JAVA注释主要种类
对于Java注释我们主要了解三种:
1, //注释一行
2, /*......*/注释若干行
3, /**……*/文档注释
说明
/**......*/注释若干行,并写入javadoc文档
通常这种注释的多行写法如下:
/**
*.........
*/
javadoc提取注释的工具/**注释内容*/(其余两种和C++注释一样).
注:
注释内容即不会被编译的内容,只是解释说明
4,内置注释类型
Override,Deprecated,SupressWarning
A、Override,只能用于方法(不能用于类,包括声明或者其他结构)
作用:
可以保证编译时Override函数的声明正确性。
用法:
@Override
publicvoidfun(){……}
B、Deprecated同样只能用于方法。
对不应再使用的方法进行注解。
@Deprecatedpublicvoidfun{……}//这个注释与函数在同一行。
C、SupressWarnings可以注释一段代码。
关闭特定的警告信息。
例如你在使用泛型的时候未指定类型。
@SupressWarnings(value={"
unchecked"
})
……代码
注释@deprecated与@Deprecated的区别
用@Deprecated注释的程序元素,不鼓励程序员使用这样的元素,通常是
因为它很危险或存在更好的选择。
在使用不被赞成的程序元素或在不被赞成的
代码中执行重写时,编译器会发出警告。
其次,请注意标题,这两个标记有大小写之分,一个是D,一个是d。
源代码标记@Deprecated是在JDK1.5中作为内置的annotation引入的,用于表
明类(class)、方法(method)、字段(field)已经不再推荐使用,并且在以后的
JDK版本中可能将其删除,编译器在默认情况下检测到有此标记的时候会提示
警告信息。
Java注释中的@deprecated用于在用Javadoc工具生成文档的时候,标注此类/
接口、方法、字段已经被废止。
不过后者还有一个功能就是和源代码标记@Deprecated同样的功能,在JDK1.4
版本之后,该功能被@Deprecated所取代。
java.lang.Deprectated是J2SE5.0中标准的Annotation型态之一,它对编译
器说明某个方法已经不建议使用,如果有人试图使用或重新定义该方法,必须
提出警示讯息。
举个例子来说,您可能定义一个CustomObject类别,并在当中定义有
getSomething()方法,而在一段时间之后,您不建议使用这个方法了,并要
将这个方法标示为deprectated,您可以这么作:
CustomObject.java
publicclassCustomObject{
@DeprecatedpublicStringgetSomething(){
return"
something"
如果有人试图在继承这个类别后重新定义getSomething(),或是在程序中呼叫
使用getSomething()方法,则进行编译时,就会出现这个警讯:
Note:
SubCustomObject.javausesoroverridesadeprecatedAPI.
Recompilewith-Xlint:
deprecationfordetails.想要知道详细的警
讯内容的话,可以在编译时加上-Xline:
deprecation自变量,例如:
>
javac-Xlint:
deprecationSubCustomObject.java
SubCustomObject.java:
5:
warning:
[deprecation]getSomething()in
CustomObjecthasbeendeprecated
object.getSomething();
^
1warningjava.lang.Deprecated是个Markerannotation,简单的说就是用于
标示,annotation名称本身即包括了要给工具程序的信息。
java注释例子
importjava.awt.*;
//调用awt包
importjava.applet.*;
importjava.awt.Color;
//调用awt中的Color类
publicclassextendsAppletimplementsRunnable{
Imagebuffer;
//定义图像对象
GraphicsgContext;
//定义图形上下文
Threadanimate;
//定义一个线程
Strings="
这是文字动画"
intw,h,x,y,size=12;
//定义整形变量并赋值
*Applet初始化
*
*@seejava.applet.Applet
*@return无
publicvoidinit(){
w=getWidth();
//返回组件的当前宽度。
h=getHeight();
//返回组件的当前高度。
buffer=createImage(w,h);
//创建一个宽W高H的图形区域。
(创建一幅用于双缓冲的、可在屏幕外绘制的图像)
gContext=buffer.getGraphics();
//获得图像使用的图形上下文
gContext.setColor(Color.blue);
//设置图形上下文的当前颜色为蓝色
*Thread线程启动操作
publicvoidstart(){
//开始animate线程
if(animate==null){
animate=newThread(this);
animate.start();
*Thread线程终止时的处理操作以释放资源
publicvoidstop(){
//结束animate线程
if(animate!
=null)
animate=null;
*Runnable接口的实现
*执行所需的操作
publicvoidrun(){
while(true){
//X,Y的坐标设定
x=(w-s.length()*size)/2;
y=(h+size)/2;
gContext.setFont(newFont("
宋体"
Font.PLAIN,size));
gContext.drawString(s,x,y);
//绘制一串字符s内容的文本
repaint();
//重画图形
try{
animate.sleep(50);
//线程休眠50ms
}catch(InterruptedExceptione){//捕获异常
gContext.clearRect(0,0,w,h);
//通过使用当前绘图表面的背景色进行填充来清除指定的矩形.0-要清除矩形的x坐标。
0-要清除矩形的y坐标。
w-要清除矩形的宽度。
h-要清除矩形的高度。
if(++size>
40)
size=12;
*Applet画图操作方法
publicvoidpaint(Graphicsg){
g.drawImage(buffer,0,0,this);
//绘制指定的buffer的图像
*Applet刷新操作,重新绘制图形
publicvoidupdate(Graphicsg){
paint(g);
//重新调用paint函数绘制图形
作用
通过注释提高Java源程序代码的可读性;
使得Java程序条理清晰,易于区分代码行与注释行。
另外通常在程序开头加入作者,时间,版本,要实现的功能等内容注释,方便后来的维护以及程序员的交流。
速算24游戏
规则如下:
1、点击“开始游戏”按钮,游戏开始,系统会发出四张牌
2、并把组合的表达式(四张牌的四则混合运算表达式)输入到输入框里(最终结果=24)
3、点击“确定”按钮,游戏将会计算你输入的表达式是否正确,并且给出提示
4、如果输入的表达式不正确,则会让用户重新输入,如果输入的表达式正确,则重新开始游戏
猜数字游戏加注释
importjava.util.Random;
//一上来导入包不用说了吧
publicclassCaishuzi{
//服务器端口号8181
staticfinalintPORT=8181;
//声明一个服务器套接字
ServerSocketserverSocket;
//客户端套接字
Socketsocket;
//数据输入流
DataInputStreamnetIn;
//数据输出流
DataOutputStreamnetOut;
//随机数的数组
intrandomNum[];
//游戏等级
intlevel=0;
publicCaishuzi(){//猜数字的构造函数
initRandomNum();
waitConnect();
privatevoidinitRandomNum(){//初始化随机数
randomNum=newint[5];
//数组初始化,大小为5
Randomran=newRandom();
//随机数类
for(inti=0;
i<
5;
i++){
randomNum[i]=ran.nextInt(100);
//生成5个随机数,范围0~99
//
privatevoidwaitConnect(){//等待客户端连接
BufferedReaderansiIn=newBufferedReader(newInputStreamReader(
System.out.println("
服务器启动."
);
serverSocket=newServerSocket(PORT);
//服务器套接字
等待客户端连接......"
socket=serverSocket.acce