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。

代码托管

885194-20160324101116854-1034905062.png

学习进度条

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

参考资料

转载于:https://www.cnblogs.com/entropy/p/5298962.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值