zoukankan      html  css  js  c++  java
  • Week03面向对象入门

    面向对象入门

    1. 本周学习总结

    1.1 写出你认为本周学习中比较重要的知识点关键词,如类、对象、封装

    对象,类,构造函数,封装性,继承。

    1.2 用思维导图或者Onenote或其他工具将这些关键词组织起来。

    2. 书面作业

    1.以面向对象方式改造数据结构作业'有理数'(重点)注意:属性必须修饰为private

    1.1 截图你主要代码(需要在程序中出现你的学号和姓名)并粘贴程序的git地址。


    git地址

    1.2 对比你的代码与历程的代码,说明面向对象编程与面向过程编程有何区别?

    • 面向过程编程是将所需步骤一步一步实现,数据和对数据的操作是分离的;
    • 面向对象编程是将对象联系起来,将数据和对数据的操作绑定在一起。

    2. 构造函数与初始化块

    2.1 结合PTA5(构造函数与toString)说明构造函数有什么用?其函数格式有何特征?

    • 构造函数用于创建对象时初始化对象;
    • 以public或private开头;构造函数名与类名相同;构造函数没有返回值和返回类型。

    2.2 如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?

    • 系统会为一个没有构造函数的类生成一个构造函数。
    • 系统不会为只有带参的构造函数生成默认构造函数。

    2.3 查看String类的源代码,找出3个看得懂的String类的构造函数,并使用自己的话描述这3个构造函数的区别。


    1.创建一个空字符串;

    2. 使用字符串对象来初始化;

    3. 使用了数组对象来初始化。

    2.4 结合PTA(构造函数与初始化块)说明初始化块与构造函数的异同。并说明,初始化块与构造函数谁先执行?初始化块与静态初始化块有何不同,谁先执行?

    • 构造函数是对一类的对象统一初始化的方法。用起来方便可以统一管理,构造函数可以重用,
      而代码块只能每次都写。而且如果对象增加了属性,代码块改动的地方就多了。初始化块先执行。
    • 静态块在第一个对象创建时运行,初始化块在每个对象创建时运行。静态初始化块先执行。

    3.代码分析:Math类

    3.1 使用java.lang.Math类的方法时,为什么不需要new出一个Math对象,然后调用该对象上相应的方法?

    Math类中的方法都是静态类的,不需要新创建。

    3.2 如果newMath()会产生什么错误?尝试阅读Math类源代码,分析原因。

    无法运行,出现错误The constructor Math() is not visible;Math类被声明为private,无法用new来构建。

    3.3 进一步:你觉得什么样的对象需要new出来才能用,调用什么方法时不必创建相应对象就可以使用?(重点检查)

    使用 static修饰的类是全体对象实例共享的资源,不需要new来修饰。

    4. 重载Overload

    4.1 什么是重载?什么是构造函数重载?怎么才能区分两个重载的方法?

    • 和返回值类型没有关系,只要函数名一样,参数列表不一样就是重载。

    • 根据参数的数量和属性。

    4.2 在java.lang.Math类中举出1个方法重载的例子?

    public static long subtractExact(long x, long y)public static int subtractExact(int x, int y)

    5. 代码阅读: final。final修饰的变量不能改变,为什么如下代码却可正常运行?

    final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;
    final修饰的NUMBS不能再指向其他数组对象,但它指向的数组的内容可以改变。

    6. Java8中的时间日期类:编写函数public static booleanisMondayToFriday()功能:判断今天如果是周一到周五,返回true,返回false。main函数中调用该函数,如果为true则输出“工作日+姓名学号”,否则输出"休息+姓名学号"。

    7. 封装

    7.1 结合PTA(形状),请用自己的话简单总结一下面向对象中封装是什么意思?有何好处?

    • 封装就是把一系列的对象放在一个类中,从而将属性隐藏起来。
    • 如pta中,矩形的长宽或圆的半径被private封装起来,使得在该类之外无法变动作这些数据。

    7.2 和封装有关的关键字有哪些?

    • 对象
    • 属性
    • public
    • private

    8. 结对编程实践(未完成,0分)


    我的结对对象是张书阳,我们共同完成了pta的jmu-Java-03面向对象基础-02-构造函数与初始化块这道题目。这次结对确实起到了1+1>2的效果,一开始我们确定了思路,虽然代码上也有一些不同的想法,但是在同宿舍的同学的指点下,完成的还算不错。

    3. 码云及PTA

    3.1. 码云代码提交记录

    3.2 截图PTA题集完成情况图


    3.3 统计本周完成的代码量

    行数 新增行数 文件数 新增文件数
    684 456 56 28
  • 相关阅读:
    [JSOI2007][BZOJ1031] 字符加密Cipher|后缀数组
    leetcode Flatten Binary Tree to Linked List
    leetcode Pascal's Triangle
    leetcode Triangle
    leetcode Valid Palindrome
    leetcode Word Ladder
    leetcode Longest Consecutive Sequence
    leetcode Sum Root to Leaf Numbers
    leetcode Clone Graph
    leetcode Evaluate Reverse Polish Notation
  • 原文地址:https://www.cnblogs.com/lsyuan/p/7617558.html
Copyright © 2011-2022 走看看