回顾Java课本容易遗忘的知识(一)

1、命名惯例和约定

1.1、包

示例:
edu.apho.dom 
com.mycompany.mysoft
  • 采用从“大到小的”方式,与网络域名的顺序相反。
  • 每级包名都用小写。
  • 若由多个单词连在一起则直接连在一起。

1.2、类

示例:
Account
MobilePhone
VipCustomer
  • 使用“大驼峰”表示法—每个单词首字母大写,其余小写。
  • 尽量使用名词结尾。

1.3、接口

示例:
Drawable
IShape
MouseListenser
  • 使用“大驼峰”表示法。
  • 通常以able结尾,有时也以I(interface)开头。

1.4、方法

示例:
deleteStudent
getUserInfo
isFemale
setParentNode
  • 使用“小驼峰”表示法—从第二个单词开始,每个单词的首字母大写,其余小写。
  • 第一个单词一般是动词。
  • 若是取值型(读)一般以get开头。
  • 若取的值是Boolean型一般以is开头。
  • 若是设值型(写)一般以set开头。

1.5、字段和局部变量

示例:
StudentWithMaxAge
alllMaleEmployees
loginDialog
okButton
  • 使用“小驼峰”表示法。
  • 命名应能体现变量值的意义。
  • 短名称一般只用于局部变量且是基本类型,如循环结构中的整数计数器可命名为i、j 、k1、k2等
  • 若变量是数组或若容器,则应该使用单词的复数形式。
  • GUI组件型变量也可以采用“匈牙利”表示法—类型缩写前缀+变量描述,如btnLogin、dlgDeletion、frmLogin等

1.6、常量

示例:
PI
WINDOW_HEIGHT
  • 全部大写,多个单词用下划线隔开。

2、final常量

  • final常量是指以final关键词修饰的变量,它只能被赋值一次,且以后不允许再被赋值。

3、自动转换(隐式转换)

自动转换规则:
byte,short,char--->int--->long--->float--->double

4、基本类型的包装类

每一个包装类读提供了大量的方法,可以通过这些方法完成常用的与基本类型相关的操作

4.1、创建包装类的对象

格式:
包装类名   对象名   =   new   包装类名(基本类型或字符串);
示例:
Integer intobj1  =  new  Integer(10);   //从基本类型字面常量创建包装类对象
Integer intobj2  =  new  Integer("10");   //从字符串类型创建包装类对象
Integer intobj3  =  new  Integer(a);   //从基本类型变量创建包装类对象

4.2、将字符串类型解析为基本类型

包装类名.parseXxx(字符串[,进制]);
int i = Integer.parseInt("12");    //i =12

4.3、从包装类对象获得值

格式:
对象名.xxxValue();
示例:
Integer intobj1  =  new  Integer(10);   //从基本类型字面常量创建包装类对象
int i = intobj.intValue();   //i=10

4.4、将基本类型转为字符串

格式:
包赚类名.toString(基本类型[,进制]);

5、数组

5.1、一维数组

声明格式:
类型[] 数组名;	
类型 数组名[];
示例:
int [] a;    //基本类型的数组a
String names[];    //对象类型的数组names

创建一维数组:
int[] a = new int[5];  //声明并创建
或
int [] a ={3,2,1}     //声明并赋值

5.2、二维数组

声明:
类型[][] 数组名;
类型 数组名[][];

创建:
数组名 = new 类型[行数][列数];      //a = new [3][4];
类型[][] 数组名 = new 类型[行数][列数];    //声明并创建
类型[][] 数组名 ={
   
   {第一行初值},{第二行初值},...};    //int a = {
   
   {1,1,1},{2,3,4},{5,5,6}};

6、变量的作用域

6.1、局部变量的作用域

根据变量出现在类中的位置可把变量分为局部变量和字段

  • 局部变量声明在方法的内部:
    • 方法体声明的变量:其作用域为声明处至方法结束。
    • 语句块(for、if等)声明的变量:其作用域为声明处至语句块结束。
    • 方法的形参:其作用域为整个方法体。

