数组
数组初始化
int[] smallPrimes = {2, 3, 5};
// 创建匿名数组
new int[] {2, 3, 5};
smallPrimes = new int[] {2, 3, 5};
// 打印数组
System.out.println(Arrays.toString(smallPrimes));
数组拷贝
int[] smallPrimes = {2, 3, 5};
int[] luckyNumbers = smallPrimes ;
luckyNumbers[0] = 10; // smallPrimes和luckyNumbers的值均变为{10, 3, 5}
int[] copiedLuckyNumbers = Arrays.copyOf(luckyNumbers,luckyNumbers.length);
对象与类
隐式参数和显式参数
在一个方法中,关键字this表示隐式参数,不出现在方法声明中。
显式参数是明显的列在方法声明中的。
静态域与静态方法
静态域
class Employee{
private static int nextId = 1;
private int id;
}
该类的每个实例都有一个自己的id域,但是所有的实例都共享同一个nextId域。静态域属于类,而不属于任何独立的对象。
静态方法
静态方法是一种不能向对象实施操作的方法。可以认为静态方法是没有this参数(隐式参数)的方法。可以使用对象调用静态方法,但是不推荐,推荐使用类名进行调用。
静态工厂方法
参考链接
将具有返回这个对象的一个实例这种特点的静态方法叫做静态工厂方法。
对于普通的构造器来说,通过参数来对类中的不同属性赋值,然后返回一个这个类的相应实例。但在有些时候,如果我们想获得有些差别的类实例,唯一可以采用的方法是通过不同的构造器参数列表来区分不同的实例。但是这并不是一个好主意,因为有的时候,仅仅是构造器方法签名上的不同,可能会让客户端用户迷惑,只是参数顺序的变化让他们很难去记住到底哪个构造对应的是哪个实例。这个时候可以考虑使用静态工厂方法,为不同的构造方法来起不同的名字来区分不同功能的实例化,而返回的都是一个this,这样类似构造器的操作让不同的实例可以被更加容易的区分。
Java注释
- 文档注释
/**
文档注释
*/
- 类注释
必须放在import语句之后,类定义之前
/**
类注释
*/
public class Card{
...
}
- 方法注释
/**
方法注释
*/
public void Card(){
...
}
- 域注释
只需要对公有域(通常指静态常量)建立文档。
/**
域注释
*/