品味Java(4):来!深入JAVA的第一步

软件世界

  学一门语言,熟悉该语言的语法是很重要的一步。在接下来的文章中,文章将用一些例程来讲解Java的语法基础。包括数据类型、表达式、流程控制、注释等。通过这些学习,相信能使你快速进入Java编程的美丽殿堂。

  Java语法简介

  Java语言主要由以下五种元素组成:标志符、关键字、数据类型、运算符和分隔符。这五种元素采用不同的语法和组成规则来共同完成Java语言的语意表达。

  如何运用这些语言元素构成自己的程序呢?下面我们以第二期讲到的Hello World程序来说明在Java语言中各种元素的使用方法,然后再对各种元素进行讲解。

  import java.io.*;

  public class HelloworldApp{

  public static void main(String[] args) {

  int i=100;

  System.out.println(i);

  }  

  } 

  现在我们体会一下Java的语法要素。Import、public、class等就是关键字;“i”则为标志符(关键字也是标志符);“int”代表数据类型;“=(等号)”就是运算符;“;(分号)”则为分隔符,表示一条语句的结束。在这个例中,int i=100;定义的是一个变量i,并给它赋了一个初值。执行了这条语句后,i就代表一个整数100,我们就可以在程序中使用i来进行各种计算。

  通过这个程序,相信大家对这五种元素该怎么使用有了大概的了解了吧。那么,下来我们再分析一下每种元素的详细细节,因为只有熟悉掌握了这些语法元素,才能写出漂亮的程序。

  1.如何定义标志符

  变量、类和方法都需要一定的名称,我们将这种名称叫做标志符。

  如上例所示,import等关键字、变量“i”、数据类型和“int”等都是标志符。我们在使用一个变量时,都需要定义一个变量标志,然后我们就可以在程序中使用这个标志符了。比如:

  char c;//定义一个变量,变量名为c

  c='A';//给变量赋值

  System.out.println(c);//输出c的值

  提示:Java对标志符有一定的限制。首先,所有标志符的首字符必须是字母(大小写)、下划线_或“$”;其次标志符是由数字(0—9),所有从A—Z的大写字母、a—z的小写字母和下划线“_”、美元符$和所有在十六进制0xc0前的ASCII码等构成;最后还得注意标志符不能使用系统保留的关键字标志。

  2.关键字是什么?

  关键字是Java语言本身使用的标志符,它有特定的语法含义。如上例中的class、import、public、int等。要注意的是,Java的关键字不能被用作变量使用,这在其他语言中也是一样的。

  3.Java数据类型

  Java有着不同的数据类型,Java的基本数据类型有:整型、浮点型、布尔型、字符型等。下面我们以一些代码段来为你讲述这些数据类型的使用。你可以把这两条语句放到前面的HelloworldApp.java里测试。

  提示:在Java里,字符串和数组都是对象,不是简单的原始数据类型(primitive data type)。

  整型数据是最普通的数据类型,它的表现方式有:十进制、十六进制和八进制。十六进制整数必须以0x作为开头。我们可以定义一个整型变量:

  int i=0xFF;//十六进制数0xff,代表十进制数据255

  System.out.println(i);//输出变量的值

  提示:Java的整型变量按所占内存大小的不同可分为四种不同的类型(byte、short、int、long),最短的整型是byte(位),它只有8位(bit)长,然后是短整型short,它有16位,int类型有32位,长整型long是64位。

  浮点数用来代表一个带小数的十进制数。例如1.35或23.6。是浮点数的标准形式,还可以用科学计数法的形式。例如:3.1415926、1.34、.86、9.999E8

  在程序中如何使用呢?使用一个浮点数之前,我们先声明它:使用语句double 变量名,然后就可以在程序中对这个浮点数进行操作了。如:

  double d;//定义一个变量,变量名为d,你也可以在声明时就赋值,如:double d=1.01

  d=1.0;//运算

  提示:浮点类型可用关键字float或double来说明,float型的浮点变量用来表示一个32位的单精度浮点数,而double型的浮点变量用来表示一个64位的双精度浮点数。double型所表示的浮点数比float型更精确。

  字符型数据是由一对单引号括起来的单个字符。它可以是字符集中的任意一个字符,如:'a','b'。在前面讲标志符时已经讲过了,使用char 变量名 来定义就OK了。

  布尔型其实就更简单了,它只有两种值:true(真)和false(假)。使用boolean b;就可以定义一个布尔型变量。

  4.Java运算符

  任何语言都有自己的运算符,Java语言也不例外,如+、-、*、/等都是运算符,运算符的作用是与一定的运算数据组成表达式来完成相应的运算。

  5.分隔符

  分隔符用来使编译器确认代码在何处分隔。“.”“;”“:”都是Java语言的分隔符。比如语句System.out.println();就用到“.”和“;”两个分隔符。要注意的是,Java和C/C++语言一样,语句末尾要用使用分号结尾。

  复杂数据类型

  1.数组类型

  数组是Java语言中的特殊类型。它们存放着能通过索引来引用的一系列对象。另外,你可以定义多维数据(数组的数组)。下面是一些示例:

  int i[ ];

  char C[ ];

  float f[ ][ ];

  在Java中数组的分配是通过使用new运算符建立数组然后把它赋给变量,如:

  int i[ ]=new int[10];// 定义一个包括10个整型变量的数组并把它赋给i

  现在我们就可以用i[0],i[1]....i[9]来访问这个数组了(注意下标是从第一个元素的0开始,到数组个数减1)。

  为了更好地说明问题,我们以一个小程序演示一下!

  public class array{

  public static void main(String[] args){

  int a[]=new int[10];

  for(int i=0;i<10;i++)

  {

  a[i]=i;

  System.out.println(a[i]);

  }}}

  在这个程序中,我们声明了一个包含10个元素的数组,这个数组中每个元素的类型是int型,在for循环中,我们给这个数组的每个元素指定一个值,然后并输出结果。对于for循环,在下期的流程控制里,我们会详细说明。

  提示:为什么使用数组呢?上例就为你说明了这一点。当你有大量相关数据需要处理时,使用数组可以简单地进行访问。另外,由于Java中没有指针,数组就扮演着更加重要的角色。

  2.字符串

  Java中表示字符串的方法跟C++中相似,用一对双引号括起来的字符序列,字符串数据实际上是由String类所实现,而不是C语言中所用的字符数组。如:"I am a programmer"即为一个字符串。如上面的程序所示,System.out.println("Hello,this is a simply test !");中引号之中就是字符串。我们可以写成:

  String S="This is a string!";//声明一个变量的值为字符串" This is a string!"

  System.out.println(S);//输出变量S

  表达式中类型转换

  系统方法System.in.read()返回一个整型数值,如何把它当做一个字符来使用呢?这时就需要进行数据类型的转换:

  char C;

  C=(char)System.in.read(); //从控制台读取一个数字并转换

  下来我们讲一下字符串转换成数字类型和数字类型转换成字符串类型。

  字符串转换成数字类型:

  String s = "127";

  byte b= Byte.parseByte(s);

  short t=Short.parseShort(s);

  int i=Integer.parseInt(s);

  long l=Long.parseLong(s);

  float f=Float.parseFloat(s);

  double d=Double.parseDouble(s);

  字符串类型转换到数字类型应该注意要转换的字符串所对应的数字不能超过相应的数字类型所能表示的最大范围。比如Byte类型只能占8bit,所以最大不能越过+28-1,也就127,最小不能小于-128。

  数字类型转换成字符串类型:

  String str=String.valueOf(number);

  其中number为任何数字类型,比如一个整型的变量,或者常量。

  通过本文的学习,相信你能对Java基本语法有了大概的了解,如果你已经有一定的C/C++基础,相信很快就可以写出漂亮的Java程序了。不过,如果你对本文的内容不是太理解,希望你能从Hello World程序开始,将上面的代码段Copy进去试着修改和执行,相信你会有很大收获。

  Java变量的使用

  定义一个变量的两个基本要素是:类型和标志符,通常你可以用如下语法去说明变量(定义):

  Type Identifer[,identifer];

  该语句告诉编译器用“type”的类型和以“Identifer”为名字建立一个变量,这里的分号将告诉编译器这是一个说明语句的结束;方格中的逗号和标志符表示你可以把几个类型相同的变量放在同一语句进行说明,变量名中间用逗号分隔。如语句:int x,y;表示定义两个整型变量它们是x和y。

  在定义了变量之后,我们就可以给变量赋值了。

  Java的表达式

  表达式是一个包含了由运算符和操作数(变量、常量)构成,并且可以计算并返回一个值的运算式。常见的表达式就是进行一般的“+、-、*、/”操作。如:“x+3”,也可以是一个简单的变量名或者一个复杂的方法调用。

  有的表达式会进行隐含的类型转换,比如表达式:String s="TestString"+19;就将数字19隐含转换成字符串并相加。再如表达式:

  short s1=27; //隐含转换int到short

  但是short s2=0x1fff;就会出错,原因是这个整型数值0x1fff太大了,超过了short所能表示的范围。