20145324 《Java程序设计》第3周学习总结

20145324 《Java程序设计》第3周学习总结

教材学习内容总结

第四章
1、要产生对象必须先定义类,类是对象的设计图,对象是类的实例,建立实例要用new
2、参数名称与对象数据成员同名时,在数据成员前加this
3、标准类:①java.util.Scanner P87
②java.math.BigDecimal 更高的精确度 plus() substract() multiply() divide() (a.add(b).add(c).equals(result))
4、用于基本类型:=是将值复制给变量 ==是比较两个变量储存的值是否相同
用于操作对象:=是用在将某个名牌绑到某个对象 ==是用在比较两个名牌是否绑到同一对象
equals()比较内含值是否相同
5、数组 int[] 二维数组 int[][](几列、每列多少个元素)
6、int baby :babys 会将babys数组第一个元素,指定给baby变量后执行循环体
7、new Integer[3][2]代表着一个Integer[][]类型的对象,其中有3个Integer[]类型索引,分别参考至长度为3的Integer一维数组对象,而每个Integer一维数组 的索引都参考至null,所以有0个Integer实例
8、数组复制:①建立新的数组 ②System.arraycopy() ③Arrays.copyOf (浅层复制)
9、字符串本质是打包字符数组的对象,是java.lang.String类的实例
10、使用+连接字符串会产生新的String实例
第五章
1、取值方法的名称是固定的,以get开头加首字母大写的单词
2、在Java中使用public声明,使某类对象成员是公开成员,则可以在其他包的程序代码中存取该包的类或对象成员
3、创建对象时,数据成员会初始化,如果没有指定初始值,则会使用默认值初始化
4、编译程序在处理重载方法时的顺序 P136
5、使用不定长度自变量时,方法上声明的不定长度参数必须是参数列最后一个,也不可以使用两个以上不定长度自变量

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

p92
在运算时,也可以进行自动装箱与拆箱,如
Integer i=10;
System.out.println(i+10);
System.out.println(i++);
上例会显示20与10

为什么不是显示20与11呢?

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

输入书中代码会出现下图中的问题,无法运行

class CashCard1 {
    String number;
    int balance;
    int bonus;

    CashCard1(String number, int balance, int bonus) {
        this.number = number;
        this.balance = balance;
        this.bonus = bonus;
    }

    void store(int money) {
        if (money > 0) {
            this.balance += money;
            if (money >= 1000) {
                this.bonus++;
            }
        } else {
            System.out.println("储值是负的");
        }
    }

    void charge(int money) {
        if (money > 0) {
            if (money <= this.balance) {
                this.balance -= money;
            } else {
                System.out.println("钱不够了!");
            }
        } else {
            System.out.println("扣负数,这不是叫我存钱吗?");
        }
    }

    int exchange(int bonus) {
        if (bonus > 0) {
            this.bonus -= bonus;
        }
        return this.bonus;
    }

    public class CashApp1 {
        public static void main(String[] args) {
            CashCard1[] cards = {
                    new CashCard1("A001", 500, 0),
                    new CashCard1("A002", 500, 0),
                    new CashCard1("A002", 1000, 1)
            };
            Scanner scanner = new Scanner(System.in);
            for (CashCard1 card : cards) {
                System.out.printf("为(%s,%d,%d)储值:", card.number, card.balance, card.bonus);
                card.store(scanner.nextInt());
                System.out.printf("明细(%s,%d,%d)%n", card.number, card.balance, card.bonus);
            }
        }
    }
}

其他(感悟、思考等,可选)

第四章的内容理解起来更容易一些,第五章就有些困难,多看几遍教材结合代码学起来会容易一点

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 500行 16篇 220小时
第一周 30/20 1/1 10/10
第二周 82/102 1/2 10/20
第三周 158/260 1/3 10/30

参考资料

posted on 2016-03-18 18:14  20145324王嘉澜  阅读(201)  评论(5编辑  收藏  举报