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

本文深入讲解Java中的类与对象概念,介绍如何通过java.util.Scanner类和java.math.BigDecimal类提升程序的功能性和准确性,并探讨了数组、字符串及对象封装的使用技巧。

教材学习内容总结

类与对象

•类与对象的关系:要产生对象必须先定义类,类是对象的设计图,对象是类的实例

•为个别对象的数据成员指定值的方式是:对象.对象成员

•类在定义时要使用关键词class,而具体对象就是对应java在堆内存中用new建立的实体

•注意“一类一文件”

标准类

•java.util.Scanner类:接收用户的输入,比System.in.read()方法更方便,如果想取得用户输入的整行文字,则使用nextLine()。

•java.math.BigDecimal类:Java遵守IEEE754浮点数运算规范,使用分数与指数来表示浮点数,这样就导致无法精确的进行运算,从而造成运算上的误差,比如1.0-0.8的结果就不是0.2。

0.5会使用1/2来表示,0.75会使用1/2+1/4来表示,而0.1会使用1/16+1/32+1/256+1/512+1/4096+。。。无限循环下去,无法精确表示。

所以java.math.BigDecimal类就可以解决这类问题。

对象指定与相等性

•在基本类型中,=是将值复制给变量,而==是比较两个变量储存的值是否相同。但是,如果是在操作对象时,=是用在指定参考名称参考某个对象,而==是用在比较两个参考名称是否参考同一对象,换句话说也就是=是用在将某个名牌绑到某个对象,而==是用在比较两个名牌是否绑到同一对象。

•equals是逻辑上相等,比较两个BigDecimal实质上是否相同,需要注意的是与==的区别。

数组对象

import java.util.Arrays;

public class Score
{
public static void main(String[] args)
{
    int[] scores = new int[10];
    for(int score : scores)
    {
        System.out.printf("%2d",score);
    }
    System.out.println();
    Arrays.fill(scores,60);
    for(int score : scores)
    {
        System.out.printf("%3d",score);
    }
}
} 

运行结果:887033-20160320140202271-1304363667.png

•数组在Java中就是对象,数组一旦建立,其长度就已经固定了。

•数组基本上是用来收集数据,是具有索引功能的数据结构,在JAVA中要声明数组并初始值。

•如果需要循序地从头至尾取出数组值,可以用更简单的增强式for循环。

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

运行结果:887033-20160320140232381-704883254.png

字符串对象

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

•使用+连接字符串会产生新的String实例,不要将+用在重复性的连接场合。

对象封装

封装

•封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式,其目的主要就是隐藏对象细节,将对象当作黑箱进行操作。

一、构造函数

•构造函数特点:首先,函数名与类名相同,其次,不用定义返回值类型,另外不可以写return语句。

•构造函数作用是给对象进行初始化,多个构造函数是以重载的形式存在的。

二、this关键字

•this代表其所在函数所属对象的引用,简而言之就是this代本类对象的引用,当在函数内需要用到调用该函数的对象时,我们就可以使用this。

•this()代表了调用另一个构造函数,至于调用哪个构造函数,则视调用this()时给的自变量类型与个数而定。

三、static关键字

•static用于修饰成员(成员变量和成员函数),被声明为static的成员,不会让个别对象拥有,而是属于类。
•在static方法中不能出现this关键字,static方法中不能用非static数据或方法成员。

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

public class Arr{
    public static void main(String[] args){
        int [] arr1 = {1,2,3};
        int [] arr2 = new int [arr1.length];
        arr2=arr1;
        for(int value : arr2){
            System.out.printf("%d",value);
        }
    }
}

这是应用的增强式for循环来编写的方法,可用于循序取得数组元素,避免出现ArrayIndexOutOfBoundsException等错误。

结果如下:
887033-20160320140310756-1272692237.png

感悟

这周的内容比前两周明显多了不少,而且是过去没有接触过的新知识和新概念,理解起来需要一定的时间,编写代码也要一步一步地努力提高。我对这些新知识现在还掌握得不够熟练,希望多花时间敲代码后能够熟练应用。

托管截图

887033-20160324161952026-2048440262.png

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标4000行20篇300小时
第一周100/1001/115/15
第二周300/4001/225/40
第三周500/9001/335/75

参考资料

•Java学习笔记(第8版)

•《Java学习笔记(第8版)》学习指导

转载于:https://www.cnblogs.com/J000/p/5297667.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值