JavaSE:标识符,关键字和变量

目录

标识符

标识符是什么

标识符可以标识什么

 标识符的命名规则

标识符的命名规范

关键字

什么是关键字

关键字有哪些

变量

字面量

变量是什么

变量定义

变量的分类

变量的作用域


标识符

标识符是什么

        首先,我们要先了解什么是标识符:在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,将自己的一些理解写下来一起交流,其中有许多错误和不成熟的地方,希望可以指出。


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值