Java语言学习日志1#

如题,这个系列主要用来记录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,这个礼拜完成两部分学习。完成第一个上机作业。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值