当前位置:网站首页>第四课 标识符、关键字、变量、变量的分类和作用域、常量
第四课 标识符、关键字、变量、变量的分类和作用域、常量
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()
边栏推荐
- 缓存--伪共享问题
- RICON:NER SOTA 又来!
- "Global Digital Economy Conference" landed in N World, Rongyun provides communication cloud service support
- 笔试题:金额拆分
- The effects of the background and the Activiti
- 本周四晚19:00知识赋能第4期直播丨OpenHarmony智能家居项目之设备控制实现
- 二叉搜索树(搜索二叉树)模拟实现(有递归版本)
- 劝退背后。
- LyScript implements memory stack scanning
- SmobilerService 推送实现
猜你喜欢
Skills required to be a good architect: How to draw a system architecture that everyone will love?What's the secret?Come and open this article to see it!...
Simple implementation of a high-performance clone of Redis using .NET (1)
国内数字藏品与国外NFT主要有以下六大方面的区别
Web Server 设置缓存响应字段的一些推荐方案
「全球数字经济大会」登陆 N 世界,融云提供通信云服务支持
Lease recovery system based on PHP7.2+MySQL5.7
完全背包问题
通过组策略安装软件和删除用户配置文件
MySQL数据库实战(1)
第四周学习 HybridSN,MobileNet V1,V2,V3,SENet
随机推荐
微信多开批处理(自动获取安装路径)
[LeetCode—Question 2 Sum of Two Numbers Detailed Code Explanation ] The source code is attached, which can be copied directly
[Output each bit of an integer, from high to low.With and without recursion]
3分钟实现内网穿透(基于ngrok实现)
Activiti产生的背景和作用
微信小程序获取用户手机号码
【MySQL】数据库进阶之索引内容详解(上篇 索引分类与操作)
SmobilerService 推送实现
浅谈SVN备份
CADEditorX ActiveX 14.1.X
LyScript implements memory stack scanning
This article takes you to understand the principle of CDN technology
试题G:单词分析 ← 第十一届蓝桥杯大赛第二场省赛赛题
完全背包问题
【LeetCode—第2题 两数之和 代码详解 】附有源码,可直接复制
机器学习(第一章)—— 特征工程
智能日报脚本
【TypeScript】为什么要选择 TypeScript?
使用.NET简单实现一个Redis的高性能克隆版(一)
微信小程序获取手机号