第1页共40页1第1章1、Java语言是面向对象的程序设计语言。2、Java语言是一种简单的、面向对象的、分布式的、健壮的、安全的、体系结构中立的、可移植的、编译解释型的、高性能的、多线程的、动态的程序设计语言。平台无关3、Java的开发环境和开发工具:JDK(JavaDevelopmentKit):将Java的源代码编译成字节代码;执行Java的应用程序;执行Java的应用小程序。FreeJava:Java程序的编辑、编译、执行。4、Java的应用程序Application的特点:包含一个主方法main(),可以独立运行。5、Java的应用小程序Applet的特点:引入两个包,继承小程序类,嵌入网页文件中运行。6、最简单的Java的应用程序。publicclassHello{publicstaticvoidmain(Stringargs[]){System.out.println(你好,欢迎学习Java编程语言。);}}说明:(1)Hello类。(2)包含主方法main的类是主类,访问权限是public。(3)用主类的名称Hello为JAVA的源程序命名。(Hello.java)(4)一个程序文件中可以包含多个类,只有一个类是主类。(5)主方法的访问权限是public,特性是static,返回值类型是void。(6)主方法的方法参数是字符串类String的类对象数组args[]。(7)调用System类的out子类的方法println(),在标准的输出设备上输出一行文字你好,很高兴学习Java,并换行。7、最简单的Java的应用小程序。importjava.applet.Applet;importjava.awt.Graphics;第2页共40页2publicclassWelcomeextendsApplet{publicvoidpaint(Graphicsg){g.drawString(WelcometoJavaProgramming!,20,25);}}说明:(1)引入applet包的Applet类(小程序类)。(2)引入awt包的Graphics类(几何绘图类)。(3)Welcome类,继承于Applet类。(4)一个程序文件中可以包含多个类,继承于Applet的类是主类,访问权限是public。用主类名称Welcome作为JAVA源程序的名称。(5)paint()方法实现在窗口内的输出,Graphics类的类对象g作为方法的参数。(6)通过类对象g调用Graphics类的drawString方法,在指定坐标位置上输出一行文字。(7)在屏幕横坐标20,纵坐标25处输出字符串WelcometoJavarogramming!。(8)为了运行小应用程序,需要编写一个网页文件:(Welcome.html)htmlappletcode=Welcome.classwidth=275height=55/applet/html标识applet有三个参数:code=JAVA的字节代码文件名,width=窗口的宽度,height=窗口的高度。第3页共40页3第2章1、Java编程的基本单位是编写一个类,包括类的成员变量和成员方法。变量描述属性,方法实现功能。2、Java对数据类型要求比较严格。3、数据类型、运算符和表达式。//输出算术等式。publicclassMath{publicstaticvoidmain(Stringargs[]){intA,B,C;//声明变量。A=123;//A变量赋初值。B=456;//B变量赋初值。C=A+B;//计算表达式的值,赋给目标变量C。//输出算术表达式。装配一个字符串,输出计算结果。System.out.println(+A+++B+=+C);//按算术竖式格式输出。System.out.println();System.out.println(+A);System.out.println(++B);System.out.println(--------);System.out.println(+C);}}4、屏幕输出和颜色变化。//彩色输出importjava.applet.Applet;importjava.awt.Graphics;importjava.awt.Color;//引入awt包的Color类(颜色类)//或:importjava.awt.*;引入awt包的所有的类publicclassWelcome_2extendsApplet{第4页共40页4publicvoidpaint(Graphicsg){intx,y,dy;x=20;y=25;dy=20;//调用Graphics中的setColor()方法设置颜色。//使用颜色常量Color.red。g.setColor(Color.red);g.drawString(WelcometoJavaProgramming!,x,y);//使用另一种颜色,在下面再输出一行。y=y+dy;g.setColor(Color.blue);g.drawString(WelcometoJavaProgramming!,x,y);}}第4章数组1、数组声明:type[]数组名;type[][]数组名;(一维数组或二维数组)数组创建:数组名=newtype[整型表达式];(允许动态分配内存)数组长度属性:数组名.length数组访问:数组名[index]类对象数组:类名称[]数组名;2、数组的使用。//数组的使用publicclassArrayTest{publicstaticvoidmain(String[]args){double[]array;//声明一维数组array,元素的数据类型是double。intn;//一维数组的元素个数n。n=4;//n赋值。//使用new按照double的数据长度为一维数组array分配n个元素的内存。array=newdouble[n];//数组元素赋值array[0]=1.1;array[1]=1.22;array[2]=1.333;第5页共40页5array[3]=1.4444;//输出一维数组的元素,使用数组的长度属性array.length控制循环。System.out.println(输出一维数组的元素:);for(inti=0;iarray.length;i++)System.out.print(+array[i]);//print()的功能是连续输出不换行。System.out.println();//输出结束后再换行。double[][]B;//声明二维数组B。intm,k,i,j;m=4;n=6;//二维数组有m行,n列。B=newdouble[m][n];//为二维数组B分配内存。//该二维数组的元素数值是1到m*n。k=1;//B.length是二维数组B的行数。for(i=0;iB.length;i++){//B[i].length是二维数组B的第i行的元素个数。for(j=0;jB[i].length;j++)B[i][j]=k++;}//输出输出二维数组的元素。行数是B.length,每行的列数是B[i].lengthSystem.out.println(输出二维数组的元素:);for(i=0;iB.length;i++){for(j=0;jB[i].length;j++)System.out.print(+B[i][j]);//同一行的连续输出。System.out.println();//每行换一次行。}}}第6页共40页63、杨辉三角形//屏幕窗口输出杨辉三角形importjava.awt.*;importjava.applet.*;publicclassYHSJXextendsApplet{publicvoidpaint(Graphicsg){int[][]YH;//二维数组YH存放杨辉三角形的系数。intn;//输出n阶的杨辉三角形。inti,j;intx0,y0;//第一行第一个元素的位置坐标。intdx,dy;//每个元素的横向宽度和纵向高度。intx,y;//每个元素的输出坐标。x0=150;y0=40;dx=40;dy=30;n=6;YH=newint[n+1][];//n阶杨辉三角形有n+1行,每行列数不同。//产生杨辉三角形。for(i=0;iYH.length;i++){YH[i]=newint[i+1];//第i行有i+1个元素。YH[i][0]=YH[i][i]=1;//每行头尾元素值是1。//从第2行起,每个元素值是上一行对应两个元素值之和。if(i=2)for(j=1;jYH[i].length-1;j++)YH[i][j]=YH[i-1][j]+YH[i-1][j-1];}//输出杨辉三角形。for(i=0;iYH.length;i++)for(j=0;jYH[i].length;j++){//计算每个元素的坐标,并输出。第7页共40页7x=x0+j*dx-i*dx/2;y=y0+i*dy;g.drawString(+YH[i][j],x,y);}}}第5章类和对象1、构造方法(见教材)。2、静态成员(见教材)。3、方法重载(见教材)。4、编写完成特定功能的方法。5、时间类publicclassTime{//类的成员变量:小时、分、秒,私有的,指定取值范围。privateinthour;//0-23privateintminute;//0-59privateintsecond;//0-59//公有的无参构造方法,初值均为0。publicTime(){setTime(0,0,0);}//公有的更改成员变量数值的方法,小时、分、秒分别赋值h、m、s。数值错误改成0。publicvoidsetTime(inth,intm,ints){hour=((h=0&&h24)?h:0);minute=((m=0&&m60)?m:0);second=((s=0&&s60)?s:0);}}第8页共40页8第6章类和对象的扩展1、Java只允许单继承。this指本类,super指父类。2、抽象方法:仅有方法名称、方法返回值类型、方法参数,没有方法体。抽象类:含有抽象方法的类。抽象类被继承后,在派生类(子类)中重写抽象方法(给出方法体)。3、接口:包含抽象类和常量。接口可以继承。某个类允许执行多个类。4、包:完成相关功能的一批类和接口组织成一个包。包的创建:package。包的引入:import。这两种语句必须放在类语句的前面。5、异常处理。try{}catch(Exceptione){}try块内放置:(1)需要检测是否出错的语句;(2)线程类的时间暂停语句:Thread.sleep(ms);(3)文件输入输出语句。catch块放置:异常处理语句。括号内是异常处理类的类对象。第7章Java常用系统类1、Java常用包(见教材)。2、字符串类(自学)。3、Math类。随机数函数:Math.random(),返回大于等于0,小于1的双精度的均匀分布随机数。4、自定义的随机数函数:Random(inta,intb),返回a,b之间的整型的均匀分布随机数。intRandom(inta,intb)第9页共40页9{intra;ra=(int)(Math.random()*(b-a+1))+a;returnra;}第8章Java输入输出系统1、字节流:按单个字节存取,适应于键盘输入的文本数据。格式流:按数据类型存取,适应于程序生成的格式数据。2、应用程序允许读写文件,应用小程序不允许读写文件。3、读写文本文件。//文本文件读写。importjava.io.*;publicclassJ_Example{publicstaticvoidmain(Stringargs[]){intb;intn1=0;//字节数intn2=0;//行数try{//输入字节流对象f1,输入文件名Readme.txtFileInputStreamf