看了昨天的博客,猜数字游戏的一大堆代码占用了很大的篇幅。经过考虑,决定以后,实现代码与知识点的分离,较多的代码会上传到GitHub里,保证在博客里以知识点为主。
Java很注重类型,你不能把长颈鹿类型的变量装进兔子类型的变量中。
先记住声明变量的规则:variable must have a type.变量必须拥有类型;variable must hava a name.变量必须拥有名字。
变量就像是杯子,是一种容器,盛装某些事物。它有大小和类型。
类型 | 位数 | 值域 |
boolean与char | ||
boolean | java虚拟机决定 | true或false |
char | 16 bits | 0~65535 |
数值(带正负号) | ||
integer | ||
byte | 8 bits | -128-127 |
short | 16 bits | -32768~32767 |
int | 32 bits | -2147483648~2147483647 |
long | 64 bits | 很大 |
浮点数 | ||
float | 32 bits | 范围规模可变 |
double | 64 bits | 范围规模可变 |
对象
- 事实上没有对象变量的存在。
- 只有引用(reference)到对象的变量。
- 对象引用变量保存的是存取对象的方法
对象引用也只是个变量值
对象的声明、创建与赋值有3个步骤:
// 1 3 2
Dog myDog = new Dog();
1.声明一个引用变量:要求Java虚拟机分配空间给引用变量,并将此变量命名为myDog。此引用变量将永远被固定为Dog类型。
2.创建对象:要求Java虚拟机分配空间给新建立的Dog对象。
3.链接对象和引用:将新的Dog赋值给myDog这个引用变量。
对于任意一个Java虚拟机来说,所有的引用大小都一样,但不同的Java虚拟机可能会以不同的方式表示引用,因此某个Java虚拟机的引用大小可能会大于和小于另一个Java虚拟机的引用。
数组也是对象
1.声明一个int数组变量:int[] nums;/Dog[] pets;
2.创建大小为7的数组,并将它赋值给之前声明为int的变量nums:nums = new int[7];/pets = new Dog[7];
3.赋予int数组的每一个元素一个int值。要记得在int数组中的每个元素皆为int类型的变量:nums[0] = 6;/pets[0] = new Dog();
- 变量有两种:primitive主数据类型和引用
- 变量的声明必须有类型和名称
- 数组一定是个对象,不管所声明的元素是否为primitive主数据类型,并且没有primitive主数据类型的数组,只有装载primitive主数据类型的数组。
4.对象的行为
状态影响行为,行为影响状态。我们已经知道对象有状态和行为两种属性,分别由实例变量与方法来表示。
对象名 |
实例变量(状态) |
方法(行为) |
任一类的每个实例都带有相同的方法,但是方法可以根据实例变量的值来表现出不同的行为。