1. 变量和基本数据类型
数据类型定义:一组数值和定义在数值上的操作。
1.1 8种基本数据类型
- 1.整数
- byte (1 byte): -128 ~ +127
- short (2 bytes): -32768 ~ +32767
- int (4 bytes): -2147438648 ~ +2147438647
- long (8 bytes)
- unsigned byte (1 byte): 0 ~ 255
- unsigned short (2 bytes): 0 ~ 0~65535
- unsigned int (4 bytes): 0~4294967295
- unsigned long (8 bytes)
- 2.浮点数
- float (4 bytes): 3.4E-38 - 3.4E+38
- 精度: 8, 23
- double (8 bytes): 1.7E-308 ------ 1.7E+308
- 精度: 11, 52
- float (4 bytes): 3.4E-38 - 3.4E+38
- 3.字符
- char
‘1’, ‘2’, ‘a’, ‘%’
- char
- 4.boolean 类型
- true
- false
1.2 操作符
优先级:单目运算高于双目运算,数学运算>关系运算>逻辑运算,赋值运算最低。有印象即可,不清楚的用()解决一起
+: int a = 1 + 5;
- : long b = 3 - 5;
* : long c = 5 * 4;
/ : unsigned d = 15 / 3;
% : unsigned e = 5 % 3;
>, <, >=, <=, ==
bool
1.3 数组
- 格式
int array[100];
int [] array = new int[100];
array[0] = 5;
int length = array.length();
int[] arr = {11, 22, 33, 44, 55}
2.表达式和赋值
- 1.基本的数学计算
“1 + 2”, “3 / 5”, “3 > 5”, “1 == 2”
每个表达式都有⼀个返回值
- 2.⽅法调⽤
“sqrt(1)”, “dog.walk()”
⽅法调⽤可以有返回值,也可以没有返回值 (或者说是返回值为空 void)。表达式和语句都以 “;” 表示结束
3. 控制语句
3.1 逻辑控制语句
- if
if (condition) { action; }
- if … else …
if (condition) { action1; } else { action2; }
- 代码块
- 使⽤ “{}” 包括起来的单个或者多个语句或表达式
3.2 循环和控制语句
- for
for (initial; condition; iteration) {}
for (T iterator : Collection<T>) {} // 增强for循环
- while
while (condition) {}
- 执⾏控制语句
return <返回值>: 从⽅法中返回
break: 退出当前循环,即退出整个循环
continue: 跳出当前循环,执行下次循环
throw: 抛出异常
- 构造语句
- new: ⽣成⼀个对象
- Integer a = new Integer(3);
- new: ⽣成⼀个对象
4. java方法
- 格式:
<返回类型> ⽅法名(<参数类型> 参数名, …)
{代码; return <返回值>;}
- ⼀个⽅法由 “⽅法名 + 参数类型” 确定,即方法签名
- 重载:
- 相同⽅法名,不同参数类型, 是不同的⽅法 (重载override)。即方法名相同,参数列表不同(参数个数或参数类型不同),与返回值类型无关
注意:java的方法是平级的,不可嵌套定义,一个方法不可以做为另外一个方法的参数。
5. JAVA类型模型
5.1 基本概念
- 类:类是⼀个模板,它描述⼀类对象的⾏为和状态
- 语义上表达的是⼀类实体(对象)的抽象
- 对象:对象是类的⼀个实例,有具体的状态
- 语义上是表达⼀个java类的实体
- Java⾥的常量和变量都可以对应于⼀个对象,这个对象的⾏为和具有的属性是由类来定义的
- Java程序的基本结构就是⼀系列类的定义,类之间的关系和具体类的对象之间的互相操作
5.2 类
- 注意:
- 在Java中的惯例是⼀个⽂件中存放⼀个public类,文件名与类名相同
- 格式
class Person { String name; int age; public void speak(){ System.out.println("speak English"); } }
5.3 对象
- 对象是⼀般情况下Java语⾔⾥的”⼀等公⺠”
- 对象可以赋值到⼀个变量
- 对象是通过new语句进⾏创建
Person p = new Person();
5.4 JAVA⽅法和成员变量
- 成员变量:类中定义的该类的实例对象所具有的状态,其作⽤域在类中,或对象中
- 成员⽅法:类中定义的该类的实例对象所具有的⾏为,用来操作成员变量
- 静态⽅法: ⾪属于类本身的⽅法
5.5 权限修饰符
- 修饰符⽤于控制变量, 类 的作⽤域和⼀些访问限制
- 访问权限修饰符: public, protected, private, default(即不设置)
权限修饰符 | 同一个类 | 同一个包 | 不同包的子类 | 不同包的非子类 |
---|---|---|---|---|
Private | √ | |||
Default | √ | √ | ||
Protected | √ | √ | √ | |
Public | √ | √ | √ | √ |
5.6 状态修饰符
- static: 把⽅法或者成员变量设置为类共享,具有static修饰的⽅法和变量的类, 我们称之为”静态类”
- final
- final <类>; —> 防⽌类被继承
- final <变量>; —> 防⽌变量被修改引⽤到另外⼀个对象, 可称为 “常量”
- final <⽅法>; —> 防⽌⽅法被重载(override)
6. 包和层次结构
- 为什么要有包
- 将字节码(.class)进行分类存放,包其实就是文件夹
- 好处
- 方便管理类,避免一个文件夹中有太多的类难以管理。
- “包”: ⽤来表示具有层次结构的命名空间,防止重复类名出现冲突
- 定义包的格式
package 包名;
- 定义包的注意事项
- package语句必须是程序的第一条可执行的代码
- package语句在一个java文件中只能有一个
- 如果没有package,默认表示无包名