JAVASE的学习笔记(九)(Properties类和面向接口编程)
发布日期:2021-05-14 17:01:33 浏览次数:15 分类:精选文章

本文共 5278 字,大约阅读时间需要 17 分钟。

JAVASE的学习笔记(九)

Properties类

Properties类在Java中是一个非常有用的工具类,主要用于读取和写入配置文件。它可以将键值对的数据存储在文件中,后续程序可以通过读取这些文件获取相应的配置信息。

简单操作(添加,取出)

Properties类的主要操作包括setProperty和getProperty方法。setProperty用于将键值对添加到Properties对象中,而getProperty则用于查询特定的键值对。以下是一个简单的例子:

import java.util.*;
public class F07 {
public static void main(String[] args) {
Properties props = new Properties();
props.put("九天十地","荒天帝");
props.setProperty("遮天","叶天帝");
System.out.println(props.get("九天十地")); // 输出:荒天帝
System.out.println(props.getProperty("叶天帝")); // 输出:叶天帝
System.out.println(props.getProperty("仙古")); // 输出:null
System.out.println(props.getProperty("星空之下","王升")); // 输出:王升
}
}

属性文件读取配置信息(重要)

在Java开发中,属性文件(如.commonextions文件)常用来存储配置信息。这类文件通常以utf-8编码格式保存,通用格式为 KEY=VALUE,例如:

# 该文件我们可以随时进行修改
bookName=诛仙
my.author=萧

属性写入信息(追加)

Properties类还支持在现有文件中追加写入信息,可以通过FileOutputStream的第二个构造参数true实现。以下是一个示例:

import java.util.*;
import java.io.*;
public class Demo03 {
public static void main(String...args) throws Exception {
Properties props = new Properties();
props.setProperty("name","加油");
props.setProperty("remark","Happy");
props.setProperty("bookName","大白");
props.store(new FileOutputStream("k:/jdbc.properties", true), "zhe ge shi zhu shi");
}
}

面向接口编程(小程序)

1. 设置宗门分部类

创建一个用于存储宗门分部信息的Java类:

package com.yu.test;
public class Department {
private Integer deptCode;
private String deptName;
private String userName;
public Department(Integer deptCode, String deptName, String userName) {
this.deptCode = deptCode;
this.deptName = deptName;
this.userName = userName;
}
// 类中还包含获取和设置方法(如getDeptCode, setDeptCode等)
}

2. 初始化宗门各部

创建一个没有扩展性的数据仓库类,用于初始化各部门数据:

package com.yu.test;
import java.util.ArrayList;
import java.util.List;
public abstract class DateRepository {
private static List
dates = new ArrayList<>();
static {
dates.add(new Department(1001, "斗部", "苏宇"));
dates.add(new Department(1002, "影部", "冰台"));
dates.add(new Department(1003, "商部", "三万"));
}
}

3. 设定程序基本功能接口

定义一个接口,包含基本操作:

package com.yu.test;
import java.util.List;
public interface DepartmentDao {
List
list();
boolean delete(Integer departmentCode);
boolean add(Department department);
}

4. 实现接口

创建一个实现接口的类:

package com.yu.test;
import java.util.List;
public class DepartmentDaoImpl extends DateRepository implements DepartmentDao {
@Override
public List
list() {
return dates;
}
public boolean delete(Integer departmentCode) {
boolean flag = true;
int index = -1;
for (int i = 0; i < dates.size(); i++) {
Department dept = dates.get(i);
if (dept.getDeptCode().equals(departmentCode)) {
index = i;
flag = false;
break;
}
}
if (!flag) {
if (index >= 0) {
dates.remove(index);
return true;
}
return false;
}
return false;
}
public boolean add(Department department) {
for (Department dept : dates) {
if (dept.getDeptCode().equals(department.getDeptCode())) {
return false;
}
}
dates.add(department);
return true;
}
}

5. 主程序

创建一个主程序,用于接收用户命令并执行操作:

package com.yu.test;
import java.util.List;
import java.util.Scanner;
public class DepartmentRun {
private static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
DepartmentDao departmentDao = new DepartmentDaoImpl();
while (true) {
System.out.println("欢迎使用宗门各部管理系统");
System.out.println("A. 查看部门列表");
System.out.println("B. 添加部门信息");
System.out.println("C. 注销部门");
System.out.println("请输入指令:");
String str = scan.next();
if ("B".equalsIgnoreCase(str)) {
System.out.println("请输入部门编号");
int code = scan.nextInt();
System.out.println("请输入部门名称");
String deptName = scan.next();
System.out.println("请输入首领姓名");
String userName = scan.next();
Department dept = new Department(code, deptName, userName);
boolean flag = departmentDao.add(dept);
if (flag) {
System.out.println("添加成功");
} else {
System.out.println("编号重复,添加失败");
}
}
else if ("C".equalsIgnoreCase(str)) {
System.out.println("请输入部门编号");
int code = scan.nextInt();
boolean flag = departmentDao.delete(code);
if (flag) {
System.out.println("删除成功");
} else {
System.out.println("未找到编号");
}
}
else {
System.out.println("您输入的指令有误,请重新输入");
System.out.println();
System.out.println();
System.out.println("=================");
}
}
}
}
上一篇:JAVASE学习笔记 (十)(异常)
下一篇:JavaSe学习笔记(十一.1)(进程与线程,进程的三种创建方式,静态代理模式)

发表评论

最新留言

不错!
[***.144.177.141]2025年05月05日 12时49分39秒