当前位置:网站首页>第四课 标识符、关键字、变量、变量的分类和作用域、常量
第四课 标识符、关键字、变量、变量的分类和作用域、常量
2022-08-03 11:24:00 【draper-crypto】
引言:
本系列博文是作者本人在自学JAVA过程中所写的笔记,与作者本人学习进度一致,欢迎大家参考
一、标识符
标识符是用来给变量、类、方法以及包进行命名的。
1.四大规则:
- (1)必须以字母、下划线_、美元符号$开头。
- (2)其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合。
- (3)大小写敏感,且长度无限制。
- (4)不可以是Java的关键字。
2.标识符的使用规范
①表示类名的标识符:每个单词的首字母大写,如Man,GoodMan
②表示方法和变量的标识符:第一个单词小写,从第二个单词开始首字母大写,我们称之为“驼峰原则”,如eat(),eatFood()
二、关键字
Java关键字是Java语言保留供内部使用的,如class用于定义类。我们不能使用关键字作为变量名或方法名。
abstract | assert | boolean | break | byte | case |
---|---|---|---|---|---|
catch | char | class | const | continue | default |
do | double | else | extends | final | finally |
float | for | goto | if | implements | import |
instanceof | int | interface | long | native | new |
null | package | private | protected | public | return |
short | static | strictfp | super | switch | synchronized |
this | throw | throws | transient | try | void |
volatile | while | ||||
三、变量(variable)
变量的本质
①变量本质上就是代表一个“可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。
②可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。
③Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。比如,inta=3;表示a变量的空间大小为4个字节。
例1:
//代码1-范例
public class TestVariable{
public static void main(String[] arg){
int age = 18;
int b;
System.out.println(age);
System.out.println(b);
}
}
产生报错:
搜寻原因发现b在使用之前必须进行初始化,即给其赋一个值
修改后:
//代码2-代码1的修改
public class TestVariable{
public static void main(String[] arg){
int age = 18;
int b; //未初始化
System.out.println(age);
b = 12; //赋给b一个值
System.out.println(b);
}
}
成功编译,运行如下
四、变量的分类和作用域
变量有三种类型:
局部变量、成员变量(也称为实例变量)和静态变量。
类型 | 声明位置 | 从属于 | 生命周期(作用域) |
---|---|---|---|
局部变量 | 方法或语句块内部 | 方法/语句块 | 从声明位置开始,直到方法或语句块执行完毕,局部变量消失 |
成员变量 (实例变量) | 类内部,方法外部 | 对象 | 对象创建,成员变量也跟着创建。对象消失,成员变量也跟着消失; |
静态变量 (类变量) | 类内部,static修饰 | 类 | 类被加载,静态变量就有效;类被卸载,静态变量消失。 |
局部变量(localvariable)
方法或语句块内部定义的变量。生命周期是从声明位置开始到到方法或语句块执行完毕为止。局部变量在使用前必须先声明、初始化(赋初值)再使用
五、常量(Constant)
在Java语言中,用关键字final来定义一个常量。常量一旦被初始化后不能再更改。
(1)格式
final type varName = value;
(2)计算圆面积及周长
//代码3-计算圆面积及周长
public class TestConstant{
public static void main(String[] args){
final double PI = 3.14;
int r = 4;
double area = PI*r*r;
double circle = 2*PI*r;
System.out.println("面积是:"+area);
System.out.println("周长是:"+circle);
}
}
成功运行:
六、一些建议
变量和常量命名规范:
- 所有变量、方法、类名: 见名知义
- 类成员变量: 首字母小写和驼峰原则:
monthSalary
- 局部变量: 首字母小写和驼峰原则
- 常量: 大写字母和下划线:
MAX_VALUE
- 类名: 首字母大写和驼峰原则:
Man,GoodMan
- 方法名: 首字母小写和驼峰原则:
run(),runRun()
边栏推荐
- [Output each bit of an integer, from high to low.With and without recursion]
- Generate interface documentation online
- 干货!一种被称为Deformable Butterfly(DeBut)的高度结构化且稀疏的线性变换
- [论文阅读] (23)恶意代码作者溯源(去匿名化)经典论文阅读:二进制和源代码对比
- 微信小程序获取手机号
- 【MySQL】数据库进阶之索引内容详解(上篇 索引分类与操作)
- LeetCode 899 Ordered queue [lexicographical order] HERODING's LeetCode road
- SmobilerService 推送实现
- Realize 2d characters move left and right while jumping
- MySQL之json数据操作
猜你喜欢
【MySQL功法】第5话 · SQL单表查询
redis基础知识总结——数据类型(字符串,列表,集合,哈希,集合)
CDH6.3.2开启kerberos认证
html网页如何获取后台数据库的数据(html + ajax + php + mysql)
如何检索IDC研究报告?
成为优秀架构师必备技能:怎样才能画出让所有人赞不绝口的系统架构图?秘诀是什么?快来打开这篇文章看看吧!...
LyScript 实现对内存堆栈扫描
LeetCode 899 Ordered queue [lexicographical order] HERODING's LeetCode road
【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解
第四周学习 HybridSN,MobileNet V1,V2,V3,SENet
随机推荐
asdn涨薪技术之apifox+Jenkins如何玩转接口自动化测试
【冒泡排序以及奇数偶数排列】
请问应该用什么关键字将内容主题设置为 dark 呢
【MySQL功法】第2话 · 数据库与数据表的基本操作
Web Server 设置缓存响应字段的一些推荐方案
Android 技术面试准备(含面试题及答案)
在线生成接口文档
CADEditorX ActiveX 14.1.X
Binary search tree (search binary tree) simulation implementation (there is a recursive version)
How to use outside the PHP command in the container
Classical Architecture and Memory Classification of Embedded Software Components
This article takes you to understand the principle of CDN technology
Redis发布订阅和数据类型
Fastjson反序列化
【一起学Rust】Rust包管理工具Cargo初步了解
小身材有大作用——光模块寿命分析(二)
2022年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多
LeetCode 899 Ordered queue [lexicographical order] HERODING's LeetCode road
小身材有大作用——光模块基础知识(一)
缓存--伪共享问题