20145327 《Java程序设计》第三周学习总结

20145327 《Java程序设计》第三周学习总结

教材学习内容总结

对象:存在的具体实体,具有明确的状态和行为。

类:具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制。

从类看对象:类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象。

从对象看类:类的产生,是从少数实例,推广到大量相似实例的抽象化过程。

类是对象的设计图,对象是类的实例,生成对象要先定义类。

P84 图4.2 c1是引用,在栈上;new Clothes()在堆上生成对象。

如果有多个class,也只能有一个类前面加public

两个基本的标准类:java.util.Scanner与java.math.BigDecimal。包名称为java开头的类,表示标准API提供的类。

不能用直接比较浮点数运算结果。用在对象类型,是比较两个名称是否参考同一对象,而!=正好相反,是比较两个名称是否没参考同一对象。equals()可以自行定义如何比较两对象的内含值。

为了让Java 基本类型像类一样使用int-Integer;long-Long;byte-Byte;float-Float;double-Double;boolean-Boolean。

Integer提供compareTo()方法,可与另一个Integer对象进行比较,如果打包值相同就返回0,小于compareTo()传入对象打包值就返回-1.否则就是1.与==或!=只能比较是否相等或不相等,compareTo()方法返回更多信息。

数组在Java中就是对象。

要声明二维数组,就是在类型关键词旁加上【】【】 。

在类中定义方法,如果不用返回值,方法名称前可以声明void 。

在Java命名规范中,取值方法的名称形式是固定的,也就是以get开头,之后接上首字母大写的单词。

创建对象与使用对象:
package cc.openhome;

    class Clothes{                   //定义Clothes类
        String color; 
        char size;
    }

public class Field {

        public static void main(String[] args){
        Clothes sun = new Clothes();         //建立对象
        Clothes spring = new Clothes();
        
        sun.color = "red";
        sun.size = 'S';
        spring.color = "green";
        spring.size = 'M';
        System.out.printf("sun (%s, %c)%n", sun.color, sun.size);
        System.out.printf("spring (%s, %c)%n", spring.color, spring.size);
    }
}

运行结果:

数组对象--for循环:
package cc.openhome;

public class Score {

public static void main(String[] args) {
    int[] scores = {88,81,74,68,78,76,77,85,95,93};
    for(int i = 0; i < scores.length;i++){
        System.out.printf("学生分数:%d %n",scores[i]);
    }
}

}

运行结果:

数组的复制:
package cc.openhome;
import java.util.Arrays;

public class CopyArray {

public static void main(String[] args) {
    int[] scores1 = {88,81,74,68,78,76,77,85,95,93};
    int[] scores2 = Arrays.copyOf(scores1,scores1.length);
    for(int score : scores2){
        System.out.printf("%3d",score);
    }
    System.out.println();
    scores2[0] = 99;
    for(int score : scores1){
        System.out.printf("%3d",score);
    }
}

}
运行结果:

代码托管:

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

CashCard.java,CardApp.java: 用方法(函数)封装操作
DRY是去除重复代码的有效手段

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

P124 代码 按照书上敲的,可是运行错误
package cc.openhome;

public class CashApp {

public static void main(String[] args) {
    CashCard[] cards = {
        new CashCard("A001",500,0),
        new CashCard("A002",300,0),
        new CashCard("A003",1000,1),
        new CashCard("A004",2000,2),
        new CashCard("A005",3000,3),
    };
    for(CashCard card : cards){
        System.out.printf("(%s,%d,%d)%n",card.number,card.balance,card.bonus);
    }
}

}

尚未解决  且这个代码中的;为什么是在}后 new对象后的符号为什么是,

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

四五章的学习感觉到明显的吃力了许多,好多代码都看不懂理解不了。第四章是第五章的基础,一环扣一环,老师课上讲的堆与栈真的是非常重要,如果不能理解,那么对象就不能理解清楚。要静下心来,慢慢的看,多敲代码,多动手实践,相信会越来越好的。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 100/100 1/2 20/20
第二周 250/350 1/3 20/40
第三周 500/850 1/4 25/65

参考资料

posted @ 2016-03-20 12:07  20145327高晨  阅读(149)  评论(2编辑  收藏  举报