zoukankan      html  css  js  c++  java
  • 20145313张雪纯 《Java程序设计》第3周学习总结

    20145313张雪纯 《Java程序设计》第3周学习总结

    教材学习内容总结

    4.1.1 定义类

    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);
    	}
    }
    

    由实例理解定义类。注意:

    • 一个原始码中可以有多个类定义,但只有一个是公开类,并且文档中的主文档名必须和公开类名称相同。

    • 程序中建立了两个类,一个是公开类,一个是非公开的Clothes;建立了两个Clothes实例,并分别声明了sun与spring两个名称来参考。

        package four;
      
        class Clothes2{
        String color;
        char size;
        Clothes2(String color,char size){    //构造函数
        this.color=color;  
        this.size=size;        //由于color参数与数据成员color同名,所以要使用this表示
        }
        }
        public class ClassObject1 {
        public static void main(String[] args){
        	Clothes2 sun=new Clothes2("red",'s');
        	Clothes2 spring=new Clothes2("queen",'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.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.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.1字符串基础

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

    4.4.2字符串特性

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

    4.4.3字符串编码

    4.5查询Java API文件

    5.1何谓封装

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

    5.2类语法细节

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

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

    'Integer[][] cords=new Integer[3][2]'里为什么建立了0个Integer实例?

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

    课后10.

    public class Main {
    public intsome(int... numbers) {       
      int sum = 0;        
       for(int number : numbers) {    
             sum += number;          }      
        return sum;      }
    	public static void main(String[] args) {
    		System.out.println(sum(1, 2, 3));
    	}
    }  
    

    为什么会编译失败?

    其他

    '='的用法和C语言很不同。函数等等也有较大差异。在编写程序的时候一定要区分两种语言的差别,不要混淆。Java API文件和C语言里的库很像,想调用库里的函数必须先声明库,同样,想调用API里的方法要先声明API。

    代码托管

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 1/1 20/20 编写简单程序
    第二周 350/550 1/2 30/30 用IDE调试修改程序
    第三周 500/1050 1/3 35/35
    第四周

    参考资料

  • 相关阅读:
    推荐文章:深入浅出REST
    推荐Fowler作序的新书《xUnit Test Patterns》
    测试替身:Test Double
    踢毽也能治胃病,适当的运动带来健康,健康带来快乐
    10分钟入门AOP:用PostSharp普及一下AOP
    推荐一本新的英文版算法书和一本讲debug的书
    emacs开发rails的演示
    转:一个土木工程师在四川地震灾后的思考
    多语言多范型编程PPP
    巧用editplus学习正则表达式
  • 原文地址:https://www.cnblogs.com/entropy/p/5298962.html
Copyright © 2011-2022 走看看