Java基础教程.docx

上传人:b****1 文档编号:14543728 上传时间:2023-06-24 格式:DOCX 页数:23 大小:21.53KB
下载 相关 举报
Java基础教程.docx_第1页
第1页 / 共23页
Java基础教程.docx_第2页
第2页 / 共23页
Java基础教程.docx_第3页
第3页 / 共23页
Java基础教程.docx_第4页
第4页 / 共23页
Java基础教程.docx_第5页
第5页 / 共23页
Java基础教程.docx_第6页
第6页 / 共23页
Java基础教程.docx_第7页
第7页 / 共23页
Java基础教程.docx_第8页
第8页 / 共23页
Java基础教程.docx_第9页
第9页 / 共23页
Java基础教程.docx_第10页
第10页 / 共23页
Java基础教程.docx_第11页
第11页 / 共23页
Java基础教程.docx_第12页
第12页 / 共23页
Java基础教程.docx_第13页
第13页 / 共23页
Java基础教程.docx_第14页
第14页 / 共23页
Java基础教程.docx_第15页
第15页 / 共23页
Java基础教程.docx_第16页
第16页 / 共23页
Java基础教程.docx_第17页
第17页 / 共23页
Java基础教程.docx_第18页
第18页 / 共23页
Java基础教程.docx_第19页
第19页 / 共23页
Java基础教程.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java基础教程.docx

《Java基础教程.docx》由会员分享,可在线阅读,更多相关《Java基础教程.docx(23页珍藏版)》请在冰点文库上搜索。

Java基础教程.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2