7-变量的使用

变量的使用

1.变量的分类

1.1 按数据类型分类

在这里插入图片描述

详细说明:

//1.整型:byte(1字节: -128 ~ 127) \ short(2字节) \ int(4字节) \ long(8字节)
// 开发中,常用的整型是:int
// 定义long型变量,需要以"L"或"l"结尾
//整型的常量,规定为int类型

//2.浮点型:float(4字节) \ double(8字节)
//定义float型变量,需要以"F"或"f"结尾
//开发中,常用的整型是:double
//从表数范围上来说,float的范围要大于long
//浮点型的常量,规定为double类型

//3.字符型:char(2字节)
//用来表示一个字符,此字符可以是英文字符、中文字符、数字、日文字符、…
//通常使用一对’'引起来

//4.布尔型:boolean
//boolean类型只能取值为true 或 false
//常用来进行条件判断、循环判断等操作

class VariableTest1 {
	public static void main(String[] args) {
		//1.整型:byte(1字节: -128 ~ 127) \ short(2字节) \ int(4字节) \ long(8字节)
		// 开发中,常用的整型是:int
		// 定义long型变量,需要以"L"或"l"结尾
		byte b1 = 127;
		

	//b1 = 128;

	short s1 = 4344;

	int i1 = 32432432;

	long l1 = 2353452432L;

	System.out.println("b1 = " + b1);
	System.out.println("s1 = " + s1);
	System.out.println("i1 = " + i1);
	System.out.println("l1 = " + l1);

	//2.浮点型:float(4字节) \ double(8字节)
	//定义float型变量,需要以"F"或"f"结尾
	//开发中,常用的整型是:double
	//从表数范围上来说,float的范围要大于long
	float f1 = 242.33f;
	
	double d1 = 23423423.3423;

	System.out.println("f1 = " + f1);
	System.out.println("d1 = " + d1);

	//3.字符型:char(2字节)
	//用来表示一个字符,此字符可以是英文字符、中文字符、数字、日文字符、...
	//通常使用一对''引起来
	char c1 = 'a';
	char c2 = '中';
	char c3 = '1';
	char c4 = 'ス';
	//char还可以表示为一个转义字符
	char c5 = '\n';
	c5 = '\t';

	System.out.println("hello" + c5 + "world");
	
	//char还可以表示为一个unicode的数值(了解)
	char c6 = '\u3344';
	System.out.println(c6);

	//4.布尔型:boolean
	//boolean类型只能取值为true 或 false
	//常用来进行条件判断、循环判断等操作
	
	boolean isYoung = true;
	//isYoung = 12;
	if(isYoung){
		System.out.println("对不起,不能注册结婚。可以多谈谈恋爱");
	}else{
		System.out.println("恭喜你,可以去成人场所了");
	}

}

}

1.2 按声明的位置分类(了解)

在这里插入图片描述

2.定义变量的格式:

格式:数据类型 变量名 = 变量值

3.变量使用的注意点:

① 定义的变量,在使用时,只能在其作用域内有效.
作用域:定义变量时,所在的一对{}
② 在相同作用域内,不能定义同名的变量
③ 变量的取值只能在其数据类型允许的值的范围内赋值。

class VariableTest {
	public static void main(String[] args) {

	//1.变量的声明:数据类型 变量名
	int myNum;

	//2.变量的赋值:变量名 = 变量值
	myNum = 10;

	int myAge = 30;
	//3.变量的使用
	myAge = 20;

	//4.不能再定义同名的变量
	int myAge = 20;

	System.out.println("我的年龄是:" + myAge);

	//5.myAge的赋值超出了int的范围
	//myAge = 2432536653542353463;//错误的

	boolean isMale = true;
	//isMale = 10;//错误的
}

public void test(){
	//System.out.println("我的年龄是:" + myAge);
}

}

4.基本数据类型变量间运算规则

4.1 涉及到的基本数据类型:

byte \ short \ int \long \float \ double \ char。不包含boolean类型

4.2 自动类型转换(只涉及7种基本数据类型)

容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果为容量大的数据类型。
byte、short、char —> int ----> long ----> float ----> double
注意:此时所说的容量大小,指的是保存数据的范围的大小,不是所占空间字节数的大小。

