方法的所属性

  • 如果一个方法使用了 static 修饰,那么这个方法属于这个类本身,否则就属于实例对象。
  • 在同一个类中,方法的调用者总是 this 或者 类
    • 当被调方法是普通方法的时候,默认使用 this 作为调用者
    • 当被调方法是静态方法的时候,默认使用 类 作为被调者
  1. 方法不能独立定义,只能在类体内进行定义
  2. 从逻辑上看,方法要么属于类本身,要么属于类的某一个实例对象
  3. 永远无法独立的执行方法,执行方法必须使用类或者对象作为调用者

静态方法属于类本身,不属于任何实例对象,但是二者都可以调用

方法的参数传递机制

  • Java 只有一种参数传递机制,就是值传递,相当于拷贝,拷贝之后的改变对于原实参没有影响

形参个数可变的方法

  • 如果在定义方法的时候,在 ==最后一个形参== 后面增加三个点(.), 则就表示该形参可以接受多个该类型的参数
  • 形参个数可变对于每个方法最多只有一个,并且仅仅用于最后一个形参,其余形参个数不可变,传入自动转为数组的形式传入

方法重载

  • Java 中一个方法的判定要看三个方面:
    1. 调用者,方法的所属者,可以是对象,也可以是类
    2. 方法名, 方法的标识
    3. 形参列表, 当调用方法的时候,系统会根据实际传入的参数进行再一次的匹配
  • 也就是说,如果要重载一个方法, 必须要保证两同一不同:同一个类中,方法名相同,参数列表不同
  • 返回值,修饰符等其他因素不同的,不算做方法的重载
  • 对于包含有形参可变的方法,当该位置只传入一个参数的时候,优先调用不是形参可变的方法

成员变量和局部变量

成员变量和局部变量

  • 成员变量是在类里面进行定义的变量,局部变量是在方法里面定义的变量
  • 成员变量分为类变量和实例变量两种,static 修饰的是类变量, 和类的生存时间相同, 没有 static 修饰的属于实例变量,和变量的生存时间相同
  • 一个类的生存周期包括 : 类加载-类验证-类准备-类解析-类初始化-类使用-类卸载
    • 类加载-类验证-类准备-类初始化的发生顺序是确认的,但是解析阶段不一定,解析有可能

发生在初始化阶段之后,然后再去进行类使用 ​ 类的生存周期)

  • 一个类中不能定义两个同名的成员变量(一个是类变量,一个是实例变量也不行)
  • 同一个方法中不能定义同名的方法局部变量,但是不同的代码块变量可以重名
  • 在允许的情况下,默认使用就近原则来进行变量的运算

局部变量的初始化和内存中的运行机制

  • 局部变量经过定义后,只有在被赋值时才会被分配内存空间,定义时不进行初始化
  • 局部变量总是保存在所在方法的 栈 内存中,栈中的变量无需系统垃圾回收,随方法或代码块结束而结束
  • 尽可能的缩小局部变量的作用范围

标签: 笔记, Java

添加新评论