zoukankan      html  css  js  c++  java
  • 20155216 2016-2017-2 《Java程序设计》第三周学习总结

    教材学习内容总结

    区分基本类型与类类型

    类类型是自己定义产生的,基本类型是long,int,double等类型。
    在类的定义过程中,可直接用class XXX {}对每个序定义的值域成员进行定义。这样,编译程序时便会产生两个XXX.class文档。
    同时,也可以用定义构造函数的方法进行定义,再用this吧每个参数的值指定给这个对象的所有成员。
    import java.util.Scanner可使输入数据的程序代码变得更为简洁,是API提供的标准类。而java.math.BigDecimal使小数的运算更为准确。使用equals()比较两个BigDecimal实质上是否相同。

    理解对象的生成与引用的关系

    java中,使用new建立对象,并对对象赋初值,之后可将对象用于循环、运算、复制等各种操作,在操作过程中,参与运算的数的类型要与对象中的类型一致。

    掌握String类和数组

    字符串是java.lang.String实例,用来打包字符数组。其中,可用 + 运算来连接字符串。
    字符串只要内容完全相同,,JVM只会建立一个String对象。若建立多个对象,则使用equals进行比较。

    理解封装的概念

    封装对象是对一组数据进行封装储存,可用定义类和构造函数的方法,避免了重复编写对象初始化的流程,并且可让用户在编写代码时直接存取使用。也可以用private避免私人数据被使用。也可用public在其他类程序代码中存取某包的类或成员。

    掌握构造方法的定义

    构造方法主要为函数的构造,可按照基本类型和类类型进行初始值的定义,否则则为默认值。在构造过程中,使用this对参数进行指定。

    理解重载的概念

    在构造函数时,只要定义的多个构造函数的参数类型和个数不同,视为重载构造函数。

    掌握static的应用

    static类成员就是建立一个固定的成员,不会让个别对象拥有,在编写代码过程中可被调用,在调用过程中不可被改变。在static的定义过程中,不能使用this,不能进行对象参数的指定。

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

    • xx1问题
      不明确封装完成后的对象如何在此程序或其他的被调用。

    • xx1解决方案
      尚未解决。

    • xx2问题
      5.4.1选择题第4题程序片段

    public class Some {
    public int x;
    public Some(int x) {
    x=x;
    }
    }
    

    不明确x的值为0。

    • xx2解决方案
      通过对课本相应知识的再次翻看和对第5题的理解和比对,应该用this.x=x对x进行对象的指定。

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

    • xx1问题

    • xx1解决方案
      命名java文件,应避免使用java代码中的专用名词。

    • xx2问题
      4.7.2操作题第二题
      撰写一个简单的洗牌程序,可在文本模式下显示洗牌结果。

    • xx2解决方案

    import java.util.Random;
    class Card
    {
        public String num;
        public String suit;
        Card(String n,String s)
        {
            this.num=n;
            this.suit=s;
        }
        public String toString()
        {
            String ss=suit+":"+num+"  ";
            return ss;
        }
    }
    class DeskOfCard
    {
        Card card[];
        public void initcard()//初始化
        {
            String num[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
            String suit[]={"方块","梅花","红桃","黑桃"};
            card = new Card[52];
            for(int i=0;i<52;i++)
            {
                card[i] = new Card(num[i%13],suit[i/13]);
            }
        }
        public void shufflecard()//洗牌
        {
            Random rd = new Random();
            for(int i=0;i<52;i++)
            {
                int j = rd.nextInt(52);//生成随机数
                Card temp = card[i];//交换
                card[i]=card[j];
                card[j]=temp;
            }
        }
        public void dealcard()//发牌
        {
            for(int i=0;i<52;i++)
            {
                if(i%4==0) System.out.println("
    ");
                System.out.print(card[i]);
            }
        }
    }
    public class TestCard 
    {
        public static void main(String[] args) 
        {
            DeskOfCard cc = new DeskOfCard();
            cc.initcard();
            cc.shufflecard();
            cc.dealcard();
        }
    }
    

    通过对此段他人博客的学习和借鉴,加深了对于数组和随机字符串和数字的应用。

    代码托管

    • 代码提交过程截图:

    • 代码量截图:

    上周考试错题总结

    • 错题1及原因,理解情况
      对于按位取反的理解不够深刻,需对一个数按位取反后,若为负数,需取其补码。
      有一个明显的技巧:~(+X)=-(X+1)。

    • 错题2及原因,理解情况
      System.out.println("%b",X)不是二进制数的输出。

    • 错题3及原因,理解情况
      寻找前N天的文件的命令是find . ctime N -name *. java

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

    1、本周对java的学习,开始体会到java程序代码与C语言的不同之处。
    2、体会到了java对类类型定义的优点。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 6/6 1/4 20/20
    第二周 334/340 1/5 18/38
    第三周 570/900 1/6 22/60
    第四周 300/1300 1/7 30/90
  • 相关阅读:
    [Swift]LeetCode472. 连接词 | Concatenated Words
    [Swift]LeetCode470. 用 Rand7() 实现 Rand10() | Implement Rand10() Using Rand7()
    [Swift通天遁地]七、数据与安全-(19)使用Swift实现原生的SHA1加密
    [Swift通天遁地]七、数据与安全-(18)使用Swift实现原生的MD5加密
    [Swift通天遁地]七、数据与安全-(17)使用Swift实现原生的3DES加密和解密
    poj 1265 Area(pick 定理)
    Visual C++文件后缀名释义
    Linux 设备文件的创建和mdev
    37、ifconfig命令
    iOS开发- 生成/解析.vcf文件
  • 原文地址:https://www.cnblogs.com/LeeX1997/p/6536090.html
Copyright © 2011-2022 走看看