1.命名
类的命名方式:HelloJava #每一个单词的首字母都大写。
方法的命名方式:myFirstAction #首字母小写,后面每个单词首字母大写。
源文件的命名方式:源文件名字必须与类名相同。
2.方法入口
main函数:public static void main(String[] args)
解析
public:访问修饰符
static:关键字
void :返回值类型
main:方法名称
String:类名
args:变量名
3.标识符原则
首字符:$ _ A-Z a-z
其他字符:$ _ A-Z a-z 0-9 #与c++相比多了
(
美
元
符
)
关
键
字
不
能
作
为
标
识
符
合
法
标
识
符
:
(美元符) 关键字不能作为标识符 合法标识符:
(美元符)关键字不能作为标识符合法标识符:A56_
不合法标识符:56_
4.修饰符
**访问控制修饰符:**default,public,protected,private
private<default<protected<public
default (默认): 同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
public : 对所有类可见。使用对象:类、接口、变量、方法。
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
非访问控制修饰符:final,abstract,static,synchronized等
static :用来修饰类方法和类变量。
1.静态变量
无论一个类实例化多少个对象,静态变量只有一份拷贝,供所有该类的所有对象使用。
2.静态方法
静态方法只能使用静态变量,从参数列表获取数据,然后计算这些数据。
final :用来修饰类、方法和变量。
1.final 类
修饰的类不能够被继承,没有类能够继承 final 类的任何特性。
2.final方法
父类中的 final 方法可以被子类继承,但是不能被子类重写(声明 final 方法的主要目的是防止该方法的内容被修改)。
3.final变量
变量一旦赋值后,不能被重新赋值。被 final 修饰的实例变量必须显式指定初始值。final 修饰符通常和 static 修饰符一起使用来创建类常量
**abstract :**用来创建抽象类和抽象方法。
1.抽象类
不能实例化对象,唯一目的是对该类进行扩充。一个类不可以同时被final和abstract修饰
**注意:**如果一个类中包含抽象方法,那么这个类必须声明为抽象类。
2.抽象方法
抽象方法没有任何实现,具体的方法由子类提供。
注意:
- 抽象方法不能被声明位final或者final;
- 任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类;
如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。
抽象类可以不包含抽象方法。
**synchronized 、transient、 volatile 修饰符:**主要用于线程的编程。
1.synchronized
synchronized关键字声明的方法同一时间只能被一个线程访问。synchronized 修饰符可以应用于四个访问修饰符。
2.transient
序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。该修饰符包含在定义变量的语句中,用来预处理类和变量的数据类型。
3.volatile
volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。一个 volatile 对象引用可能是 null。
5.java关键字
不能用做常量,变量或者标识符
6.注释方法
单行注释:/
多行注释:/**/
7.继承
同C++,可继承父类的属性和方法。
不同之处是:
C++是父类和子类:被继承的类是父类,派生类是子类
JAVA是超类和子类:被继承的类是超类(super class),派生类是子类(sub class)