标识符的命名规则和命名规范

IdentifierTest.java

/*
	1、在java程序当中,使用editplus工具进行代码编写的时候,
	有一些单词是蓝色,有的是红色,有的是绿色,有的是黑色,
	有的是紫色,有的是粉色......

	2、注意:在java源代码中,在editplus工具中显示的高亮颜色为黑色是,
	这个单词属于标识符。

	3、标识符可以标识什么?
		可以标识:
			类名
			方法名
			变量名
			接口名
			常量名
			......
	
	4、标识符:凡是程序员自己有权利命名的单词都是标识符。
	
	5、标识符可以随意编写吗,有命名规则吗?
		什么是命名规则?
			命名规则属于语法机制,必须遵守,不遵守命名规则标识符不符合语法,
			这样,编译器
		规则1:标识符只能由数字、字母(包括中文)、下划线_、美元符号组成,
		不能含有其他符号。

		规则2:标识符不能以数字开头.

		规则3:关键字不能做标识符。例如:public class static void这些蓝色字体
		都是关键字,关键字是不能做标识符的。

		规则4:标识符是严格区分大小写的。A和a不一样

		规则5:标识符理论上是没有条件限制的
*/

public class IdentifierTest{
	// main是一个方法的名称,属于标识符
	// 但是这个标识符不能修改,因为这个main是SUN固定死的。
	public static void main(String[] args){
	}
	// dosome是一个方法名,可以改成其他名字
	public static void dosome(){
		// k是一个变量名
		int k=100;
		// age是一个变量名				
		int age=20;
	}
}

/*
	编译报错,错误信息是:
		错误:需要<标识符>
		错误原因:编译器检测到class这个单词,那么编译器会从class这个
		单词后面找类名,而类名是标识符,编译器找了半天没有找到标识符,
		因为123ABC不是标识符,所以编译器提示的错误是:需要<标识符>

		解决办法:
			将123ABC修改为合法的标识符。
*/
class 123ABC{
}

//类名是标识符,标识符"中"不能有空格
/*
编译器的错误信息是:
	错误:需要‘{’
	编译器检测到class,然后找到class后面的标识符,编译器找到了一个合法的标识符
	叫做“hello”,然后编译器继续往后找“{”,结果没有找到“{”,所以报错了。

	解决办法:
		方法1:是把world删除
		方法2:把空格删除
*/
class hello world{
}

class _A{
}

// 关键字不能做标识符
/*
class public{
}
*/

// public1不是关键字
class public1{
}

class B{
}
class b{
}
// 虽然java中的标识符严格区分大小写
// 但是对于类名来说,如果java源文件中同时出现了:A类和a类
// 那么谁在前就生成谁。大家最好不要让类名“相同”。
// 最好类名是不同的。
class HelloWorld{
}

class Helloworld{
}

IdentifierTest2.java

/*
	题目:
		1.创建一个java文件,起名123.java可以吗?
			可以,123并不是标识符,只是一个文件名。
		只不过在123.java文件中无法定义public的类。

	标识符除了命名规则之外,还有命名规范:
		1、命名规则和命名规范有什么区别?
			命名规则是语法,不遵守就会编译报错。
			命名规范知识说,我们尽量按照统一的规范来进行命名,不符合规范也行,
			代码是可以编译通过的,但是你的代码风格和大家不一样,这个通常也是
			不允许的。
			
			规则类似于:现实世界中的法律。
			规范类似于:现实世界中的道德。
			
			统一按照规范进行的话,代码的可读性很好。
			代码很容易让其他开发人员理解。
		
		2、具体的命名规范是哪些呢?
			
			规范1:见名知意(这个标识符在起名的时候,最好一看这个单词就知道什么意思。)
			
			规范2:遵循驼峰命名方式,什么是驼峰(一高一低,一高一低....)
				驼峰有利于单词于单词之间很好的进行分隔
				IdentifierTest,这个一眼就能看出来是2个单词。
			
			规范3:类名、接口名有特殊要求
				类名和接口名首字母大写,后面每个单词首字母大写
			
			规范4:变量名和方法名有特殊要求
				变量名和方法名首字母小写,后面每个单词首字母大写

			规范5:所有“常量”名:全部大写,并且单词与单词之间采用下划线衔接。
				USER_AGE:用户年龄
				MATH_PI:固定的常量3.1415926......

*/

public class IdentifierTest2{
	public static void main(String[] args){
		
		// age和name让读者一眼就看出这两个标识符代表的含义,可读性很强
		int age=20;
		int name="zhangsan"
	}
}

123.java

class T{
}

// 在123.java文件中定义public的类行吗?
// 不行,因为之前有一条规则是这样说的:public的类可以没有
// 但是如果有public的类,也只能有一个,并且public的类的
// 名字必须和源文件保持一致。

public class hello{ 
	// 123.java:9: 错误: 类 hello 是公共的, 应在名为 hello.java 的文件中声明
}


public class 123{ 
	// 但是最终尴尬了,因为123不能做标识符。是错误的标识符。
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值