在所有的数据类型中,除了8种基本数据类型,其余的都是引用数据类型,包含三类数据类型(类Class 接口Interface 数组Array)。
引用数据类型的使用方式和基本数据类型完全一致,可用于属性、参数、返回值、赋值等等,赋值时使用new关键字来赋值(如public Car BMW= new Car ),String例外,可以直接赋值。
类型转换
数据间的类型在一定的在规则下是可以互相转换的,数据间的转换分为两种,隐式数据转换,强制/显式数据转换。
- 隐式类型转换
- 规则:
- 类型兼容
- 目标类型大于源类型 byte < short < int < long <float < double (char < int < long < float <double)
- 数值型表达式的转换
- 有double 则结果为duoble
- 有float 结果为float
- 有 long 结果为long
- 其他结果为int
- 强制类型转换 数值型的
- 大的类型转换成小的类型,需要使用(类型名)进行强制转换
- 强制转换可能会精度丢失
- char可以与整数型进行互转
例:public class Transformation {
byte a;
short b;
char c;
int d;
long e;
float f;
double g;
int c1=a+b;
int c2=b+c;
int c3=a+b+c;
int c4=b+d;
int c5=a+b+c+d;
long e1=a+e;
long e2=a+b+e;
long e3=a+b+c+e;
long e4=a+b+c+d+e;
float f1=a+f;
float f2=a+b+f;
float f3=a+b+c+f;
float f4=a+b+c+d+f;
float f5=a+b+c+d+e+f;
double g1=a+g;
double g2=a+b+g;
double g3=a+b+c+g;
double g4=a+b+c+d+g;
double g5=a+b+c+d+e+g;
double g6=a+b+c+d+e+g;
}