当前位置: 首页>后端>正文

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

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

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

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

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

必须由英文字母、数字和下划线、$组成
不能以数字作为开头
不能使用Java中的关键字

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

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

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

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

使用变量
变量的三个要素

变量名
数据类型
初始值
定义变量的方法

定义变量,同时初始化
数据类型 变量名 = 初始值;
如:int hp = 100;
先定义变量,然后再初始化
数据类型 变量名;
变量名 = 值;
int hp;
hp = 100;
同时定义多个类型相同的变量
数据类型 变量名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;
}
}

变量的数据类型

注意:

long类型变量赋值时,数字后面要加L或l,推荐使用L
long num = 100L;
float类型变量赋值时,浮点数后要添加f或F,否则默认是double类型,赋值出错
float num = 10.5f;
char的值用单引号括起来
char c = ‘A’;
类型转换
不同的数值类型之间可以进行数据类型的转换
数值类型有:
byte\short\int\long\float\double\char
数值类型的取值范围从小到大排列为:

类型转换:

自动类型转换
从小的类型转换为大的类型
编译器自动完成
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;
1
2
3
4
5
6
7
8
9
10
11
总结:类型转换都会对程序性能有影响。

练习

找出下面代码中不能通过编译的代码
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;
1
2
3
4
5
6
7
8
9
10
11
12
键盘输入
从键盘输入值给变量赋值,需要用到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
3
4
5
6
7
8
9
10
11
12
13
14
15
结束
作业:
1、输入游戏角色的名称、攻击力、血量、级别等信息,并输出。
2、输入两个整数,交换两个变量的值

————————————————
版权声明:本文为CSDN博主「恒哥~Bingo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013343114/article/details/112217062


https://www.xamrdz.com/backend/3qj1922748.html

相关文章: