• 20155224 2016-2017-2 《Java程序设计》第3周学习总结


    20155224 2016-2017-2 《Java程序设计》第3周学习总结

    教材学习内容总结

    本周学习量比前两周大,代码量也比较多,还出现了挺多术语,都要慢慢查。

    第四章

    第四章主要学习了java中的对象,有许多有趣的操作。比如书中85页的代码:

    public cc.openhome;
    
    class Clothes2 {
        char size;
        String color;
        Clothes2(String color, char size){
            this.color = color;
            this.size = size;
        }
    }
    
    public class C4P85 {
        public static void main(String[] atgs){
            Clothes2 sun = new Clothes2("red",'S');
            Clothes2 spring = new Clothes2("green",'M');
    
            System.out.printf("sun (&s,%c)%n",sun.color,sun.size);
            System.out.printf("spring (&s,%c)%n",spring.color,spring.size);
        }
    
    }
    
    

    在这段代码中,先指定了class类,并规定了Clothes2的输入顺序,因此在程序中输入时可直接输入需要指定的实例的值,不用挨个指定。
    我们还学习了BigDecimal的使用,在计算时可以减少误差。

    package cc.openhome;
    import java.math.BigDecimal;
    
    public class C4P88 {
        public static void main(String[] args){
            BigDecimal op1 = new BigDecimal("1.0");
            BigDecimal op2 = new BigDecimal("0.8");
            BigDecimal result1 = op1.subtract(op2);
    
            System.out.println(result1);
    
    
            BigDecimal op3 = new BigDecimal("0.1");
            BigDecimal op4 = new BigDecimal("0.1");
            BigDecimal op5 = new BigDecimal("0.1");
            BigDecimal result2 = new BigDecimal("0.3");
            if(op3.add(op4).add(op5).equals(result2)){
                System.out.println("等于0.3");
            }
            else{
                System.out.println("不等于0.3");
            }
        }
    
    }
    

    数组的复制、数组长度等内容比较好理解。

    第五章

    第五章进一步深入学习了对象的封装,以及类与方法的应用。

    package cc.openhome;
    class CashCard{
        String number;
        int balance;
        int bonus;
        CashCard(String number,int balance,int bonus){
            this.number=number;
            this.balance=balance;
            this.bonus=bonus;
        }
    }
    
    public class C5P123 {
        public static void main(String [] args){
            CashCard[] cards={
                    new CashCard("A001",500,0),
            new CashCard("A002", 300, 0),
            new CashCard("A003", 1000, 1),
            };
            for (CashCard card:cards){
                System.out.printf("(%s,%d,%d)%n",card.number,card.balance,card.bonus);
            }
        }
    
    }
    

    上面的代码是先定义了CashCard构造函数,再直接用数组建立了CashCard对象,编写过程简明易懂。

    教材学习中的问题和解决过程

    • 问题1:一些代码输入上的运用问题,如86页 “Math.random()x10” 是什么意思,编写class类时 “this” 的用法等。
    • 解答1:

    Math.random() 意为随机生成0~1的数字,在后面乘某数字即把1扩大多少倍。 Math.random()x10 即生成0~10的数;Math.random()x40 即生成0~40的数。

    “this” 关键字主要有三个应用:
    (1)this调用本类中的属性,也就是类中的成员变量;
    (2)this调用本类中的其他方法;
    (3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。

    • 问题2:数组复制时,新数组的长度对结果的具体影响。
    • 解答2:通过自己小幅更改104页代码试验出了结果:

    代码调试中的问题和解决过程

    • 问题1.建立新的java.class的时候,没有对应的package。

    • 解决1:网上关于这个问题的解答较少,可能是我自己安装idea过程中的问题。解决方法是在src目录下先创建package,在package下面再创建java.class。

    • 问题2:126页的代码编写出现 'class' or 'interface' expected 错误。

    • 解决2:网上对这个问题的解释大多是在特殊情况下、较为复杂,与我的实际情况并不相符。我浏览多个网页后无意发现多打一个大括号也可能导致这种错误,检查后果然如此……

    在图中错误的地方多打了一个反大括号,导致后面都出错了。

    代码托管

    • 代码提交过程截图:

    • 代码量截图:

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 2000行 30篇 200小时
    第一周 20/20 1/1 4/4
    第二周 73/93 1/2 4/8
    第三周 231/324 1/3 6/14

    参考资料

  • 相关阅读:
    GIT基础详解
    JS进阶解析
    JS基础解析
    CSS布局模型解析
    02.CentOS Linux 7.7 系统配置文档
    docker 创建bridge网络和修改默认网段
    selenium浏览器自动化测试工具 进阶使用
    前端导出Excel和打印介绍
    stm32使用gmtime()转换timestamp为日期,出的结果是乱的,不符合预期。改为localtime正常输出
    .net core api action 不能用作 httpget注释的参数名
  • 原文地址:https://www.cnblogs.com/nxy970408/p/6540216.html
Copyright © 2020-2023  润新知