zoukankan      html  css  js  c++  java
  • 20145239杜文超 《Java程序设计》第3周学习总结

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

    教材学习内容总结

    一、第四章:

    (1)对象和类:

    使用Java撰写程序几乎都在使用对象,要产生对象必须先定义类,类是对象的设计图,对象是类的实例。定义类时用关键词class,利用类建立对象实例用new关键词。

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

    (2)使用标准类:

    java.util.Scanner会帮你扫描标准输入。

    java.math.BigDecimal会以默认精度进行计算,防止浮点数运算错误的情况。

    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.print("猜数字(0~9):");
                guess = scanner.nextInt();
            }
            while (guess != number);
            
            System .out.println("bingo!!");
        }
    }

     

    (3)基本类型打包器:

    Long、Integer、Double、Float、Boolean等,就是所谓的打包器。其主要目的是提供对象实例作为“壳”,将基本类型打包在对象之中,就可以将基本类型当作对象操作。

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

    (4)数组对象:

    数组在Java中就是一个对象。声明一维数组用int[],二维用int[][]。

    public class Score
    {
        public static void main (String[] args)
        {
            int[] scores ={88,81,74,78,76,77,85,95,93};
            for(int i = 0;i < scores.length;i++)
            {
                System.out.printf("学生分数:%d %n",scores[i]);
            }
        }
    }

    (5)字符串对象:

    字符串本质是打包字符数组的对象。

    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:"+sum);
            }
    } 

    二、第五章:

    • 构造函数实现对象初始化流程的封装。封装的主要目的就是隐藏对象细节,将对象当做黑箱进行操作。
    • 创建对象时,数据成员会初始化,如果没有指定初始值,则会使用默认值初始化。
    • 定义类时如果没有构造任何函数,编译程序会自动加入一个无参数、内容为空的构造函数,成为默认构造函数。
    • 被声明为static 的成员,不会让各别对象拥有,而是属于类。
    • 如果局部变量声明了final,表示设值后就不能再变动。

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

    本周的学习在阅读教材的过程中遇到了大量问题,很多关键词都不熟悉含义。看了教学视频以后部分有了一定认识,但还遗留了许多问题。

    比如深层复制和浅层复制的区别,为此我查了百度,得知:

    • Java对象的深层复制是指Java对象A本身被clone成新对象B,同时A的属性也是被clone成新对象,赋值到A的各个属性上去,A与B的相同属性都引用到不同的对象; 
    • Java对象的浅层复制是指Java对象A本身被clone成新对象B,但A的属性没有被clone处理,只是把A的各个属性所指的对象赋值到B对应的属性上,A与B的相同属性都引用到同一个对象。 
    • 我们一般使用到对象复制是对象浅层复制,也就是没有复制属性成新的属性。 

    具体例子可以看这篇博客:http://xiemingmei.iteye.com/blog/1076159

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

    按照要求附图代码托管的情况如下:

    在运行数组部分的代码时出行了如下错误:

    错误原因:课本上的printf写成了println,可为什么会这样呢?

    解决方法:可以参考卢肖明同学的文章:http://group.cnblogs.com/topic/73988.html

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

          Java是面向对象的一种语言,和C语言有很大不同。但我始终搞不清楚到底什么是面向对象,看了毕向东老师的教学视频后他举得一个例子让我开始有点概念。他说如果你要去买电脑但是你不懂CPU、显卡等电脑的配置,但是毕老师懂,你去拜托他帮你买,这时候毕老师就成了你的对象,不用懂电脑配置的细节,你只需要指示毕老师去买就行了,因为具体的操作毕老师懂。本周Java的学习内容很繁重,难度一下子提升了一个档次,所以很多时候要把这些抽象的问题具体化,想象成生活中的一些实例,这样才能方便理解。

    学习进度条

     代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
    目标 5000行 30篇 400小时  
    第一周 100/100 1/2 15/15  
    第二周 200/300 1/2 12/15  
    第三周 300/300 1/2 20/20 认识了面对对象的含义

     

    参考资料

     

  • 相关阅读:
    Git
    java类加载
    DES-加解密C语言实现
    Android消息队列初识 && ThreadLocl 简述
    DbUTils
    JDBC(二)
    jdbc工具类
    JDBC(一)
    数据库
    MySQL数据库学习: 01 —— 数据库的概述
  • 原文地址:https://www.cnblogs.com/dwc929210354/p/5299696.html
Copyright © 2011-2022 走看看