zoukankan      html  css  js  c++  java
  • 学号 2017-2018-20172309 《程序设计与数据结构》第4周学习总结

    学号 2017-2018-20172309 《程序设计与数据结构》第4周学习总结

    教材学习内容总结

    第四章:

    • 了解到类与对象: 类是对象的蓝图,代表了对象的概念.比如学生是一个类,而我们每一个学生就是对象、猫是一种动物,而每一只猫都是一个个体。
    • 学会了怎样创建一个类,并且每一个类都包含了数据声明与方法声明。
    • 了解到了可见性修饰符在方法和数据上的效果。它们分为public和private,public可以从该对象的外部直接使用,而private只能从类的内部访问,不能从外部访问。此外,常量可以用public,因为他是一个 固定值即被final修饰,不会被外界改变。
    • UML类图有助于描述程序的类结构与类间的关系。它由类名、属性(数据)、操作(方法)构成。
    • 了解到了类中的方法顺序:可选的修饰符、返回值类型、指定方法名的标识符、参数列表和方法体。
    • 被调方法和调用方法可能不在一个类中,那么需要另一个类的对象名来调用方法
    • 方法的返回值类型必须与方法声明首部中固定的返回值类型一致。
    • 参数分为形式参数和实际参数**。例如:
    public setFacevalue(数据类型 形式参数)
    
          facevalue=形式参数~~即实际参数~~
    
    • 构造方法与常规方法类似,它是辅助类的实例。常用于初始化与每个对象有关的变量。除此之外,得注意:
    1. 构造方法名与类名相同。
      2.构造方法不能有返回值,因此方法声明首部没有返回值类型。

    第七章

    • 了解到软件开发分为:确定软件需求、软件设计、实现软件设计、和软件测试四个方面。现实生活中,它们不是按顺序一次性的完成。它们是相互折叠和交互的。
    • 了解到了静态变量与静态方法。静态变量由类的所有实例共享静态方法可以通过类名称来调用,使用时不用实例化对象
    • 本章学习的类间关系有依赖关系聚合关系
    • 了解到了接口(常量和抽象方法的集合),抽象方法是没有实现的方法,即没有代码体。接口不能被实例化。

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

    • 问题1:类与对象有什么不同?(对类就是对象的蓝图的理解
    • 问题1解决方案:
    1. 类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个   体,但它本身不存在于现实世界上。
    2. 对象是类的一个具体。它是一个实实在在存在的东西。
    3. 类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。
    4.对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。
    
    • 问题2:返回值什么时候用?

    • 问题2解决方案:

    • 问题3:变量的作用域是个什么鬼?

    • 问题3解决方案:变量分为全局变量和局部变量。它们的作用域不同。

    1. 全局变量:在类里定义(非方法里)的变量,那么在这个类中都可以使用。
    2. 局部变量:在方法中定义的变量,这个变量一旦出了这个方法,就不能用了。
    • 问题4:static静态标识符应该什么时候用?
    • 问题4解决方案:
    • 问题5:当使用非静态方法时,必须调用该类的实例对象调用,而不能用类名调用。问:如何使用实例对象调用?
    • 问题5解决方案:首先用new运算符创建一个对象,然后使用 对象.方法名()运用。
    • 问题7:如何将一个对象作为方法的参数传递给另一个对象?
    • 问题7解决方案:

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

    • 问题1:在vim编辑器中写完代码后,不能推出!!(包括强制退出也不行)
    • 问题1解决方案:
    1. 不过不行的话首先复制代码到记事本关掉vim 同时删除上次创建的文件用命令rm。之后重新做,不过复制就行。
    • 问题2:出现非法字符,

    • 问题2解决方案:一般这种情况就是使用了中文符号,最有可能就是那些跟英文中同种长的很像的。只要仔细就好。

    • 问题3:不兼容的类型,以外的返回值。

    • 问题3解决方案:方法的返回值类型必须与方法首部中规定的返回值类型一致。当方法不返回任何值时,用void作为返回值类型,此时就不需要返回语句。

    • 问题4:怎么把一个double数据类型输出成字符串?

    • 问题4解决方案:将double数据类型变成String型

    • 问题5:
      -问题5解决方案:对此类问题总结,分为三种:

    1.环境变量没有设置:JAVA_HOME、CLASSPATH、PATH,都需要指向JDK相关的目录,其中的JAVA_HOME指向安装根目录,CLASSPATH指向lib目录,path指向bin目录;
    2.输入的JAVA源文件没有带文件名后缀java;
    3.输入的JAVA源文件的名字与真实源文件不一致,需要注意的是大小写也必须一致。

    • 问题6:如图所示,返回语句中的+“”作用是什么?
    • 问题6解决方案:在本语句中,value 的数据类型为 int 型,运用 +“” 能将其转变为字符型。
    • 问题7: 在使用Comparable 接口时,出现如图情况:
    • 问题7解决方案:出现这种情况是因为运用compareTo方法时:r1.compareTo(5/3); 其中如果想用数字5/3就得封装!!
    RationalNumber  num1;
    
       RationalNumber     num2=5/3;
       num1 =  num2;
    

    代码托管


    上周考试错题总结

    • 错题1及原因,理解情况:
      If two variables contain aliases of the same object then
      A . the object may be modified using either alias
      B . the object cannot be modified unless there's but a single reference to it
      C . a third alias is created if/when the object is modified
      D . the object will become an "orphan" if both variables are set to null
      E . answers A and D are correct

    正确答案:E 我的答案:A
    错误原因:选项没有看完,导致没有选D。

    • 错题2及原因,理解情况
      What happens if you attempt to use a variable before it has been initialized?
      A . A syntax error may be generated by the compiler
      B . A runtime error may occur during execution
      C . A "garbage" or "uninitialized" value will be used in the computation
      D . A value of zero is used if a variable has not been initialized
      E . Answers A and B are correct

    正确答案:E 我的答案:B
    错误原因:没有正确的认识语法错误,语法错误就是编辑时的错误,俗称病句

    • 错题3及原因,理解情况:
      What is the function of the dot operator?
      A . It serves to separate the integer portion from the fractional portion of a floating point number
      B . It allows one to access the data within an object when given a reference to the object
      C . It allows one to invoke a method within an object when given a reference to the object
      D . It is used to terminate commands (much as a period terminates a sentence in English)
      E . Both B and C are correct

    正确答案:E 我的答案:B
    错误原因:在课本上只看到了C的相关语句,所以直接选了C

    • 错题4及原因,理解情况:
      Consider the following two lines of code. What can you say about s1 and s2?!
      String s1 = "testing" + "123";
      String s2 = new String("testing 123");
      A . s1 and s2 are both references to the same String object
      B . the line declaring s2 is legal Java; the line declaring s1 will produce a syntax error
      C . s1 and s2 are both references to different String objects
      D . s1 and s2 will compare "equal"
      E . none of the above

    正确答案:C  我的答案:B
      错误分析:以为S1是错误的语法,后来才发现没有问题。回去后直接试了下发现它们都是对的。

    • 错题5及原因,理解情况:
      The String class' compareTo method
      A . compares two string in a case-independent manner
      B . yields true or false
      C . yields 0 if the two strings are identical
      D . returns 1 if the first string comes lexically before the second string
      E . none of the above

     正确答案:C   我的答案:D 
    错误分析:没有正确理解题目的意思,我的理解为:“class”与“method”相比。题目的意思为:“使用String类char compareTo()方法的输出。输出规则是:按照字典顺序+0-分别表示先于、等于、后于STr字符串。

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

    这章比起前面几章难了不少,很多都一开始的时候都不能理解。在看例子的时候需要非常认真,时常需要问自己它为什么这么做?不过学会或者是打出自己的一个小程序时,心中还是特别高兴的。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 075/000 1/1 05/20
    第二周 485/560 1/2 13/38
    第三周 412/987 1/4 21/60
    第四周 679/1666 1/5 21/90

    参考文献

    1.Java语言中的错误
    2.Java中的类与对象的区分
    3.将double型变成String型
    4.vim中的复制与粘贴
    5.IDEA快捷键

  • 相关阅读:
    深入浅出设计模式——命令模式(Command Pattern)
    深入浅出设计模式——职责链模式(Chain of Responsibility Pattern)
    深入浅出设计模式——代理模式(Proxy Pattern)
    深入浅出设计模式——享元模式(Flyweight Pattern)
    深入浅出设计模式——外观模式(Facade Pattern)
    perl字符串操作符
    perl中单引号和双引号字符串区别
    用例图详解
    perl中system函数和反引号` `使用区别
    window cmd命令行下执行perl语句
  • 原文地址:https://www.cnblogs.com/dky-wzw/p/8658698.html
Copyright © 2011-2022 走看看