class VariableTest2 {
	public static void main(String[] args) {
		
	byte b1 = 10;
	int i1 = 20;
	int i2 = b1 + i1;

	System.out.println("i2 = " + i2);

	short s1 = 10;
	float f1 = 12.3F;
	double d1 = s1 + f1;
	float f2 = s1 + f1;

	long l1 = 10L;
	float f3 = 12.3F;
	float f4 = l1 + f3;
	System.out.println("f4 = " + f4);

	int i3 = 20;
	double d2 = i3;

	//**************************************
	//特别地:byte、short、char三者之间做运算的话,结果至少为int型
	byte bb1 = 10;
	short ss1 = 20;
	//错误的:
	//short ss2 = bb1 + ss1;
	int ii1 = bb1 + ss1;

	byte bb2 = 30;
	//错误的:
	//byte bb3 = bb1 + bb2;

	char cc1 = 'a';//ascii码:97   'A'的ascii码是:65
	//错误的:
	//char cc2 = cc1 + bb1;
	int ii2 = cc1 + bb1;
	System.out.println("ii2 = " + ii2);
}

}

4.3 强制类型转换(只涉及7种基本数据类型):

将容量大的数据类型的变量转换为容量小的数据类型的变量。
1)需要使用强制类型转换符:()
2)强制类型转换,可能会造成精度损失。

class VariableTest3 {
	public static void main(String[] args) {

int i1 = 10;
//错误
//byte b1 = i1;
byte b1 = (byte)i1;
System.out.println(b1);

int i2 = 1221;
//精度损失举例:
byte b2 = (byte)i2;
System.out.println(b2);

//精度损失举例:
double d1 = 12.3;
long l1 = (long)d1;
System.out.println(l1);

short s1 = 12;
//正确的,编译通过
int i3 = (int)s1;

char c1 = 'A';
int i4 = c1 + 32;
System.out.println("i4 = " + i4);

char c2 = (char)i4;  //(char)(c1 + 32);
System.out.println("c2 = " + c2);
//通常情况下,我们使用一对''声明一个字符。又因为一个字符对应着相应的ascii码,所以我们也可以
//直接使用此ascii码值给char型变量赋值。
char c3 = 97;
System.out.println("c3 = " + c3);

//区分如下的操作
char c4 = 2;
char c5 = '2'; //'2'对应的ascii码是50
int i5 = (int)c5;
System.out.println(i5);
}

}

4.4 String与8种基本数据类型间的运算

1.String是引用数据类型
2.String使用一对""给变量赋值
3.String 与基本数据类型(8种)变量间的运算:只能做 + 连接运算。且运算的结果为String类型

class StringTest {
	public static void main(String[] args) {
		String s1 = "Hello World!";
		String s2 = "a";
		String s3 = "";
		System.out.println(s1);
		System.out.println(s2);
		System.out.println(s3);

		int num1 = 10;
		String s4 = s1 + num1;
		System.out.println(s4);

		boolean b1 = true;
		char c1 = 'a';

		short ss1 = 123;

		String s5 = s2 + num1 + b1 + c1 + ss1;
		System.out.println(s5);

		//练习1
		char myChar = 'a';
		int myInt = 10;
		String myStr = "hello";
		System.out.println(myChar + myInt + myStr);//107hello
		System.out.println(myChar + (myInt + myStr));//a10hello
		System.out.println(myChar + myStr + myInt);//ahello10

		//练习2
		//*	*	
		System.out.println("*\t*");
		System.out.println('*' + '\t' + '*');
		System.out.println('*' + "\t" + '*');
		System.out.println('*' + '\t' + "*");
		System.out.println("*" + '\t' + '*');

		int num2 = 10;
		long lnum1 = num2;//自动类型提升
		//错误的
		//String myStr1 = num2;

		String myStr1 = num2 + "";//"10"
		//错误的
		//int num3 = (int)myStr1;
		//超纲:使用Integer的方法将String转换为int
		int num3 = Integer.parseInt(myStr1);
		System.out.println(num3 + 10);
}

}


		System.out.println("*" + '\t' + '*');

		int num2 = 10;
		long lnum1 = num2;//自动类型提升
		//错误的
		//String myStr1 = num2;

		String myStr1 = num2 + "";//"10"
		//错误的
		//int num3 = (int)myStr1;
		//超纲:使用Integer的方法将String转换为int
		int num3 = Integer.parseInt(myStr1);
		System.out.println(num3 + 10);
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值