Variables
就像之前的课程所说一样,一个对象把它的属性存在fields里面;
int cadence = 0;
int speed = 0;
int gear = 1;
前面介绍了fields的概念,但是可能你还有些问题,如:变量的命名规则,除了int以外还有别的数据类型?当变量声明的
时候他初始化了吗?变量是不是有一个默认值如果没有初始化,我们会在这里一一解答,但是在讲之前,有些约定你必须注意,
在java里面 “field”和“variable” 都被使用;这个是新开发人员普遍的误区,都认为field和变量是一回事。
在java语言里,定义以下几种类型的变量:
1.变量实例(不是静态 空间) 专业的说,对象把他们独立的属性存在 非静态空间, 也就是说,fields 定义没有static
关键字,非静态领域被认为是变量实例,因为他们的变量对于不同的类实例来说是不同的, 一个bike的currentSpeed跟另外
一个bike的currentSpeed是不同的
2. 类变量 (静态变量) 一个类的的static变量,它告诉编译器 只有这个变量只有一块拷贝地址,无论这个类被多少次实例化。
如 对某一种特别的自行车,可以定义 static int numGears = 6;将创建这么一块静态空间,另外 如果不想修改他的大小 直接
在前面加final 这样 这个gears的个数就不会被改变了。
3. 局部变量 就是指在区域里面定义的变量,如在一个方法中定义的变量,它的作用域只能在这个方法内有效,出了作用域外就
没有作用了。
4. Parameters 你已经看到过参数的例子了 就是函数中的变量 通过外部传进来 作用函数内部。主要参数是变量不是fields
命名
每一种编程语言都有自己的命名规范,java也不例外,java的命名规则和约定如下:
1.java区分大小写,约定都以字母开始,不能用别的符号,虽然以“_”开始时合法的 但是最好别用,而且变量之间不能用空格
2. 命名建议 尽量使用全拼,方便代码阅读,代码本身就是注释。 然后选择value不能使用java关键字
3.如果你的变量只有一个单词 用小写,如果有多个 第一个小写 后面几个开头大写,如果你的变量是常量,就用大写形式,每个
单词之间用下划线。除此之外下划线一般不使用
如下优秀的命名: int speed; String gearRatio; int currentGear; static final NUM_GEARS = 6;
Primitive Data Types
java语言如果是static-typed的, 就是说所有的变量必须在使用前被声明。这种声明并初始化的方式如下:
int gear = 1;
这样做告诉你的程序 一个叫gear的变量已经存在了, 并且拥有数据 。除了int java支持另外7种原始数据类型,一个原始数据类型是指
提前被语言定义,并且命名为一个保留的关键字,原始类型变量不和其他原始类型变量共享属性,8种java语言支持的原始数据类型:
byte byte数据类型是一个8位 范围 -128到127, byte类型被用来存储大的数组内存,还可以替代int
short short data 16位 范围 -32768到32767 跟byte一样 可以用来存储打的数组内存
int 32位 范围 -2147483 到2147483647 这个数据类型默认选择使用表示数据大小 足够存储数据在你的程序里 如果不够 还可以更大的long
long 64位 主要用来替代int来表示更大的数据
float 32 用来存储浮点型的数据;
double 用来存储小数 默认
boolean 有两种状态 true 和 false
char 16-bit Unicode 最小 ‘\u 0000’ 最大 ‘\uffff’.
除此之外 java语言还有之中特殊的数据类型 String 不用new就可以使用的对象
Arrays
数组时一个容器对象,用来容纳多个简单类型的变量, 数组的长度在数组创建的时候就已经确定好了,创建以后 这个长度就定死了。
数组的声明: int[] anArray;
数组demo:
class ArrayDemo {
public static void main(String[] args) {
// declares an array of integers
int[] array;
//allocates memory for 10 integers
array = new int[10];
//initialize :
for(int i =0; i < 10; i++){
array[i] = i;
System.out.println("The Element at index" +
i + ":" + array[i]);
}
}
}
除了int数组 还有别的类型数组 如 byte short long double float char string boolean
同时 你可以把[]转移到变量后面 如: int array[];
这种方式不好,建议还是用 第一种方法 这样能一眼就看出是Array
创建 初始化 并且访问数组
第一种方法就是用new 如之前的demo: array = new int [10];
如果这个语句没有 就会报错 :ArrayDemo.java:4: Variable anArray may not have been initialized.
第二种方法: int[] array = {10,9,8,7,6,5,4,3,2,1,0};
数组长度计算 ;
int length;
int[] array = {....};
length = array.length;
copying arrays
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
举个例子:
class ArrayCopyDemo {
public static void main(String[] args) {
char[] copyFrom = {'f','u','g','u','o','c','a','n'};
char[] copyTo = new char[];
System.arraycopy(copyFrom,2,copyTo,0,7);
System.out.println(new String(copyTo));
}
}
就像之前的课程所说一样,一个对象把它的属性存在fields里面;
int cadence = 0;
int speed = 0;
int gear = 1;
前面介绍了fields的概念,但是可能你还有些问题,如:变量的命名规则,除了int以外还有别的数据类型?当变量声明的
时候他初始化了吗?变量是不是有一个默认值如果没有初始化,我们会在这里一一解答,但是在讲之前,有些约定你必须注意,
在java里面 “field”和“variable” 都被使用;这个是新开发人员普遍的误区,都认为field和变量是一回事。
在java语言里,定义以下几种类型的变量:
1.变量实例(不是静态 空间) 专业的说,对象把他们独立的属性存在 非静态空间, 也就是说,fields 定义没有static
关键字,非静态领域被认为是变量实例,因为他们的变量对于不同的类实例来说是不同的, 一个bike的currentSpeed跟另外
一个bike的currentSpeed是不同的
2. 类变量 (静态变量) 一个类的的static变量,它告诉编译器 只有这个变量只有一块拷贝地址,无论这个类被多少次实例化。
如 对某一种特别的自行车,可以定义 static int numGears = 6;将创建这么一块静态空间,另外 如果不想修改他的大小 直接
在前面加final 这样 这个gears的个数就不会被改变了。
3. 局部变量 就是指在区域里面定义的变量,如在一个方法中定义的变量,它的作用域只能在这个方法内有效,出了作用域外就
没有作用了。
4. Parameters 你已经看到过参数的例子了 就是函数中的变量 通过外部传进来 作用函数内部。主要参数是变量不是fields
命名
每一种编程语言都有自己的命名规范,java也不例外,java的命名规则和约定如下:
1.java区分大小写,约定都以字母开始,不能用别的符号,虽然以“_”开始时合法的 但是最好别用,而且变量之间不能用空格
2. 命名建议 尽量使用全拼,方便代码阅读,代码本身就是注释。 然后选择value不能使用java关键字
3.如果你的变量只有一个单词 用小写,如果有多个 第一个小写 后面几个开头大写,如果你的变量是常量,就用大写形式,每个
单词之间用下划线。除此之外下划线一般不使用
如下优秀的命名: int speed; String gearRatio; int currentGear; static final NUM_GEARS = 6;
Primitive Data Types
java语言如果是static-typed的, 就是说所有的变量必须在使用前被声明。这种声明并初始化的方式如下:
int gear = 1;
这样做告诉你的程序 一个叫gear的变量已经存在了, 并且拥有数据 。除了int java支持另外7种原始数据类型,一个原始数据类型是指
提前被语言定义,并且命名为一个保留的关键字,原始类型变量不和其他原始类型变量共享属性,8种java语言支持的原始数据类型:
byte byte数据类型是一个8位 范围 -128到127, byte类型被用来存储大的数组内存,还可以替代int
short short data 16位 范围 -32768到32767 跟byte一样 可以用来存储打的数组内存
int 32位 范围 -2147483 到2147483647 这个数据类型默认选择使用表示数据大小 足够存储数据在你的程序里 如果不够 还可以更大的long
long 64位 主要用来替代int来表示更大的数据
float 32 用来存储浮点型的数据;
double 用来存储小数 默认
boolean 有两种状态 true 和 false
char 16-bit Unicode 最小 ‘\u 0000’ 最大 ‘\uffff’.
除此之外 java语言还有之中特殊的数据类型 String 不用new就可以使用的对象
Arrays
数组时一个容器对象,用来容纳多个简单类型的变量, 数组的长度在数组创建的时候就已经确定好了,创建以后 这个长度就定死了。
数组的声明: int[] anArray;
数组demo:
class ArrayDemo {
public static void main(String[] args) {
// declares an array of integers
int[] array;
//allocates memory for 10 integers
array = new int[10];
//initialize :
for(int i =0; i < 10; i++){
array[i] = i;
System.out.println("The Element at index" +
i + ":" + array[i]);
}
}
}
除了int数组 还有别的类型数组 如 byte short long double float char string boolean
同时 你可以把[]转移到变量后面 如: int array[];
这种方式不好,建议还是用 第一种方法 这样能一眼就看出是Array
创建 初始化 并且访问数组
第一种方法就是用new 如之前的demo: array = new int [10];
如果这个语句没有 就会报错 :ArrayDemo.java:4: Variable anArray may not have been initialized.
第二种方法: int[] array = {10,9,8,7,6,5,4,3,2,1,0};
数组长度计算 ;
int length;
int[] array = {....};
length = array.length;
copying arrays
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
举个例子:
class ArrayCopyDemo {
public static void main(String[] args) {
char[] copyFrom = {'f','u','g','u','o','c','a','n'};
char[] copyTo = new char[];
System.arraycopy(copyFrom,2,copyTo,0,7);
System.out.println(new String(copyTo));
}
}