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
  • 相关阅读:
    波段是金牢记六大诀窍
    zk kafka mariadb scala flink integration
    Oracle 体系结构详解
    图解 Database Buffer Cache 内部原理(二)
    SQL Server 字符集介绍及修改方法演示
    SQL Server 2012 备份与还原详解
    SQL Server 2012 查询数据库中所有表的名称和行数
    SQL Server 2012 查询数据库中表格主键信息
    SQL Server 2012 查询数据库中所有表的索引信息
    图解 Database Buffer Cache 内部原理(一)
  • 原文地址:https://www.cnblogs.com/LeeX1997/p/6536090.html
Copyright © 2011-2022 走看看