zoukankan      html  css  js  c++  java
  • 20145104张家明 《Java程序设计》第3周学习总结

    20145104张家明 《Java程序设计》第4周学习总结

    教材学习内容总结

    第四章 认识对象

    4.1 类与对象

    4.1.1 定义类

    类定义时使用class关键词,建立实例要用new关键词,在对象术语中,这叫作新建一个对象:

    new clothes();
    

    参考变量或声明参考名称或参考:

    Clothes c1;
    

    给新建对象一个标签:

    Clothes c1 = new Clothes();
    
    package four;
    
    class Clothes{
    String color;
    char size;
    }
    public class ClassObject {
    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);
        }
    }
    
    4.1.2使用标准类

    java.util.Scanner会帮你扫描标准输入。
    java.math.BigDecimal会以默认精度进行计算,防止浮点数运算错误的情况。

    4.1.3对象指定与相等性

    '='用于绑定对象,'=='用于比较二者参考对象是否相同,'a.equals(b)'表示二者所绑对象的内含值是否相同。

    4.2 基本类型打包器

    4.2.1打包基本类型

    Long、Integer、double、float、boolean等类是所谓打包器,主要目的是提供对象实例作为“壳”,价格基本类型打包在对象中,可以将基本类型答案做对象操作。

    4.2.2自动装箱、拆箱

    自动装箱拆箱可以使程序更简洁,如'Integer data1=10'、'int i=10;Integer wrapper=i;''Number number=3.14f'。在运算时编译程序会自动拆箱。

    4.2.3自动装箱拆箱的内幕

    如果数值超出类的范围,就会建立新的实例,用'=='做比较易出错,若想比较数值应用equals()。

    4.3 数组对象

    4.3.1数组基础

    java中的数组和C语言有一些不同之处。一般声明数组是在类型关键词后如'int[] score',定义的时候不必规定数组长度,指出单个数值时需要在'[]'里标明序号,若想知道数组长度则需要用length属性,若是二维数组则需要用'cords.length'得知列数,再由'cords[x].length'得知行数。

    4.3.2操作数组对象

    使用'new'建立数组后每个索引元素会有初始值,可以用'java.util.Arrays'的'fill()'方法更改默认值。

    4.3.3数组复制

    'int[] scores2=scores1'并不是数组复制,只是把'scores1'的参考对象也给'scores2'做参考对象。所以要复制数组需要用到for循环新建数组,或者直接使用'System.arraycopy()'方法/'Arrays.copyOf()'方法。

    4.4 字符串对象

    4.4.1字符串基础

    字符串在Java中是对象,可以用'+'连接字符串。

    4.4.2字符串特性

    在Java中为了效率,相同的字符串无论出现多少次都只建立一个实例,但是用'new'一定是建立新对象。

    第五章 对象封装

    5.1何谓封装

    封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,隐藏对象细节,将对象当作黑箱进行操作。用户使用程序却不知道细节,要调用数据必须通过提供的方法。

    package cc.openhome;
    public class CardApp{
        public static void main(String[] arge){
            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.bouns);
    		}
    	}
    }
    

    5.2类语法细节

    如果想在其他包的类程序代码中存取某包的类或对象成员,则必须是公开成员,要用public加以声明。'this()'代表了调用另一个构造函数,调用哪个函数视自变量类型与数量而定。声明'static',表示属于类,不会被个别对象拥有。在'static'区块中不能出现'this',在其方法中不能使用非static数据或方法成员。

    this关键字

    this代表其所在函数所属对象的引用,简而言之就是this代本类对象的引用,当在函数内需要用到调用该函数的对象时,我们就可以使用this。 this()代表了调用另一个构造函数,至于调用哪个构造函数,则视调用this()时给的自变量类型与个数而定。注意:this()调用只能出现在构造函数的第一行

    static关键字

    static用于修饰成员(成员变量和成员函数),被声明为static的成员,不会让个别对象拥有,而是属于类。 在static方法中不能出现this关键字,static方法中不能用非static数据或方法成员。 import static语法是为了偷懒,但要注意名称冲突的问题。被声明为static的成员,是将类名称作为名称空间。

    代码托管

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

    在本周的学习中,我发现第四章比较基础,主要是定义类的问题,打包封装的问题,这些代码放到idea中都可以直接运行,也比较好理解。而第五章就比较困难,在第五章中有一些代码不是直接进行编译就能运行的,这里与第四章的不同。教材所讲的内容也比较晦涩难懂,经过仔细的分析和观看了一点视频后,才对第五章有了更进一步的了解,希望在在下一周再复习一下第五章的知识。

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

    在代码的调试中,我对于书中的使用标准类的概念不是很理解,有一些程序也都是半懂不懂的进行编译,在经过了几个程序的编译后,我才发现java.util.Scanner就相当于c语言中的输入语句,而java.math.BigDecimal的作用就是是计算出的数据更加精确,,在java的学习中,与c语言进行比较学习会使java的学习变得轻松很多。

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

    在本周的学习中,我发现在书本上的学习还是不够的,有些知识还需要从别的地方进行补充(视频),有些代码还是要好好想想才能明白。而且java与c语言还有很多的相似之处,相对借鉴学习会使java语言更好地学习。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长

    | 第二周 | 200/300 | 1/4 | 18/38 | |
    | 第三周 | 300/600 | 2/6 | 22/60 | |

    参考资料

  • 相关阅读:
    day06作业
    day04_ATM项目说明书
    ATM+购物车基本思路流程
    装饰器、迭代器、生成器、递归、匿名函数、面向过程编程、三元表达式6
    day05函数部分
    自制七段数码管源码
    字符串格式化
    字符串表示
    格式化输出
    python入门——列表类型、元组、字典类型
  • 原文地址:https://www.cnblogs.com/wodedadao/p/5299942.html
Copyright © 2011-2022 走看看