预备知识
变量
变量名又称标识符。回答以下问题:
- Why(为什么定义变量)定义即存储。存储自然是为了后续访问。
- How(如何定义变量)两个方面:类型+标识符,作用如下表:
类型 | 给值分配合理的空间 |
---|---|
标识符 | 通过名字访问到里面的值 |
Java是一个强类型语言,每个变量都必须声明其数据类型。
数据类型
基本数据类型有4类(小8种)。除了小8种,其它都是引用数据类型
不同类型开辟的空间不一样
如果想表示的小数精度比较高,用double
字符型(由单引号修饰)要与 字符串(由双引号修饰)区分开
布尔型的变量一般叫flag,默认值是false。
运算符
程序中除了数据就是逻辑,逻辑的表示通过运算符完成。
1.算数运算符:+、++
只要有字符串参与运算,结果一定是字符串。(成为字符串的再运算,就不再是数了,而是字符串的拼接。)
自增运算,对单个变量a来说,++a和a++没有区别;但是,当参与到表达式中,对输出结果有影响。
2.赋值运算符:=
扩展复制运算符:+= (连加:在自身上进行+,再赋给自身)
3.关系运算符:==(判断的输出结果是布尔值)
4.逻辑运算符:&&、||
通过运行代码的结果来理解运算符的逻辑。
与&&(悲观的逻辑)
或||(乐观的逻辑)
代码运行情况
运行结果:
可见double型保留了17位小数;/商,%余数
Tips:
1.eclipse中查看源码的方法:按住ctrl,点Declaration进去。
2.new新建出来的,表示的是地址值(即房间号),而不是内容。
代码思路旁白
定义变量的方法有两种:1.先定义,再赋值;2.定义时赋值。突发奇想,看不赋值可不可以,发现程序报错了。由此知道一个结论:局部变量(The local variable)没有默认值。一旦创建了局部变量,我们必须在使用它之前对其进行初始化。
熟悉println的中阶用法——可以输出运算/拼接出来的结果。在寻找中阶用法的过程中,了解到println还可以输出对象的字符串,但是输出结果不太尽如人意(是类名+符号@+对象的哈希码值)。其实输出内容还是地址,这取决于println调用的底层方法。
举例如下(黑马程序员课程):为了使输出的字符串易读,需要重写toString方法。(在此过程中,了解了一下成员变量与局部变量的区别:前者在类里后者在方法里)在类里面按住alt+shift+S里面的Generate toString自动重写。
注:println方法的参数是x,用到了valueOf方法,valueOf里面又用到toString方法。参数在方法里不断被传递。在Object类下的println方法底层是调用了toString方法。
遇到的问题
无
小结
- 变量的名字要”望文生义“,尽量不要有重复的名字。
- 理解代码A. B ( C ):通过A调用B方法,把参数C传过来(意思是C被赋值了)
- 要想知道为什么输出结果长这个样子,需要了解”方法“。先查看该方法的源代码,再通过索引每一步用到的方法最终找到底层的方法。