包的命名规则
包命名规则:
- 包名全部由小写字母(多个单词也全部小写);
- 如果包名包含多个层次,每个层次应该用“.”分割;
- 包名一般由倒置的域名开头,比如com.baidu;——不要有www
- 自定义包不能java开头;
复制代码
包的作用
- 有利于类的查找与管理。一个软件由很多类构成,这些类按其功能可分为vo类、dao类、工具类、service类、controller类等,将这些类按其功能分门别类地放在不同包中有利于类的查找与管理;
- 解决了同名类命名冲突;
- 有利于保护类中的成员变量及其方法。类中成员变量及其方法前面的访问控制符决定了该变量和方法的使用范围;
访问修饰符
软件中的某些属性和方法出于程序安全考虑不允许被其它类操作和调用,这就需要使用Java中的访问权限修饰符,Java中的访问权限修饰符有4中:
复制代码
- Java中的访问权限修饰符可以修饰成员变量、构造方法、普通方法。 public是最大的访问权限修饰符,其修饰的成员变量、构造方法和普通方法可在任何一个类中被操作或使用;
- protected修饰的成员变量、构造方法和普通方法可以在其定义类中、与定义类同包的其它类(可以使子类)中和与定义类不同包但是其子类的类中使用;
- 默认(友好的)修饰的成员变量、构造方法和普通方法可以在其定义类中和与定义类同包的其它类(可以使子类)中使用;
- private是最小的访问权限控制符,其修饰的成员变量、构造方法和普通方法只能在定义它们的类中被操作或使用;
@MappedSuperclass
public abstract class BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "id", columnDefinition = "bigint(20) NOT NULL AUTO_INCREMENT")
//属性保护
protected long id;
@Version
@Column(name = "version")
long version;
}
复制代码
@MappedSuperclass
public class ApcBaseEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
@Column(name = "created_time", columnDefinition = "datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'")
//属性保护
protected DateTime createdTime;
@Column(name = "updated_time", columnDefinition = "datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'")
//属性保护
protected DateTime updatedTime;
public DateTime getCreatedTime() {
return createdTime;
}
public void setCreatedTime(DateTime createdTime) {
this.createdTime = createdTime;
}
public DateTime getUpdatedTime() {
return updatedTime;
}
public void setUpdatedTime(DateTime updatedTime) {
this.updatedTime = updatedTime;
}
//覆盖父类的方法
public long getId() {
return id;
}
复制代码
private在英文里是私人的意思. 众所周知,JAVA是面向对象的一门语言,每个对象都有各自的属性和方法.但是有的属性涉及安全因素或秘密因素不能让外面的程序调用,所以就用到了private, 经过它定义的变量只能在此对象内部调用,外部程序就无法调用,也就是说只能供其自身调用,比如某个人是一个对象,那么他的血液就肯定是私有变量,只能供其自身调用来维持人的状态.而如果将血液定义成public(公共的)的话,随便其他人都可以改变他血液的状态,你随便把他的血液值设为逆流,那他不就挂了。