Java的标识符
标识符是用来给类、对象、方法、变量、接口和自定义数据类型命名的。
给类、属性和方法命名的时候要遵守以下规则(命名规则):
1标识符可以由字母、数字、“$”和“_”组成,但是不能以数字开头
2不能使用Java中的关键字和保留字来给类、属性、方法命名
附加规范:
1标识符要能体现类、属性、方法的作用
2标识符对大小写敏感
3标识符可以使用汉字,但是不提倡使用
4自定义标识符尽量不要与JDK类库中的类重名
Java关键字、保留字
Java中一些赋以特定的含义、并用做专门用途的单词称为关键字(keyword)
48个关键字,2个保留字
Java关键字
访问权限修饰符 3 | private protected public |
数据类型 8 | byte short int long float double char boolean |
流程控制 11 | if,else switch,case,break,continue,default for do,while return |
异常处理 5 | try, catch, throw(抛出一个异常对象) , throws(声明一个异常可能被抛出) , finally |
类,接口,包 15 | class interface abstract static final extends implements native new super this void null import package |
线程 2 | synchronized(线程同步) volatile(标记字段可能会被多个线程同时访问,而不做同步) |
其他 4 | transient(修饰不要序列化的字段) instanceof(测试一个对象是否是某个类的实例) assert(断言条件是否满足) strictfp(浮点数比较使用严格的规则) |
super关键字:
用在子类中代表父类
1, 用在子类的构造器的第一行,通过“super([args])”形式调用父类中的构造器
2, 用在子类的构造器和方法中,通过“super.method([args])”形式调用父类中的方法
// 子类对象必须调用父类的构造器
//实际上因为只有Object类能创建对象,而Object是所有类的超父类,Object只有一个无参构造器
//在子类构造器中没有写super()时,则默认调用无参构造器,(使用super关键字)
this关键字:
this用来指代本类
1, 用在构造器的第一行,通过“this([args])”来调用本类的其他构造器
2, this用在构造器中还可以指代刚刚创建好的对象
3, 用在普通方法中,用来表示调用此方法的对象
static关键字:
a) static可以用过来修饰属性和方法,表此属性和方法与类相关
1> 静态的属性和方法在类加载的时候就会被加载同时分配内存空间
2> 静态的属性和方法可以直接通过“类名.attr/method”来调用
b) static可以用来修饰代码块 → 静态代码块
静态代码块只在类首次被加载的时候执行一次,我们可以用来完成一些一次性的初始化工作
单例模式:让一个类只产生一个实例
public class Dog { private static Dog dog = null; private Dog(){} public static Dog getDog(){ if(dog == null){ dog = new Dog(); } return dog; } } | public class Cat { private static Cat c = new Cat(); private Cat(){ } public static Cat getCat(){ return c; } } |
final关键字:
可以用来修饰类、方法和属性
1> 用final修饰的类,表示此类不能再被继承
2> 用final修饰的属性,表示此属性为常量,其值不能被改变
3> 用final修饰的方法,表示此方法不能被子类重写
Java保留字
const goto
Java数据类型
特殊字符
转义符 |
| Unicode值 |
\b | 退格(backspace) | \u0008 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\t | 制表符(tab) | \u0009 |
\“ | 双引号 | \u0022 |
\‘ | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
简单类型数据间的转换
成员变量和局部变量
成员变量 | 局部变量 |
直接定义在类中的变量 | 定义在类中其他代码块(匿名块,静态块,方法)中的变量 |
可以添加访问权限修饰符 | 不能使用访问权限修饰符 |
可以声明为static | 不能声明为static |
成员变量声明之后无需初始化可以直接使用 | 使用之前必须初始化 |
对于成员变量而言,如果未经初始化,则系统或默认的赋予初始值: 如果成员变量是数值类型,则默认值为0或者0.0 如果成员变量是boolean类型,则默认值为false 如果成员变量是char类型,则默认值为’\u0000’ 如果成员变量是引用类型,则默认值为null |
方法的重载与重写
方法的重载(overload):当类中的方法名相同时,称为方法的重载
方法的重写/方法覆盖(override):
当子类从父类中继承的方法不能满足子类需要的时候,我们可以在子类中对其进行改写,这一个过程称之为方法的重写。当子类对父类的方法进行改写子后,子类对象调用是改写后的方法。
| 方法的重写 | 方法的重载 | |
定义 | 在子类中对从父类继承的方法进行改写 | 在同一个类中定义多个方法名相同的方法 | |
涉及的类 | 父类和子类 | 本类 | |
限制 | 方法名 | 要和父类相同 | 多个方法的方法名相同 |
参数列表 | 要和父类方法的参数列表相同 | 多个方法的参数列表不能相同 | |
返回类型 | 要和父类方法的返回类型相同 | 无限制 | |
访问权限 | 不能使用比父类更为严格的访问权限 | 无限制 |