如题,这个系列主要用来记录Java学习,学了俩月了,总该记录记录。
目前还在学习OOP,感觉有点复杂,打算一边看黑马程序员的网课,一边完成老师布置的上机作业
今天开了个记账本的头,一开始idea卡了,无法解析java的库,以为是jdk没有正确导入,搞得头大,好在凭借机智的重启不再报错了。
记录一下今天的进度,靠着Kimi也是成功搞定了基本框架和显示主菜单部分,明天打算再多搞定几个方法。
package cn.edu.hdu.account.core;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Date;
public class Account implements AccountFeature{
private ArrayList<Record> records=null;
private double balance; //余额
private Scanner input = new Scanner(System.in);
public void init(){
// 初始化余额,初始化账本中的记录
this.balance =0.0;
this.records = new ArrayList<Record>();
while(true){
//在一个循环中不断显示主菜单showMainMenu,并获取用户输入getUserInput
// 捕获在getuserInput中可能出现的输入异常,进行异常处理
// (这里的异常处理就是提示用户信息输错了,请重新输入)
showMainMenu();
try {
getUserInput();
} catch (IllegalInputException e) {
System.out.println(e.getMessage());
}
}
}
@Override
public void showMainMenu() {
System.out.println("\n------家庭收支记账软件------");
System.out.println("1. 收支明细");
System.out.println("2. 登记收入");
System.out.println("3. 登记支出");
System.out.println("4. 退出");
System.out.println("请选择(1-4)");
}
private void getUserInput()throws IllegalInputException{
int choice =input.nextInt();//获取用户输入
// 根据输入选择功能
switch(choice) {
case 1:
showDetailInfo();
break;
case 2:
editIncomeInfo();
break;
case 3:
editSpendInfo();
break;
case 4:
exitAccount();
break;
default: {
//默认:即输入异常,则抛出IllegalInputException异常
throw new IllegalInputException("输入错误,请输入1到4之间的数字。");
}
}
}
private void setRecord(String type,double balance,double money,String remark, Date date){
}
private void updateBalance(String op,double money){
//根据参数qp所指的操作(+或-),完成余额balance的更新
// updateBalance函数在调用editIncomeInfo和editSpendInfo时被调用,即在登记收入或者支出信息时,要完成余额的更新
}
public void showDetailInfo(){
System.out.println("------当前收支明细记录--");
//以%-10s\t为例:-表示左对齐,10是默认10个字符,\t是自动补齐(目的是为了输入格式的整齐)
System.out.printf("%-10s\t%-10s\t%-10s\t%-10s\t%-10s%n","收支","账户金额","收支金额","说明","时间" );
// 循环遍历账本records中的每个记录,依次输出其变量信息
// 输出格式“$-10s\t%-10.2f\t%-10.2f\t%-10s\t%-10s%n",依次输出收支类型、账户当时余额、单笔记录金额、备注、时间
}
}
网课的话上到封装,进度略慢,晚上再看个三集,之后就是复习C期中考了
今天学习总结:
1.就近原则和this关键字的作用。有了this就可以区分局部变量和成员变量。有了this就说明了变量是指成员变量,可以解决两种变量重名的矛盾;
2.构造方法和JavaBean类。这部分比较复杂,略有难度。主要注意写方法的时候要写一个无参构造,和一个带所有参数的构造。但是实际写代码过程中暂时没有遇到需要构建JavaBean类的情况,如果遇到了再回头复习。
之后计划:
字符串和ArrayList,这个礼拜完成两部分学习。完成第一个上机作业。