zoukankan      html  css  js  c++  java
  • 2020.7.16

    一、今日学习内容:

       今天学习4.3.7方法参数及其传递问题、4.3.8方法递归,还有4.4类的属性。

    (1)方法参数及其传递问题:分为两种,值传递和引用传递。

    个人认为,其实不能单纯利用返回值为void的函数运行后查看原值来判断是值传递还是引用传递。我选择在传完参数后的函数内测地址,地址一样就是引用传递,不一样就是值传递。
    hashCode()一般包含了地址,但Integer的hashCode()则只是原值,得使用System.identityHashCode(data)来测。

    注:

    基本类型是值传递

    引用类型是引用传递,返回值为void的话未必能在外面看到改变。

    引用类型对象重新被new了以后,看不到改变;但改变属性能看到改变。

    数组也是引用类型,数组元素值的改变能在void方法外面测出来。

    (2)方法递归:

    1.什么是递归?
    :方法自身调用自身。
    a(){
    a();
    }

    2.递归是很耗费栈内存的,递归算法能不用尽量别用。

    3.递归必须要有结束条件,没有结束条件一定会引起栈的溢出错误

    4.递归即使有了结束条件,即使结束条件是正确的,也可能会发生栈内溢出

    (3)类的属性:

    一、类的修饰符

     

    (1)public(公有属性)

    公有的、公共的(一般用于定义一个公共的类的属性或变量,可以在该类以外调用和供其他类调用和使用)

     

    定义格式 :public 数据类型 属性名称;

     

    例如:

    public公有属性,可以在该类以外调用,其他类也可以调用(这种变量称之为实例变量)

     

     

    (2)private (私有属性)

    私有的(一般用于定义一个私有的类的属性或变量,只能在本类使用,不可外调,外调是会报错)

    定义格式 :private 数据类型 属性名称;

    例如:

     

     

    二、类的变量

     

    1、分类:分为“成员变量”和“局部变量”

     

    1.1、成员变量(有默认值,String类型不赋值时默认值为null、int为0)

    (1)实例变量(不以 “static” 修饰)

    例如 :

     

    特别注意:实例变量只能在类实例化之后的对象中使用和调用!!!

     

     

    (2) 类变量(以“static”修饰)

    例如:

    可以直接通过“ 类名 . 属性 ”方式直接调用

     

     

    1.2、局部变量

    (1)形参(方法小括号中定义的变量)

    例如:

    特别注意:在调用这个方法的时候,在其给予赋值时,必须和参数里面的数据类型一致,不然会执行报错!!!

     

    (2)方法局部变量(在方法体内定义)

    就是在一个方法体里面的变量,只能在这个方法体(一个方法的中间部分)里面发挥作用,超出范围则无效(带有数据类型,如 int i = 0;)

    例如:

    特别注意:在定义时必须赋值,否则无效!!!

     

    (3)代码块局部变量(在代码块内定义)

    就是在一对大的花括号里面定义的变量,和方法局部变量有些类似,在其定义时也必须初始化值,不能超出所在范围,否则无效!!!

     

     

    三、成员变量(属性)和局部变量的区别

     

     

     

    注意事项总结:

     

    1、方法局部变量:就是在一个方法体里面的变量(带有数据类型,如int i = 0;)

     

    2、代码块局部变量:就是在一对大的花括号里面定义的变量

     

    3、成员变量的修饰符:public(公共的) 和 private(私有的)

     

    4、特别注意:实例变量只能在类实例化之后的对象中使用和调用!!!

     

    5、特别注意:成员变量有默认值,可以不用初始化值!!!

     

    6、特别注意:局部变量只能在它所属的范围类使用,必须赋值!!!

     二、遇到的问题:

    方法递归不明白。

    三:明日计划:

    继续学习第四章内容,继续阅读《大道至简》。

  • 相关阅读:
    python-数据结构代码 图(邻接表)
    python-数据结构代码 查找树
    day013内置函数一
    day012生成器函数、生成器表达式、列表推导式
    day011 函数名的运用,闭包,迭代器
    day010 动态传参、函数嵌套、命名空间、作用域
    day009 初识函数
    day008文件操作及应用
    day007深度拷贝和数据补充、set去重、fromkeys
    day006 小数据池,再谈编码
  • 原文地址:https://www.cnblogs.com/marr/p/13448310.html
Copyright © 2011-2022 走看看