对象是一个个性的产物,是一个个体的特征,是类的一个实例,有状态和行为;
对象是可以有多个属性,但不能自动生成,这个是根据你自己在开发中需要什么属性决定,当你写出这个属性的时候这个属性就是变量了,一般属性都是要封装的(属性的set()跟get()方法用来设值跟取值),封装在一般开发软件都是可以自动生成的
点击我头像,一起学习交流;
方法一:
不用数据库的话弄个 static个变量,自己设置个synchronized
示例:
import java.text.DecimalFormatimport java.text.SimpleDateFormat
import java.util.Date
public class PrimaryGenerater {
private static final String SERIAL_NUMBER = "XXXX" // 流水号格式
private static PrimaryGenerater primaryGenerater = null
private PrimaryGenerater() {
}
/**
* 取得PrimaryGenerater的单例实现
*
* @return
*/
public static PrimaryGenerater getInstance() {
if (primaryGenerater == null) {
synchronized (PrimaryGenerater.class) {
if (primaryGenerater == null) {
primaryGenerater = new PrimaryGenerater()
}
}
}
return primaryGenerater
}
/**
* 生成下一个编号
*/
public synchronized String generaterNextNumber(String sno) {
String id = null
Date date = new Date()
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd")
if (sno == null) {
id = formatter.format(date) + "0001"
} else {
int count = SERIAL_NUMBER.length()
StringBuilder sb = new StringBuilder()
for (int i = 0 i < count i++) {
sb.append("0")
}
DecimalFormat df = new DecimalFormat("0000")
id = formatter.format(date)
+ df.format(1 + Integer.parseInt(sno.substring(8, 12)))
}
return id
}
}
方法二:
可以在数据库新建序列,再新建一个存储过程控制序列,返回序列值,比如sqlserver用identity,oracle用序列,存储过程可以加锁,当达到999999的时候重置序列,通过代码调用存储过程获得返回值。
2、全局变量。通过方法获取下一个值,方法同步。