Java基础02 变量、标识符和类型转换

为热爱编程的你点赞!
学习SpringBoot实战课程 https://edu.csdn.net/course/detail/31433
学习SpringCloud入门课程 https://edu.csdn.net/course/detail/31451


前言

我们继续Java基础的学习,本章的内容是变量和标识符以及数据类型转换

标识符

什么是标识符

标识符就是Java中的各种名字,由程序员来定义,包括:

  • 类名
  • 方法名
  • 变量名
  • 包名
  • 常量名

标识符的命名规则

标识符必须按一定的规则定义,违反命名规则的标识符,会出现编译错误
Java标识符的命名规则是:

  1. 必须由英文字母、数字和下划线、$组成
  2. 不能以数字作为开头
  3. 不能使用Java中的关键字
    在这里插入图片描述

标识符的命名规范

命名规范不是强制性的,但良好的命名规范,对代码的可读性和维护性是非常重要的。
Java的命名规范包括:

  1. 见名知义,需要由有意义的英文单词
  2. 变量名和方法名,驼峰命名,由一个或多个单词组成,第一个单词的开头小写后面的单词开头大写,如:goodsPrice、person、myFirstPersonAge
  3. 类名,类似驼峰命名,每个单词的开头都是大写,如:HelloWorld、MyFirstHomework
  4. 包名:全部单词小写中间由.连接,域名.公司名.项目名.模块名,如:com.sun.oa.login
  5. 常量名,全部单词大写,中间由下划线分隔,如:MAX_VALUE

练习:
请判断哪些是合法的标识符:

HelloWorld
username2
user_name
_userName
$abc_123 
2UserName
user#Name
Hello  World
java
class

变量

变量的概念

变量是在JVM的内存中的一个个空间,用于存储Java程序中各种数据,变量中的数据可以随时修改。
如在执行游戏时,英雄的名字、血量、魔法值、等级这些都可以用变量保存。
在这里插入图片描述

使用变量

变量的三个要素

  1. 变量名
  2. 数据类型
  3. 初始值

定义变量的方法

  1. 定义变量,同时初始化
    数据类型 变量名 = 初始值;
    如:int hp = 100;
  2. 先定义变量,然后再初始化
    数据类型 变量名;
    变量名 = 值;
    int hp;
    hp = 100;
  3. 同时定义多个类型相同的变量
    数据类型 变量名1 = 值,变量名2 = 值;
    int hp = 100,mp = 300;

变量的作用域

作用域是变量能够起作用的范围

  • 局部变量
    在方法中定义的变量,作用域就是定义该变量的方法内部,局部变量在使用之前必须初始化。
  • 全局变量
    在类中的所有方法外面定义的变量,作用域就是整个类,全局变量如果不初始化会有默认值。
public class Demo01 {
	
	int x = 9; //全局变量
	
	public static void main(String[] args) {
		//局部变量
		String name = "貂蝉";
		int hp = 100;
		int mp = 200;
		System.out.println("英雄的名字是:" + name);
		System.out.println("英雄的血量是:" + hp);
		System.out.println("英雄的魔法值是:" + mp);
	}

}

执行下面代码有什么问题?

public class Demo02 {
	public static void main(String[] args) {
		int num1;
		int num2 = num1 + 1;
	}
}

变量的数据类型

在这里插入图片描述

注意:

  1. long类型变量赋值时,数字后面要加L或l,推荐使用L
    long num = 100L;
  2. float类型变量赋值时,浮点数后要添加f或F,否则默认是double类型,赋值出错
    float num = 10.5f;
  3. char的值用单引号括起来
    char c = ‘A’;

类型转换

不同的数值类型之间可以进行数据类型的转换
数值类型有:
byte\short\int\long\float\double\char
数值类型的取值范围从小到大排列为:
在这里插入图片描述
类型转换:

  1. 自动类型转换
    从小的类型转换为大的类型
    由编译器自动完成
long num = 200; //200属于int类型,编译器自动会将200转换200L,赋值给long类型的变量num。
byte num2 = 100;//100在byte取值范围内,100作为byte保存。
int num1 = num2; //byte -> int
double price = 2500; //int -> double
  1. 强制类型转换
    大的类型转换为小的类型
    需要手动完成
数据类型 变量名 = (数据类型)值;

注意:强制类型转换可能丢失精度

/*
对于整数值编译器会看做char数值进行处理,
对于变量编译器不会进行处理,就需要强制类型转换
*/
int num3 = 99;
char char1 = (char)num3;
/*
对于short类型,如果赋值的数字在-32768~32767之间,编译器会作为short数字进行处理
如果超过该范围,就会作为int数字处理
*/
short num5 = (short)50000;

总结:类型转换都会对程序性能有影响。

练习

找出下面代码中不能通过编译的代码
int n1 = 20;
int n2 = 20.5;
int n3 = 100L;
float f1 = 20;
float f2 = 5.5;
float f3 = 3.3f;
double d1 = 15;
double d2 = 33.3f;
double d3 = 20L;
d1 = n1 + f1;  //表达式的类型由表达式中最大的数据类型决定
f1 = d1;

键盘输入

从键盘输入值给变量赋值,需要用到Scanner类(扫描器)

//导入Scanner
import java.util.Scanner;
public class Demo03 {
	public static void main(String[] args) {
		//创建Scanner对象
		Scanner input = new Scanner(System.in);
		//输入字符串
		String name = input.next();
		//输入整数
		int age= input.nextInt();
		System.out.println("英雄的名字是:" + name);
		System.out.println("英雄的年龄是:" + age);
	}

}

结束

作业:
1、输入游戏角色的名称、攻击力、血量、级别等信息,并输出。
2、输入两个整数,交换两个变量的值
大家做完后可以把代码发到评论区一起讨论


大家如果需要学习其他Java知识点,戳这里 超详细的Java知识点汇总

猜你喜欢

转载自blog.csdn.net/u013343114/article/details/112217062