白癜风大医院 http://www.ykhongye.com/变量(variable)是与计算机中内存位置关联的名称。计算机内存可以存储一个值,该值可以被改变或按照既定的规律变化。当你玩电子游戏时,通常会有一个从0开始增加的分数。这就是变量的极好例子。
AP计算机中出现的变量类型
Java中有两种类型的变量:基本变量(primitivevariable)储存基本数据类型(primitivetype),对象变量(objectvariable)储存对class的object的引用(reference)。引用是一种查找object的方法(如快递单号可帮助你找到包裹)。AP计算机科学考察如下基本数据类型:
int——存储整数(如3,-76,)double——存储浮点数(如6.3,-0.9和.)boolean——存储布尔逻辑值,即“真”与“假”(true或false)String是考试中考察的一种对象变量,并且是也是Java中一个class的名称。一个Stringobject有一系列字符。我们在之后的一章里将具体展开Stringobject。
计算机使用bit(二进制数字)存储所有值。一个bit可以表示两个值,0或1。
要创建一个变量,你必须告诉Java它的类型和名称。创建一个变量也被称为声明变量。当创建一个基本变量时,Java将为这个基本数据类型在内存中留出足够数目的bit并将该内存位置与你所使用的名称相关联。变量的类型是必须的,因为Java需要知道要使用多少bit以及怎样的方案表示变量值。上章提到的三种不同的基本数据类型都使用二进制数存储(以2为基的数字0和1的组合),但以不同的方案表示。
当声明变量时,某个内存位置(连续的一系列bit)被预留出来用于该类型的变量,并且变量名与内存位置相关联。一个int获得32bit的空间,一个double获得64bit的空间。理论上boolean可以仅由一个bit表示,但是Java标准并未明确规定,大多数虚拟机为方便和效率起见,通常用硬件层面上比较容易操作的一组8bit即一个byte来表示。同理,一个int占4byte,一个double占8byte。
要声明(创建)变量,先指定数据类型,在其后至少留出一个空格,然后指定变量的名称并用分号;结束该行。Java使用int关键字标记整数,double标记浮点数(双精度数),boolean标记布尔逻辑值(true或false)。但尝试运行下列代码时会报错,因为在打印这些变量的值时它们尚未被初始化(储存有任何数据)。
publicclassTest1{publicstaticvoidmain(String[]args){intscore;System.out.println(score);doubleprice;System.out.println(price);booleanwon;System.out.println(won);}}可以把Java中的分号当成英语中的句号。因为.已经有表示小数点和object所属method的作用,Java使用;标记语句的结尾。虽然AP计算机考试中不会因为忘记了分号而扣分,实际编程时对;的使用属于基础中的基础。
在声明变量的同时,还可以通过添加一个等号=来为变量指定一个初始值。
publicclassTest2{publicstaticvoidmain(String[]args){intscore=4;System.out.println(score);doubleprice=23.25;System.out.println(price);booleanwon=false;System.out.println(won);}}这里的等号与数学等式中的等号并不完全一致。这意味着将与左侧变量名关联的内存空间中的值设置为右侧的值。上面的第一行将名为score的整数变量设置为4。
请注意,变量名必须位于=左侧,而值位于右侧。下面的代码有错,你能把错误更正过来以编译并打印分数吗?
publicclassTest3{publicstaticvoidmain(String[]args){4=intscore;System.out.println(score);}}还记得变量中保存一个值,该值可以被改变或按照既定的规律变化吧。如果你使用变量来保存游戏分数,后续可能会需要增加它(将当前值加1)。您可以通过将变量设置为变量的当前值加1(score=score+1)来完成此操作,如下所示。
publicclassTest1{publicstaticvoidmain(String[]args){intscore=0;System.out.println(score);score=score+1;System.out.println(score);}}你还可以将一个变量的值设为另一个变量值。这不会改变另一个变量的内容。
publicclassTest2{publicstaticvoidmain(String[]args){intx=3;inty=2;System.out.println(x);System.out.println(y);x=y;System.out.println(x);System.out.println(y);}}在Java中交换两个变量的内容需要用到第三个变量作为临时的暂存空间。具体做法是先把一个变量的值暂存起来,将另外一个变量覆盖该变量的值,再将暂存的值恢复到新的位置。简单赋值并不能实现交换。
intx=0;inty=2;inttemp;temp=x;x=y;y=temp;学AP计算机,上ap