包
包(package)是Java提供的一种区别类的名字空间的机制,是类的组织方式,是一组相关类和接口的集合,它提供了访问权限和命名的管理机制。(管理代码的)
作用
- 管理代码
- 避免类名命名冲突
命名规则
//域名倒写.项目名.模块名
例如: cn.itsource.crm.domain
包的声明
//包的声明必须在源文件的顶部最开始位置
package cn.itsource.crm.domain;//package 要编译到的文件夹
class Test{
/*
然后在本文件所在地址打开Dos命令框
1.输入 javac -d . Test.java 编译
2.输入 java cn.itsource.crm.domain.Test 运行
*/
public static void main(String[] args){
System.out.println("hello");
}
}
包的导入
//import 大包名.小包名.类名;
//import 大包名.小包名.*; *为通配符,使用到哪些类就去匹配哪些
//for example:
import java.util.Arrays
class Test{
public static void main(String[] args){
//声明一个数组
int[] arr={2,45,12,15,7};
//调用Arrays类里的方法
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
java已有的包分类
- ava/ javax(java增强包)
- java.lang (java的核心包--基本包)
- java.util(java的工具包 --集合框架)
- java.io(java IO包 读写文件)
- java.net(网络编程)
- java.awt/javax.swing(java的图形化界面GUI)
单例模式
需要设计一个类,达到的效果: 此类在整个应用中只存在一个对象
饿汉模式
设计思路
- 构造方法私有化
- 在类的内部创建一个对象
- 使用一个字段保存起来
- 提供一个方法允许外部使用该方法访问该字段
- 提供的方法必须静态修饰,因为外部不能创建对象
- 外部通过方法访问instance 字段,方法静态修饰,所以字段必须静态修饰
- 字段不私有化,别人可以通过类名.instance修改子字段值,所以必须私有化
代码实现
class Test6{//单例模式之饿汉模式
public static void main(String[] args){
System.out.println("hello");
//
User user1=User.getInstance();
User user2=User.getInstance();
System.out.println(user1==user2);
}
}
class User{
private User(){//私有化构造方法
}
private static User one=new User();//私有化创建好的对象,使其不能通过类名.属性名调用
public static User getInstance(){//提供公有的方法得到对象
return one;
}
}
懒汉模式
设计思路
- 明确:应用程序在第一次调用方法获取单利模式对象的时候创建对象
- 构造方法私有化
- 设置一个A类类型的字段私有化不初始化值
- 提供一个方法允许外部使用该方法访问该字段
- 外部不能创建对象,所以方法必须static修饰
- 什么时候是第一次【instance == null】
- 当第一调用的时候判断
- 如果instance == null :初始化instance
- 如果instance != null : 直接返回instance
代码实现
class Test7{//单例模式之懒汉模式
public static void main(String[] args){
System.out.println("hello");
User user1=User.getInstance();
User user2=User.getInstance();
System.out.println(user1==user2);
}
}
class User{
private User(){//私有化构造方法
}
private static User one;//私有化创建好的对象
public static User getInstance(){
if(one==null){//判断one是否已被创建,没有创建就创建
one=new User();
}
return one;//返回创建好的对象
}
}