您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 《JAVA基础教程》第三章Java程序设计基础
第三章Java程序设计基础3.1Java编程概况现在你可以复习一下Java语言的背景材料,它的基本结构象C/C++,但任何用面向过程语言编写过程序的人都可以了解Java语言的大部分结构.3.1.1程序结构Java语言的源程序代码由一个或多个编译单元(compilationunit)组成,每个编译单元只能包含下列内容(空格和注释除外):*一个程序包语句(packagestatement)*入口语句(importstatements)*类的声明(classdeclarations)*界面声明(interfacedeclarations)每个Java的编译单元可包含多个类或界面,但是每个编译单元最多只能有一个类或者界面是公共的。Java的源程序代码被编译?reg;后,便产生了Java字节代码。Java的字节代码由一?copy;不依赖于机器的指令组成,这?copy;指令能被Java的运行系统(runtimesystem)有效地解释。Java的运行系统工作起来如同一台虚拟机。在当前的Java实现中,每个编译单元就是一个以.java为后缀的文件。每个编译单元有若干个类,编译后,每个类生成一个.class文件。.class文件是Java虚拟机能够识别的代码。3.1.2注释三种类型如下://注释一行/*一行或多行注释*//**文档注释**/文档注释一般放在一个变量或函数定义?reg;前,指示在任何自动生成文档系统中调入。这?copy;注释都是声明条目的描述.。3.1.3标识符变量,函数,类和对象的名称都是标识符,程序员需要标识和使用的东西都需要标识符。在Java语言里,标识符以字符或_,$开头,后面可以包含数字,标识符是大小写有区别的,没有长度限制。有效的标识符mynameict_networkHello_sys_path$bill例子:inta_number;char_onechar;float$bill;关键词abstractcontinuefornewswitchbooleandefaultgotonullsynchronizedbreakdoifpackagethisbytedoubleimplementsprivatethreadsafebyvalueelseimportprotectedthrowcaseextendsinstanceofpublictransientcatchfalseintreturntruecharfinalinterfaceshorttryclassfinallylongstaticvoidconstfloatnativesuperwhile其它保留词以下单词被保留使用:castfuturegenericinneroperatorouterrestvar3.1.4数据类型Java使用五种基本类型:integer(整数),floating(浮点数),point(指针),Boolean(布尔变量),CharacterorString(字符或字符串)。integer整数下边给出的数据表示都是整数的例子:4,15,089,0xAD00整数长度数据类型表示8bitsbyte16bitsshort32bitsint64bitslongfloating浮点数下边给出的数据表示都是浮点数的例子:6.37,3.7E15,3e8浮点数长度数据类型表示32bitsfloat64bitsdoubleBoolean布尔变量下边是布尔变量的两种可能取值:truefalseCharacter字符下边给出的都是字符的例子:a\\t(tab)\\u????(unicode)String字符串下边给出的都是字符串的例子:\Thisisastringliteral\\中国科学院计算所\数组你可以定义任意类型的数组.chars[];这是字符型数组;int[]array;这是整型数组;你还可以定义数组的数组.intblock[][]=newint[2][3];数组边界在运行时被检测,避免堆栈溢出和内存崩溃.在Java里,数组实际上是一个对象,数组有一个成员变量:length。你可以用这个成员函数来查看任意数组的长度.inta[][]=newint[10][3];a.length;/*10*/a[0].length;/*3*/创建数组在Java里创建数组,你可使用两种基本方法:一。创建一个空数组:intlist[]=newint[50];或你可以用初始数值填充数组.Stringnames[]={\Chenji\,\Yuan\,\Chun\,\Yang\};相当于下面功能:Stringnames[];names=newString[4];names[0]=newString(\Chenji\);names[1]=newString(\Yuan\);names[2]=newString(\Chun\);names[3]=newString(\Yang\);在编译时你不能象下例那样创建静态数组。intname[50];//将产生一个编译错误你也不能用new操作去填充一个没定义大小的数组。intname[];for(inti=0;i9;i++){name[i]=i;}3.1.5表达式Java语言的表达式和C语言非常类似。运算符运算符(operator)优先级从高到底排列如下:.[]()++--!~instanceof*/%+-=\\==!=&^&&||?:=op=,整数运算符在整数运算时,如果操作数是long类型,则运算结果是long类型,否则为int类型,绝不会是byte,short或char型。这样,如果变量i被声明为short或byte,i+1的结果会是int。如果结果超过该类型的取值范围,则按该类型的最大值取模。单目整数运算符是:运算符操作-单目非~位补码++加1--减1++运算符用于表示直接加1操作。增量操作也可以用加运算符和赋值操作间接完成。++lvalue(左值?copy;表示lvalue+=1,++lvalue也表示lvalue=lvalue+1(只要lvalue没有副作用)。--运算符用于表示减1操作。++和--运算符既可以作为前缀运算符,也可以做为后缀运算符。双目整数运算符是:运算符操作**+加-减*乘/除%取模&位与|位或^位异或左移右移(带符号)添零右移整数除法按零舍入。除法和取模遵守以下等式:(a/b)*b+(a%b)==a整数算术运算的异常是由于除零或按零取模造成的。它将引发一个算术异常。下溢产生零,上溢导致越界。例如:加1超过整数最大值,取模后,变成最小值。一个op=赋值运算符,和上表中的各双目整数运算符联用,构成一个表达式。整数关系运算符,,=,=,==和!=产生boolean类型的数据。布尔运算符布尔(boolean)变量或表达式的组合运算可以产生新的boolean值。单目运算符!是布尔非。双目运算符&,|和^是逻辑AND,OR和XOR运算符,它们强制两个操作数求布尔值。为避免右侧操作数冗余求值,用户可以使用短路求值运算符&&和||。用户可以使用==和!=,赋值运算符也可以用&=、|=、^=。三元条件操作符?:和C语言中的一样。浮点运算符浮点运算符可以使用常规运算符的组合:如单目运算符++、--,双目运算符+、-、*和/,以及赋值运算符+=,-=,*=,和/=。此外,还有取模运算:%和%=也可以作用于浮点数,例如:a%b和a-((int)(a/b)*b)的语义相同。这表示a%b的结果是除完后剩下的浮点数部分。只有单精度操作数的浮点表达式按照单精度运算求值,产生单精度结果。如果浮点表达式中含有一个或一个以上的双精度操作数,则按双精度运算,结果是双精度浮点数。数组运算符数组运算符形式如下:[]可给出数组中某个元素的值。合法的取值范围是从0到数组的长度减1。取值范围的检查只在运行时刻实。运算符以String对象实现。运算符\+\完成并操作,如果必要则自动把操作数转换为String型。如果操作数是一个对象,它可定义一个方法toString()返回该对象的String方式,例如floata=1.0print(\Thevalueofais\+a+\\\n\);+运算符用到?reg;上的例子Strings=\a=\+a;+=运算符也可以用于String。注意,左边(下例中的s1)仅求值一次。s1+=a;//s1=s1+a//若a非String型,自动转换为String型。对象运算符双目运算符instanceof测试某个对象是否是指定类或其子类的实例。例如:if(myObjectinstanceofMyClass){MyClassanothermyObject=(MyClass)myObject;…}是判定myObject是否是MyClass的实例或是其子类的实例。强制和转换Java语言和解释器限制使用强制和转换,以防止出错导致系统崩溃。整数和浮点数之间可以来回强制转换,但整数不能强制转换成数组或对象。对象不能被强制为基本类型。3.1.6Java流控制下面几个控制结构是从C语言借鉴的。分支结构if/else分支结构if(Boolean){statemanets;}else{statements;}switch分支结构switch(expr1){caseexpr2:statements;break;caseexpr3:statements;break;default:statements;break;}循环结构for循环结构for(initexpr1;testexpr2;incrementexpr3){statements;}While循环结构While(Boolean){statements;}Do循环结构do{statements;}while(Boolean);一般顺序控制break[label]continue[label]reutrnexpr;label:statement;for循环例子下面是一个程序例子,画几条线,分别用红,绿,蓝颜色,这段程序可能是Java函数的一部分:intcount;for(count=1;count=12;count++){switch(count%3)}case0:setColor(Color.red);break;case1:setColor(Color.blue);break;case2:setColor(Color.green);break;}g.drawLine(10,count*10,80,count*10);}3.2Java变量和函数的实例Java的类包含变量和函数。数据变量可以是一些原始的类型,如int,char等。成员函数是一些可执行的过程。例如,下面程序里:publicclassClassOne{inti;publicClassOne(){i=10;}publicvoidAdd_i(intj){i=i+j;}}ClassOne包含一个变量i和两个成员函数,ClassOne(intfirst)和Add_i(intj)。成员函数成员函数是一些可被其它类或自己类调用的处理子程序。一个特殊的成员函数叫构造函数,这个函数名称一般与本类名程相同。它没有返回值。构造函数和成员函数当你在Java里定义一个类时,你可定义一个或多个可选的构造函数,当创建本类的一个对象时用某一个构造函数来初始化本对象。用前面的程序例子来说明,当ClassOne类创建一个新实例时,所有成员函数和变量被创建(创建实例)。构造函数被调用。ClassOnemc:mc=newClassOne();关键词new用来创建一个类的实例,一个类用new初始化前并不占用内存,它只是一个类型定义,当mc对象初始化后,mc对象里的i变量等于10。你可以通过对象名来引用变量i。(有时称为实例变量)mc.i++;//mc实例变量加1因为mc有ClassOne类的所有变量和成员函数,我们可以使用同样的语法来调用成员函数Add_i:Add_i(10);现在mc.i变量等于21.结束函数Ja
本文标题:《JAVA基础教程》第三章Java程序设计基础
链接地址:https://www.777doc.com/doc-2864690 .html