20145101《Java程序设计》第三周学习总结

20145101 《Java程序设计》第3周学习总结

教材学习内容总结

本周进行的是第四章和第五章的学习。本阶段的学习难度有所提升,无论是在知识的量还是深度都开始增加,内容很丰富,也很有趣,值得我们认真学习。

  • Java有基本类型和类类型这两个类型系统,本周学习的主要是类类型,定义类时用关键词class,利用类建立对象实例用new关键词。

      class Clothes 
    

    {
    String color;
    char size;
    }

    public class Field
    {
    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);
    }
    }

上面的代码中sun和是spring就是类类型变量,类类型指向的就是对象。

  • 使用标准类:书中有一个程序是使用Java.util.Scanner。它的作用就是可以用户进行输入。

      import java.util.Scanner;
    
      public class Guess
      {
      public static void main(String[] args)
      {
      Scanner scanner = new Scanner (System.in);
      int number = (int) (Math.random() * 10);
      int guess;
    
      do
      {
      System.out.printf("GUESS A NUMBER:");
      guess = scanner.nextInt();
      }
      while(guess != number);
    
      System.out.println("YOU ARE RIGHT!");
    
      }
      } 
    

在这个程序中 import java.util.Scanner; 这条语句便是程序输入的关键部分,他给我们程序的输入带来了很大的便利。
书中还给出了一个标准类Java.math.BigDecimal

public class Main
{
public static void main (String[] args)
{
BigDecimal operand1 = new BigDecimal("1.0");
BigDecimal operand2 = new BigDecimal("0.8");
BigDecimal result = operand1.subtract(operand2);
System.out.println(result);

}
}

由于Java程序中浮点数遵循一定的规范,使用分数和指数来表示浮点数,不能直接用“==”来比较浮点数运算结果。使用java.math.BigDecimal可以得到更好的精度。

  • 基本类型打包
    打包基本类型:基本类型long、int、double、float、boolean。将基本类型打包在对象之中,可以将对象当作基本类型来进行操作。

    public class IntegerDemo
    {
    public static void main (String[] args)
    {
    int data1 = 10;
    int data2 = 20;
    Integer wrapper1 = new Integer(data1);
    Integer wrapper2 = new Integer(data2);
    System.out.println(data1/3);
    System.out.println(wrapper1.doubleValue()/3);
    System.out.println(wrapper1.compareTo(wrapper2));
    }

    }

  • 数组对象
    数组在JAVA中的存在形式就是对象,JAVA会检查数组的边界,越界就会触发ArrayIndexOutOfBoundsException的错误,所以和在C语言中不同,JAVA中的数组的长度在建立的时候就确定了。System.arraycopy()与Arrays.copyof()用在类类型声明的数组时,都是执行浅层复制。System.arraycopy()复制的方法是进行数组值的复制,Arrays.copyOf()复制的方法,是建立新的数组。

  • 字符串对象
    Java中字符串的本质是打包字符数组的对象,是Java.lang.String的实例。

      import java.util.Scanner;
    
      public class Sum
      {
      public static void main(String[] args)
      {
      Scanner scanner = new Scanner(System.in);
      long sum = 0;
      long number = 0;
      do 
      {
      System.out.print("输入数字:");
      number = Long.parseLong(scanner.nextLine());
      sum += number;
      }
      while(number != 0);
      System.out.println("总和为:"+sum);
      }
      } 
    

要想比较字符串实际字符内容是否相同,不能使用==,要用equals()。
用 "" 写下的字符串称为字符串常量,使用 + 连接字符串会产生新的String实例。
可以使用length()取得字符串长度,使用charAt()指定取得字符串中某个字符,使用toUppercase()将原本小写的字符串内容转为大写。

  • 查询API文档
    在Windows系统下,首先要下载CHM格式的Java API。

  • 对象封装

1.何为封装:
封装(Encapsulation)实际上是使用方法(Method)将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,隐藏对象细节,将对象当作黑箱进行操作。

2.有关类语法细节

public权限修饰:
如果没有声明权限修饰的成员,只有在相同包的类程序代码下才可以直接存取,也就是“包范围权限”。如果想在其他包的类程序代码中存取某包的类或对象成员,则该类或对象成员必须是公开成员,在java中要使用public加以声明。

2.方法重载

class Some
{
void someMethod(int i)
{
System.out.println("int 版本被调用");
}
void someMethod(Integer integer)
{
System.out.println("Integer 版本被调用");
}
}
public class Overload
{
public static void main(String[] args)
{
Some s = new Some();
s.someMethod(1);
}
}

3.this关键字
this代表其所在函数所属对象的引用,当在函数内需要用到调用该函数的对象时,就用this。

class Other{
{
System.out.println("对象初始区块");
}
Other()
{
System.out.println("Other() 构造函数");
}
Other(int o )
{
this();
System.out.println("Other(int o ) 构造函数");
}
}

public class ObjectInitialBlock
{
public static void main(String[] args)
{
new Other(1);
}

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

Java遵守IEEE754浮点数运算规范,使用分数与指数来表示浮点数。如果要求精准度,就要小心使用浮点数,不能直接用==直接比较浮点数运算结果。

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

随着学习的深入,我越来越感到Java的博大精深,需要我们认真的学习,积极主动敲代码。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 2000行 16篇 400小时
第一周 200/200 2/2 20/20
第二周 200/400 1/3 20/40
第三周 200/600 1/4 20/60
posted @ 2016-03-20 18:25  20145101王闰开  阅读(142)  评论(3编辑  收藏  举报