6.2、字段的作用域

  • 字段的作用域是整个类体而并不是从声明处开始(字段间的访问除外)。字段可以被类中的任何方法访问,无论该字段是声明在这些方法之前还是之后。

6.3、重名的规则

  • 形参可与字段重名。
  • 方法体中的局部变量可与字段重名。
  • 方法体中的局部变量不能与形参重名。
  • 方法体内的语句块定义的变量不能与方法体的变量重名。
  • 方法体中变量可以与之前语句块内声明的变量重名。
  • 不同语句块之间的变量可以重名,因为语句块定义的变量作用域为至语句块结束。
  • 不同方法的形参可以重名。
  • 不同方法的局部变量可以重名。
  • 不能访问不同方法中声明的变量。
  • 字段访问也有顺序,前面声明的字段不能访问后面声明的字段。

7、this关键字

this关键字只能用于方法内部,其表示当前对象,即调用this所在所在方法的那个对象。this关键字通常用于以下三种场合

7.1、访问字段和方法

  • 当字段与局部变量未重名时,在方法内通过变量名就可以区分访问的是字段还是局部变量。(this是类的对象噢)
  • 当字段和局部变量重名时,则必须通过this关键字访问字段。
  • 调用同一个类的方法时可以直接调用,也可以加上this关键字增加代码的可读性。

7.2、在构造方法中调用本类的其他构造方法

  • 以this关键字调用本类构造方法的语句只能出现在构造方法中,且必须作为构造方法的第一条语句。

7.3、返回当前对象

  • 有时为了简化代码,需要多次调用对象的方法,此时可以将this关键字放在return之后----返回当前对象。

8、常用修饰符

8.1、访问权限修饰符

8.1.1、public修饰符

中文称法:公共的
可修饰:类,字段,方法
可见性/可访问性 :包外,子类,包内,类内
  • 在同一个源文件中可以定义多个类,但其中只能有一个类是以public修饰的,且源文件要与该类严格一致。

8.1.2、protected修饰符

中文称法:受保护的
可修饰:字段,方法
可见性/可访问性 :子类,包内,类内

8.1.3、private修饰符

中文称法:私有的
可修饰:字段,方法
可见性/可访问性 :类内

8.1.3、包权限

无任何修饰符

中文称法:包权限
可修饰:类,字段,方法
可见性/可访问性 :类内

8.2、final修饰符

可修饰:类,方法,字段,局部变量

  • 类:最终类,即类不能被继承。final类中的所有方法均是final方法。
  • 方法:最终方法,即方法不能被子类重写。
  • 字段、局部变量:以final修饰的字段和局部变量,一旦赋值便不能再次赋值。

8.3、static修饰符

可修饰:类,方法,字段,语句块

  • 类:static只能修饰嵌套类。
  • 方法、字段:静态方法可直接通过类名访问,而无需创建对象,因此也称为类方法。换句话说,静态方法和字段独立于类的任何对象,它们在类被加载后(创建对象前)就已经初始化了。无论创建了多少个对象(包括0个),静态方法和字段只有一份,并被该类的所有对象共享。
  • 语句块:静态语句块,位于方法外部。当类被加载时,虚拟机会执行语句块中的代码。这对于想在类的加载阶段做一些初始化操作的场合非常有用。

9、设计模式

9.1、单例模式

单例即单个实例,单例模式具有以下三个要点:

1、确保类只有唯一一个实例(即对象)。     //实现1的关键是将类的构造方法设为私有,防止外界调用。
2、自动创建该唯一实例。     //实现2考虑到一个类只被虚拟机加载一次,因此可以在类的加载阶段调用一次构造方法---通过静态字段或语句块做到。
3、能向外界提供该唯一实例。     //因外界无法通过构造方法创建对象,故类还应提供一个静态方法返回之前创建的对象并向外界公开,以实现要点3.

猜你喜欢

转载自blog.csdn.net/qq_46152664/article/details/123206528