Java基础教程.docx
- 文档编号:26948273
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:23
- 大小:21.53KB
Java基础教程.docx
《Java基础教程.docx》由会员分享,可在线阅读,更多相关《Java基础教程.docx(23页珍藏版)》请在冰豆网上搜索。
Java基础教程
Java基础教程
1.程序结构
//最基本的JAVA程序必须有一个类,在这里是classbase01
classbase01//类的定义是:
class类名{属性和方法}
{
//在JAVA中,程序入口也是main函数
//main()函数前的限制符顺序必须为publicstaticvoid,参数必须是
//String类型的数组。
以下写法将不被通过
publicvoidstaticmain(String[]args)
{
System.out.println("HelloWorld!
");
}
}
2.类与源文件命名
//类是面向对象程序的处理单元,由(public和private)属性和方法构成。
//对象是类的实例化,通过new声明引入。
类封装数据和方法、可以继承,
//方法和算符可以多态重载。
类有构造和析构函数,用于初始化和收尾。
//
//在同一个JAVA文件中可以定义多个类,但是只有一个类能定义为public
//而且如果一个类被定义为public,这个文件的文件名必须和该public类
//的名字相同。
对于本类,文件必须命名为base02
classA{//该类有属性,未定义方法
inta;
};
classB{//该类有属性,未定义方法
intb;
};
publicclassbase02//该类有一个方法,未定义属性
{
publicstaticvoidmain(String[]args)
{
System.out.println("HelloWorld!
");
}
}
3.数据类型
classcode03
{
publicstaticvoidmain(String[]args)
{
//JAVA的数据类型。
请注意大小写
//一个字节的整型
bytee=3;
System.out.println(e);
//两个字节的整型
shorth=4;
System.out.println(h);
//四个字节的整型
intf=4;
System.out.println(f);
//八个字节的整型
longg=5;
System.out.println(g);
//4个字节的浮点数
floata=11.3f;
System.out.println(a);
//8个字节的浮点数(更加精确)
doubleb=12.3d;
System.out.println(b);
//两个字节的单个字符。
注意定义字符不能用双引号,只能用单引号
charc='s';
Stringss="xiongyong";
System.out.println(c);
//bool变量,用于判断真假。
注意:
true和false不能大写。
booleand=true;
System.out.println(d);
//final关键字为“常量”,意思是不能再被修改。
相当于C++中的const
finalintx=1;
//以下这行将被报错,因为x被定义为final,不能被修改。
x=x+1;
}
}
4.类型转换.0
/******************************************************************
自动类型转换和强制类型转换:
不同的数据类型可以进行混合运算。
在运算过程中,不同数据类型必须首先转
换为相同的数据类型后才能进行运算。
各种数据的转换原则是从低级向高级转
换。
具体如下:
char->byte->short->int->long->float->double
JAVA允许把高级类型转换为低级类型,我们通过强制类型转换实现。
语法同C++。
******************************************************************/
classcode04
{
voidf1()//自动类型转换
{
intnO=2;
floatfO=2.25f;
//以下这行不能被正确编译,因为算出来的结果不可能是整数
//intiResult=nO*fO;
//正确
floatfResult=nO*fO;
System.out.println("混合运算结果为:
"+fResult);
}
voidf2()//强制类型转换
{
intnO=2;
floatfO=2.25f;
floatiResult=(int)(5.5*fO);
System.out.println("强制类型转换结果为:
"+iResult);
}
publicstaticvoidmain(String[]args)
{
code03c3=newcode03();
c3.f1();
c3.f2();
}
}
5.运算符
/**************************************************************
+运算符和类型转换
+对于数字来说是求和运算。
两个short类型数据相加,结果被升级为int类型。
+对于字符串来说连接两个字符串的运算
**************************************************************/
classcode05
{
voidf_add_string()
{
Stringa="hello";
Stringb="world";
//请观察输出结果,体会字符串+字符串的功能
System.out.println("a+b="+a+b);
}
voidf_add_number()
{
shortx=1,y=2,z;
intp;
//错误代码。
两个short类型数据相加,结果将被升级为int类型。
而z却还是short类型
z=x+y;
//正确代码
z=(short)(x+y);
System.out.println("1+2="+z);
p=x+y;
System.out.println("1+2="+p);
}
publicstaticvoidmain(String[]args)
{
code04c4=newcode04();
c4.f_add_string();
c4.f_add_number();
}
}
6.数组
/****************************************************************
JAVA允许在程序中调整数组中元素的个数
*****************************************************************/
classcode06
{
publicstaticvoidmain(String[]args)
{
intmyArray[]=newint[6];//数组用new声明
inti;
for(i=0;i myArray[i]=i; System.out.println(myArray[i]); } //重新定义数组,注意,myArry以前的内容被重置了 myArray=newint[10]; for(i=0;i //重新定义数组 //myArray[i]=i*10; System.out.println(myArray[i]); } } } 7.控制: 冒泡排序 /***************************************************************** 数组 这是一个常见的“冒泡排序”的程序,用于把几个数按大小进行排序 ******************************************************************/ classcode07 { publicstaticvoidmain(String[]args) { //定义一个包含n个数的数组 intnArray[]={11,-5,100,56,321}; //JAVA是纯面向对象的语言,对于任何一个数组元素,JAVA都把它看 //做一个数组类型的对象,length是这个类的一个成员变量,它的值等于 //该对象中数组元素的个数。 所以我们能通过nArray.length获得这个数组 //nArray里面包含元素的个数。 对于本题,它等于5。 intsize=nArray.length-1; for(intj=0;j for(inti=0;i if(nArray[i]>nArray[i+1]){//若逆序则交换数据 inttmp=nArray[i]; nArray[i]=nArray[i+1]; nArray[i+1]=tmp; } } } for(inti=0;i System.out.println(nArray[i]+""); } } } 8.控制: 显示素数 /* *显示1到x之间的所有素数 */ classcode08 { //判断一个数x是不是素数 publicbooleanis_sushu(intx) { for(inti=2;i if(x%i==0){ returnfalse; } } returntrue; } //显示1到x之间的所有素数 publicvoiddisp(intx) { for(inti=1;i<=x;i++){ if(is_sushu(i)){ System.out.println(i); } } } //程序入口 publicstaticvoidmain(String[]args) { code12c12=newcode12(); c12.disp(1000); } } 9.传简单参数的函数 /* *使用简单数据类型做为参数时的函数传值方式 *当参数为简单数据类型时,参数传值使用复制传值方式,也就是说作为 *参数传进函数的值只是传进来值的一个副本 */ classcode09 { publicstaticvoidmain(String[]args) { System.out.println("HelloWorld! "); intj=10; //本例中calculate函数传递的是简单数据类型参数j,所以使用复制 //传递方式,函数中并没有改变原来j的内容 calculate(j); System.out.println("===================================="); System.out.println("执行完calculate函数后j的值为: "+j); } staticvoidcalculate(intj)//静态函数属于类,无需声明对象,可直接调用 { for(inti=0;i<10;i++){ j++; } System.out.println("calculate函数中j的值为: "+j); } } 10.传复杂参数的函数 /* *使用复杂数据类型做为参数时的函数传值方式 * *当参数为复杂数据类型时,参数传值使用引用传值方式,也就是说作为参数传进函数*的值只是传进来值的一个别名,直接效果就是函数中对参数做的修改直接就影响到原*始的值 * */ classcode10 { publicstaticvoidmain(String[]args) { Stringa="hello"; System.out.println("初始阶段数组a的值为: "+a); calculate(a); System.out.println("调用calculate函数后,数组a的值为: "+a); System.out.println("由此可知,在本函数中,参数是作为复杂变量的别名传进函数的,证据就是在函数中确实改变了函数外部变量a的值"); } staticvoidcalculate(Stringj) { j="world"; System.out.println("calculate函数中参数数组j的值为: "+j); } } 11.类与对象 //类是面向对象程序的处理单元,由(public和private)属性和方法构成。 //对象是类的实例化,通过new声明引入。 类封装数据和方法、可以继承, //方法和算符可以多态重载。 类有构造和析构函数,用于初始化和收尾。 classcode11//基础类 { Aa=newA();//类的属性,这里还含有初始化 intm=20;//另一个属性 publicbase09()//构造函数,与类同名 { System.out.println("A.i="+a.i); System.out.println("m="+m); System.out.println("============================="); change(a); change(m); System.out.println("A.i="+a.i); System.out.println("m="+m); } publicstaticvoidmain(String[]args)//入口函数 { newbase09();//实例化一个对象,引发其构造方法执行 } voidchange(Aaa)//基础类的一个方法(函数) { aa.i+=100; } voidchange(intx)//基础类的另一个方法(函数) { x+=100; System.out.println("函数内x="+x); } classA//嵌套的另一个类,恰巧只有属性,没有方法 { inti=10; }; } 12.函数返回值 /*函数的返回值 * *return语句的作用是把一个确定的值返回给调用它的语句,这个值可以是 *简单变量,也可以是对象。 如果返回值是对象,则返回的实际上是对象的 *地址。 这个情况和参数传递相同 */ classcode12 { //求x*x+2(y+1)+3的函数 staticfloatmathF1(floatx,floaty) { floatz=x*x+2*++y+3; //我们可以这样写返回值 returnz; } staticfloatmathF2(floatx,floaty) { //我们也可以这样写返回值(直接返回一个运算表达式的结果) returnx*x+2*++y+3; } publicstaticvoidmain(String[]args) { //System.out.println(a); //我们可以这样获得返回值 floatz=mathF2(4f,5f); System.out.println("运算结果="+z); //我们也可以这样获得返回值 System.out.println("运算结果="+mathF1(4f,5f)); } } 13.函数嵌套 /* *函数的嵌套 * *函数自己调用自己叫做嵌套 */ classcode13 { staticinti=0; //这是一种不好的嵌套,在函数体中无条件的调用了自己。 导致的结果就是 //无限的循环 staticvoidcout_line() { System.out.println("============================="); cout_line(); } //一种安全的嵌套,有条件的调用自己,不会导致死循环 staticvoidcout_line2() { System.out.println("============================="); i++; if(i<10) { cout_line2(); } } publicstaticvoidmain(String[]args) { //请注释掉这个函数,因为它将导致死循环,函数永远不结束 cout_line(); cout_line2(); } } 14.输入输出 /*********************************************************** *Java中输入用BufferedReader对象,输出用System.out.println ************************************************************/ importjava.io.*; classbase14{ publicstaticvoidmain(Stringargs[]){ Strings; //创建一个BufferedReader对象从键盘逐行读入数据 InputStreamReaderisr=newInputStreamReader(System.in); BufferedReaderbr=newBufferedReader(isr); //try/catch是异常处理,catch部分处理try部分的异常(错误) try{//每读入一行后向显示器输出 s=br.readLine(); while(! s.equals("")){//String的equal方法用于字串比较 System.out.println("Read: "+s); s=br.readLine(); } br.close();//关闭输入流 }catch(IOExceptione){//捕获可能的IOException. e.printStackTrace(); } } } 15.文件操作 /*************************************************************** *Java中用BufferedReader读文件,用PrintWriter写文件 ****************************************************************/ importjava.io.*; publicclassbase15{ publicstaticvoidmain(String[]args){ //Part1: Fileread Stringfname="base15.java"; Filef=newFile(fname); try{ FileReaderfr=newFileReader(f); BufferedReaderbr=newBufferedReader(fr); Strings=br.readLine(); while(s! =null){ System.out.println("读入: "+s); s=br.readLine(); } br.close();//关闭缓冲读入流及文件读入流的连接. }catch(FileNotFoundExceptione1){ System.err.println("Filenotfound: "+fname); }catch(IOExceptione2){ e2.printStackTrace(); } //Part2: Filewrite Filefile=newFile("tt.txt"); try{ InputStreamReaderisr=newInputStreamReader(System.in); BufferedReaderin=newBufferedReader(isr); FileWriterfw=newFileWriter(file); PrintWriterout=newPrintWriter(fw); //从键盘逐行读入数据输出到文件 Strings=in.readLine(); while(! s.equals("")){ out.println(s); s=in.readLine(); } in.close();//关闭BufferedReader输入流. out.close();//关闭连接文件的PrintWriter输出流. }catch(IOExceptione){ System.out.println(e); } } } 16.综合: Record操作 importjava.io.*; /** *ADriverfortestingtheRecordclass *@authorPingFeng *@versionJune2012 */ publicclassbase16 { publicstaticvoidmain(Stringargs[]) { charchoice; RecordtheRecord; theRecord=newRecord(); Strings="0"; InputStreamReaderisr=newInputStreamReader(System.in); BufferedReaderbr=newBufferedReader(isr); try{ do{ System.out.print("\n"+"RecordDriver" +"\n"+"============" +"\n"+"1.PopulatetheRecord" +"\n"+"2.DeletetheRecord" +"\n"+"3.Showas
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 基础教程