目录
标识符
标识符是什么
首先,我们要先了解什么是标识符:在java源程序中用来标识某个实体的一个符号,这个符号在不同的环境下可以表示不同的含义。标识符也可以用一句话概括:凡事程序员可以自己命名的单词都是标识符。标识符是用户编程时使用的名字,用于给变量、常量、函数、语句
块等命名,以建立起名称与使用之间的关系。
标识符可以标识什么
可以标识:
类名
方法名
变量名
接口名
常量名
......
//BiaoShiFuTest是一个类名,是标识符
public class BiaoShiFuTest{
// main是一个方法的名称,属于标识符
// 但是这个标识符不能修改,因为这个main是SUN公司固定死的。
public static void main(String[] args){
}
//doSome是一个方法名,可以改成其他的名字
public static void doSome(){
// k是一个变量名
int k = 100;
}
}
标识符的命名规则
规则1:标识符只能由数字、字母(包括中文)、下划线_、美元符号$组成,不能含有其它符号(也不能有空格)。
规则2:标识符不能以数字开头
规则3:关键字不能做标识符。例如:public class static void 这些蓝色的字体都是关键字,关键字是不能做标识符的。
规则4:标识符是严格区分大小写的。大写A和小写a不一样。
规则5:标识符理论上是没有长度限制的。
注:命名规则属于语法机制,必须遵守,不遵守命名规则标识不符合语法,编译器会报错。
标识符的命名规范
规范1:见名知意(这个标识符在起名的时候,最好一看这个单词就知道啥意思。)
规范2:遵循驼峰命名方式,什么是驼峰(一高一低,一高一低...)
驼峰有利于单词与单词之间很好的进行分隔
BiaoShiFuTest,这个很好,一眼就能看出来是4个单词。
规范3:类名、接口名有特殊要求
类名和接口名首字母大写,后面每个单词首字母大写。
规范4:变量名、方法名有特殊要求
变量名和方法名首字母小写,后面每个单词首字母大写。
规范5:所有“常量”名:全部大写,并且单词和单词之间采用下划线衔接。
注:命名规范不遵守程序也可以运行,但是建议符合以上要求,增强程序的可读性。
关键字
什么是关键字
在SUN公司开发Java语言的时候,提前定义好了一些具有特殊含义的单词,这些单词全部小写,具有特殊含义,不能用作标识符。
切记:
java语言中的所有关键字都是全部小写。
关键字有哪些
以上的关键字不需要专门记忆,在以后的学习中会慢慢接触到。
变量
字面量
在了解变量之前,我们要先了解什么是字面量,通俗的来讲,字面量就是“数据”。数据被分为:整数型,浮点型,字符型,字符串型四种。
10
1.23
true
false
'a'
"abc"
以上这些都是数据,在程序中都被叫做“字面量”。
变量是什么
变量是内存当中存储数据最基本的单元,将数据(字面量)放到内存当中,给这块内存空间起一个名字,这就是变量。所以变量就是内存当中的一块空间,这块空间有名字、有类型、
有值。
对于一个变量来说,包括三要素:
变量的数据类型(类型决定变量空间的大小)
变量的名字(名字用于访问变量空间中存储的值)
变量中保存的值(值是变量保存的数据)
变量定义
变量怎么定义/声明
数据类型 + 名字 + 值
int age = 20;
在java语言中有一个规定,变量必须先声明,再赋值才能访问。(没有值相当于这个空间没有开辟。)
public class Test{
public static void main(String[] args){
// 定义一个int类型的变量,起名age,该变量用来存储人的年龄。
int age;
System.out.println(age);
}
}
以上程序在声明了变量之后未赋值,程序编译会报错。
ps:
1、方法体中的代码会依次逐行执行,如果在一个方法中定义了一个变量,并且赋值,但是在定义这个变量之前就访问了这个变量,程序编译会报错。
public class Test{
public static void main(String[] args){
// 方法体当中的代码遵循自上而下的顺序依次逐行执行。
// 所以以下程序编译报错。
System.out.println(k);
// 只有执行了这一行代码,k变量在内存中才会开辟空间。
int k = 10;
}
}
2、在“同一个”域“当中,变量名不能重名!但可以重新赋值!
可以将一个“域”理解为一个大括号。
public class Test{
public static void main(String[] args){
int i = 100;
//double i = 2.0; // 重名了编译器会报错,不允许。
i = 300; // 可以重新赋值。
}
}
变量的分类
变量可以根据出现的位置进行划分:
在方法体当中声明的变量:局部变量。
在方法体之外,类体内声明的变量:成员变量。
重点依据是:声明的位置。
注意:局部变量只在方法体当中有效,方法体执行结束该变量的内存就释放了。
public class VarTest07{
// 成员变量i
int i = 100;
// 主方法
public static void main(String[] args){
// 局部变量
int k = 100; // 当main方法结束后k的内存空间释放。
}
}
变量的作用域
变量的作用域?
1、什么是作用域?
变量的有效范围。
2、关于变量的作用域,大家可以记住一句话:
出了大括号就不认识了。
public class VarTest08{
// 成员变量
int i = 10000;
public static void main(String[] args){
// 局部变量
int i = 100; // 这个i的有效范围是main方法。
System.out.println(i); // 这个i是多少?
//这个是不允许的,在同一个域中
//double i = 100.0;
for(int n = 0; n < 10; n++){ // 这里声明的n变量只属于for域。for结束后n释放。
}
// for循环执行结束之后,在这里不可以访问n变量
//System.out.println(n); //错误: 找不到符号
int k; // 属于main域。
for(k = 0; k < 10; k++){
}
// 能否继续访问k呢?
System.out.println(k);
}
// 这个方法怎么定义先不用管,后面会学习。
public static void x(){
// 错误: 找不到符号
// System.out.println(i); // i是无法访问的。
// 这个i的有效范围是x方法。
// 局部变量
int i = 200; // 所以这个i和main方法中的i不在同一个域当中。不冲突。
}
}
3、java中有一个很重要的原则:
就近原则。哪个离我近,就访问哪个。如果一个成员变量和一个局部变量同名假设都为i,访问变量i时,距离成员变量近就访问成员变量,距离局部变量近就访问局部变量。
ps:笔者最近开始自学javase,将自己的一些理解写下来一起交流,其中有许多错误和不成熟的地方,希望可以指出。