您的位置:首页 > 编程语言 > Java开发

第二章 JAVA变量类型及语句

2016-06-08 19:16 183 查看
2.1 JAVA变量类型及与C++相异点
 

2.1.1 普通8种类型

                                                  ┏数值型━┳━整数型:byte shortint long

              ┏基本数据类型━━┫        ┗━浮点型:float double

              ┃                                ┣字符型:char                                         

      数据类型╋                        ┗布尔型:boolean             

              ┃                                 ┏类(class)

              ┗引用数据 类型━━╋接口(interface)

                                                   ┗数组(array)

1、变量允许使用符号“$”类中成员变量可以不用初始化,系统自动赋零,但函数或方法中的局部变量必须先定义再初始化才能使用。

2、const关键字被final取代。

   在Java中,const是作为保留字以备扩充,同样的保留字以备扩充还有goto. 

   final也可以用于声明方法或类,被声明为final的方法或类不能被继承。

3、bool的关键字被 boolean取代。只有ture、false两个值。

boolean flag;
flag = true;


4、char被定义使用两个字节的unicode编码。全世界统一编码,两字节表示形式。

char echar = 'a';
char cnchar = '周';
char c1 = '\u0061' ; //后面的十六进制数为unicode编码。
char c1 = '\n' ;     //转义字符


5、java中所有的数据全部都为有符号的而C++中有unsinged int 等定义。

          类型            
           字节            
byte
1
short
2
int
4
long
8
 

整数表示方式:

十进制:正常输入    16

八进数:以零开头    012

十六进制:以0X开头 0XFF

 

    

 编译器见到整型的常量,默认作int数据处理,当作long型处理时数据后加 “L”。

long L1 = 88888888888L;// L表示常量为LONG数据类型6,常量浮点数自动处理为double类型,否则后面加f。
float   f  = 12.3f ;     // OK
double d1 =  1244.3 ;   //OK
float  f  = 123.3 ;     //NG


2.1.1 引用类型

C++中的引用与JAVA同截然不同。C++引用相同于一个变量的大名和小名,同时作同一块内存空间。

int   a;
int  &b = a; //定义b是a的引用


函数的参数为引用类型时表示直接对传入的参数进行操作,与指针类似。

int func( int &a, char b );//int引用,直接对传入的a进行操作


java中的引用表示除基本类型以外的所有参数类型都为引用。对象是通过引用进行操作的,更像是C++一个类实例化的过程,引用变量则为C++中指向类的指针。

 

例:已定义了Student这样一个类,有如下代码

Student zhouqt;     //创造出一个引用,但此时还没有在堆中实例化
//其指向没有建立,所以其值为 null
zhouqt  =  new Student; //在堆中实例化,引用完成
//其指向建立,其值为 堆中实例后的地址


由于java里面没有显式的指针,不能 -> 来引用其成员一律采用成员运算符“.”,来进行引用运算。

zhouqt.age;
zhouqt.GetID( );


2.1.1类型使用时注意点

 

1,boolean禁止与其它任意类型数据之间相互转换。

2,混合运算时,容量小的数据类型自动转换为容量大的数据类型,然后运算。

3,byteshort char不会互相转换,因其参与运算时自动转换为int类型。

4、强制换符使用,与C++类似。

double d2 = 1.0, d1 = 6.2 ;
float  f1 = (float) (d1 + d2 );


5,double最好不要转换为float,会出现截断数据失真。

总结例程:

public class TestConvert {
public static void main( String arg[]) {
int i1 = 123;
int i2 = 456;
double d1 = ( i1+i2 ) *1.2;  //系统将转换为double型运算
float f1 = ( float )( ( i1+i2)*1.2 ); //需要加强制转换符
byte b1 = 67;
byte b2 = 89;
byte b3 = (byte)(b1+b2);//系统将转换为int型运算,需要强制转换符

System.out.println( b3 ); //会产失真
double d2 = 1e200;
float f2 = (float)d2;   //会产生溢出报无穷大错
System.out.println(f2);

float f3 = 1.23f;    //必须加f
long l1 = 123; //int  //类型值给long型,小给大不会出错。
long l2 = 30000000000L;//必须加L
float f = l1+l2+f3;//系统将转换为float型计算
long l = (long)f;//强制转换会舍去小数部分(不是四舍五入)
}
}


总结:小的自动转化为大的,大小转小要强制。常量的int默认运算级别,浮点常量的double默认运算级别。byte shor char 变量自动转为int。

2.3 JAVA运算符
与C一致,增加字符串连续符“+”。

使用方法:

String S = "Helllo" +"World"; //S既为字符串"HellloWorld"


一、运算等级高,被运算两端只要有一端为字符串,则运算级升级为字符串。

int c = 12;
System.out.println( "a + b=" + c );//c值自动转化为字符串


二、当进行打印时,无论任何类型都自动转化为字符串,进行打印。

System.out.println(c );//打印12


2.3条件与循环和分歧语句
与C++相同。

关键字:ifelse switch for while do while break continue void

switch语句中由于存在case xxx:是一个常值,java中常值默认等级为int,因此,switch(a )中的变量a定义为int型值。

 

2.4 java中的方法
C中叫函数,java中方法与C++中类中的成员函数类似。

功能上来说可以增加代码的复用性的有固定功能的代码段集合。

方法允行递归调用,原理来说可以重复的压入栈区,最后逐级出栈

如果该方法声明为static,则可直接使 用类名.方法名() 调用;若不为static就要实例化该类,再用 实例对象.方法名() 调用;在当前类调用当前类的方法,直接方法名()调用。与C++类中的静态成员函数极其类似。

总结:java中的方法分为

(1)静态方法 直接使用 类名.方法名 调用,要求方法要有static声明。

(2)普通方法 通过new创建对象 然后使用 对象.方法 调用 

 

 

2.5 JAVA程序特点
1、同一类型的变量任可系统上所占用的字节宽度相同。

2、没有全局变量概念,为纯面向对象语言,程序的单位为class。

3、变量的作用域以{ }为单位,以所声明的位置为起点,分类如下。

             声明的位置局部变量・成员变量

             所属于数据类型基本数据・引用数据

4、win程序是*.exe双击后执行,java程序为使用命令把 “*.class”文件调用到虚似机中运行。运行时内存按功能给定分配区域,各司其职:




  
      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: