Java面向对象基础
第二章 变量和数据类型
一、什么是变量:
计算机根据所需要存储数据的类型所开辟的一块用于存储数据的内存空间。
1、变量的组成:
变量类型(数据类型) 变量名 = 变量值
举例:
变量名:就是这块内存空间的地址。
内存空间地址不方便记忆,用一个简单的名字作为其外号,将这个外号称之为变量。
2、Java变量名命名规则:
- 由字母、数字、下划线(_)和美元符($)组成;
- 不能以数字开头;
- 不能使用Java关键字;
- 变量名中不能有空格;
- 变量名命名规范:参考阿里巴巴的《Java开发手册》
注意:
类 名:大写的驼峰命名 HelloWorld
变量名:小写的驼峰命名helloWorld
3、变量的作用域
一个变量从其声明或者初始化开始,到其所在代码块结束为止,这个范围就是变量的作用域。
二、Java的数据类型
补充:
- 在Java中如果写出一个整数,那么这个整数讲默认为int类型,我们将这种默认数据类型成为“字面量”。也就是说,整数型的字面量就是int,小数型的字面量就是double;
- Java采用Unicode编码方案,共表示65535个字符,其中0~127采用ASCII。(其中A的十进制编码是65,a的十进制编码是97。)
1、Java创建变量的两种形式:
(1)声明变量:
- 声明:通知计算机将会存储一个对应数据类型的数据,让计算机帮助开辟内存空间。
语法结构: 数据类型 变量名 ;
int num1;
- 赋值: 创建完变量后,就可通过变量名想这个内存空间中存储数据。
num1 = 100;
- 使用:当变量赋值完成后就可以使用。
声明多个变量的语句:
int num1, num2, num3 ;
(2)变量的初始化:
将变量的声明、赋值一次性完成。
语法结构:数据类型 变量名 = 变量值 ;
int num4 = 1024 ;
2、补充:
(1)String类型需使用一对英文的双引号包围内容;
(2)char类型需使用一对英文的单引号包围内容;
(3)+号分别表示加法和连接(11+12 ---- “11”+12);
三、使用Scanner
1、Scanner实现接收功能。
注意:
- Scanner不能接收char类型的值,只能接收String类型的值。
- 在使用next()接收String的值时,这个值中间不能有空格。
2、代码展示
/**
* 通过控制台输入会员的会员卡号,并且显示在控制台上
*/
// 使用 import 关键字引入 java.util.Scanner
import java.util.Scanner;
public class ScannerDemo003 {
public static void main(String[] args) {
// 初始化 Scanner 类型的变量 input
Scanner input = new Scanner(System.in);
// 提示用户输入会员卡的卡号
System.out.println("请您输入会员卡的卡号:");
// 初始化 int 类型的变量 memeberNo 存储从控制台输入的会员卡的卡号
int memberNo = input.nextInt();
// 将所获得的会员卡的卡号在控制台输出
System.out.println("您的会员卡卡号是:" + memberNo);
}
}
四、数据类型转换
1、自动类型转换:
从小范围转换为大范围的过程。由于大范围数据类型所能够表示的数据范围远远大于小范围的数据类型,在转换时,可以表示所有的小范围数据类型的值,不会产生任何错误,那么Java就完成了自动类型转换。
语法结构:
int num1 = 1024;
long num2 = num1;
2、强制类型转换:
从大范围转换为小范围的过程。当大范围数据类型的值在转换小范围时,如果这个值在小范围数据类型的范围内,可以正常转换;但是,如果这个值超出小范围的数据类型,将无法保证正确转换,就会产生溢出。
语法结构:
byte num3 = (byte) num2;
五、运算符
1、赋值运算符
在 Java 中,使用 “=”作为赋值运算符。
int num1 = 10;
问题:如何借助变量和赋值运算符实现两个数据的交换?
答:借助中间变量。
int num1 =10;
int num2 =15;
//声明一个中间变量
int temp;
int temp = num1;
inum1 = num2;
num2 = num1;
2、算术运算符
(1)i++运算符:
- 取出此时变量i的值;
- 将变量i的值赋予表达式i++整体的值;
- 将i自身+1;
int i =6;
int j =i++;
System.out.println("i是:"+i);
System.out.println("j是:"+j);
输出结果为:
i是7
j是6
(2)++i运算符:
- 取出此时变量i的值;
- 将i的值自身加1;
- 将此时i的值赋予整个表达式++i的值;
int i =6;
int j =++i;
System.out.println("i是:"+i);
System.out.println("j是:"+j);
输出结果为:
i是7
j是7
3、关系运算符
4、逻辑运算符
(1)短路运算:只要通过第一个或者前几个的结果就能获得最终的判断结果,那么后面的条件就不再执行。
(2)非短路运算:需要将所有的条件都进行运算之后,才能确定最终的结果。
5、三目运算符(三元运算符)
相当于一个简单的if…else…分支语句,Boolean类型的表达式。
int min;
min = 5 < 7 ? 5 : 7;
System.out.println(min);
min = 10 < 7 ? 10 : 7;
System.out.println(min);
6、运算符的优先级别
- 单目运算符包括! ++ --,优先级别高
- 优先级别最低的是赋值运算符
- 可以通过()控制表达式的运算顺序,()优先级最高
- 从右向左结合性的只有赋值运算符、三目运算符和单目运算符
- 算术运算符 > 关系运算符 > 逻辑运算符