18.1.1包的基本概念
当一个大型程序由不同的组或人员共同开发时,不可能保证每个人所写的类名称是完全不同的,这样一来,就有可。那么为了解决这样的麻烦,就可能能出现同文件爱你覆盖问题,于是引入了包。所谓的包就是指一个文件夹。
//包的声明
package demo.java;//建立了demo/java文件夹
//包的导入
import demo.java;
18.2 类成员的访问权限控制
priavate default protected protected public
同一类
同一包中的类X
不同包的子类X X
其它包中的类X X X
18.3Java的命名规范
(1)包名中的字母一律小写,如demo.java
(2)类名,接口应使用名词,每个单词的首字母大写如TestPerson
(3)变量名,第一个单词小写,后面的单词首字母大写如newLxh
(4)方法名的第一个单词小写,后面的每个单词首字母大写如taklMySelf();
(5)常用变量名的每个字母一律大写,如PI
18.4 打包工具——Jar命令的使用
Jar文件,Java archeive file的缩写,是一种压缩文件与ZIP压缩文件格式兼容,习惯上称之为Jar包。
18.5 构造方法私有化——单例设计模式
//自动生成构造方法的类
package demo.java.d;
public class Test{
public Test() {
}
public static void main(String args[])throws Exception{
Singleton instance=null;
instance=new Singleton();
instance.print();
}
}
class Singleton{
public void print(){
System.out.println("Hello,world!");
}
}
//构造方法私有化,实例化对象会报错
class Singleton{
private Singleton(){//构造方法私有化,实例化对象会报错
}
public void print(){
System.out.println("Hello,world!");
}
}
//构造方法私有化,实例创建方法
package demo.java.d;
public class Test{
public Test() {
}
public static void main(String args[])throws Exception{
Singleton instance=null;
instance=Singleton.instance;
instance.print();
}
}
class Singleton{
static Singleton instance=new Singleton();
//此时的类中不会在生成无参的什么都不做的构造函数
private Singleton(){
}
public void print(){
System.out.println("Hello,world!");
}
}
//单例设计模式,不管在外部声明了多少个对象,
//那么实际上只是取得了唯一的一个实例对象
package demo.java.d;
public class Test{
public Test() {
}
public static void main(String args[])throws Exception{
Singleton instance=null;
instance=Singleton.getInstance();
instance.print();
}
}
class Singleton{
private static Singleton instance=new Singleton();
//此时的类中不会在生成无参的什么都不做的构造函数
private Singleton(){
}
public static Singleton getInstance(){
return instance;
}
public void print(){
System.out.println("Hello,world!");
}
}
//多例设计模式
package demo.java.d;
public class Test{
public Test() {
}
public static void main(String args[])throws Exception{
System.out.println(Sex.getInstance(0));
}
}
class Sex{
private String title;
private static final Sex MALE=new Sex("男");
private static final Sex FEMALE=new Sex("女");
private Sex(String title){
this.title=title;
}
public static Sex getInstance(int ch){
switch(ch){
case 0:
return MALE;
case 1:
return FEMALE;
default:
return null;
}
}
public String toString(){
return this.title;
}
}