文章目录
- 前言
- 一、包
- 包的定义
- 包的导入
- 静态导入
- jar文件
- 系统常用包
- 二、访问控制权限
- 三、构造方法私有化
- 单例设计模式
- 多例设计模式
- 四、枚举
- 枚举类定义
- 枚举类
- 定义枚举结构
前言
面向对象中的核心组成是类和接口,在项目中会利用包进行一组相关的管理,适合于程序代码的部分更新,也更加符合面向对象封装性概念。
一、包
包的定义
- 包主要目的是可以将不同功能文件进行分割。为了防止命名文件在同一个目录中发生覆盖问题,使用在不同的目录下可以重名文件。所谓包就是文件夹,使用
package
定义包名称,此语句必须编写在源代码首行。
包的导入
- 利用包的定义可以将不同功能的类保存至不同的包中以是按分模块开发的需要,但是不同包中类之间也一定存在有相互调用的关系,这时需要
import
语句来导入被调用的其他包中的程序类。
静态导入
- 当类中全部组成方法都是
static
时,采用静态导入操作。
package JavaDome;
public class MyMath {
public static int add(int... args) {
int sum=0;
for(int temp:args) {
sum+=temp;
}
return sum;
}
public static int sub(int x,int y) {
return x-y;
}
}
import static JavaDome.MyMath.*;
public class Java2 {
public static void main(String[] args) {
// TODO 静态导入
System.out.println(add(10,20,30));
System.out.println(sub(30,20));
}
}
60
10
jar文件
- jar是一种Java给出的压缩格式文件,可以将
*.class
文件以*.jar
压缩包的方式给用户,方便程序的维护。参数有-c
创建一个新的文件。-v
生成标准的压缩信息。-f
由用户自己指定一个*.jar文件名称。 - 创建过程,定义一个类,对程序打包编译
javac -d . Message.java
。此时形成cn的包,包里有相应的子包与*.class文件,将其打包为mldn.jar:jar -cvf mldn.jar cn
。为一个*.jar文件都是一个独立的程序路径,通过想在Java程序中使用此路径,必须通过CLASSPATH进行配置。SET CLASSPATH=.;d:\mldnjava\mldn.jar
系统常用包
包名称 | 作用 |
java.lang | 基本包,自动导入 |
java.lang.reflect | 反射机制的包 |
java.util | 工具包 |
java.text | 提供文本处理类库 |
java.sql | 数据库操作包 |
java.net | 完成网络编程 |
java.io | 输入、输出处理 |
java.awt | 包含了构成抽象窗口工具集的多个类,用来构成和管理应用程序的图形用户界面 |
javax.swing | 用于建立图形用户界面 |
java.applet | 小应用程序开发包 |
二、访问控制权限
范围 | private | default | protected | public |
同一个包同一个类 | √ | √ | √ | √ |
同一个包不同类 | √ | √ | √ | |
不同包的子类 | √ | √ | ||
不同包的非子类 | √ |
三、构造方法私有化
单例设计模式
- 单例设计模式,整个系统中一个类只允许提供一个实例化对象,为实现此要求可以通过
private
进行构造方法的封装,这样该类将无法在类的外部利用关键字new实例化新的对象。同时为了方便使用本类的方法,在内部提供一个全局实例化对象供用户使用。
多例设计模式
- 多例设计模式会定义多个对象,例如定义星期,则对象有7格实例化对象。
四、枚举
枚举类定义
-
enum
实现枚举类型的定义。
enum Color{
RED,GREEN,BULE;
}
public class Java3 {
public static void main(String[] args) {
// TODO 枚举
Color c=Color.BULE;
System.out.println(c);
for(Color co:Color.values()) {
System.out.println(co+",");
}
}
}
BULE
RED,
GREEN,
BULE,
枚举类
- 枚举实际上属于一个类继承了
Enum
父类而且。
方法名称 | 类型 | 描述 |
protected Eunm(String name,int ordinal) | 构造 | 传入名字和序号 |
public final String name() | 普通 | 获取对象名称 |
public final int ordinal() | 普通 | 获取对象序号 |
public static void main(String[] args) {
// TODO 枚举
Color c=Color.BULE;
System.out.println(c);
for(Color co:Color.values()) {
System.out.println(co.ordinal()+"-"+co.name());
}
}
0-RED
1-GREEN
2-BULE
定义枚举结构
- 枚举可以像普通类一样定义成员属性、构造方法、普通方法,但是不能使用public定义构造方法。
enum Color{
RED("红色"),GREEN("绿色"),BULE("蓝色");
private String title;
private Color(String title) {
this.title=title;
}
@Override
public String toString() {
return this.title;
}
}
public class Java3 {
public static void main(String[] args) {
// TODO 枚举
for(Color co:Color.values()) {
System.out.println(co.ordinal()+"-"+co.name());
}
}
}