面向对象的方法属于谁?
方法是类或对象的行为特征的抽象,是类或对象的组成成分,方法不能单独存在,所有的方法都必须定义在类中,
方法要么属于类,要么属于对象,因此方法不能像结构化编程语言的函数那样单独执行,
执行方法时,必须使用类或对象来调用,记住,以后代码里要显示调用,不然总是会遗忘,这也是结构化编程语言的函数和面向对象编程语言的方法的本质区别!
(同一个类里不同方法相互调用时,如果被调方法是普通方法,则默认使用this(当前对象)作为调用者,如果是静态方法,则默认使用类作为调用者,不存在方法的单独使用嗯~ o(* ̄▽ ̄*)o)
构造器方法是由对象调用的?嗯~ o(* ̄▽ ̄*)o
永远不能独立方法,执行方法必须使用类或对象作为调用者,因此我敢确定在调用构造器方法之前,一定创建了对象,由该对象去调用构造器去给自己存入数据,最后隐式返回对象的地址
方法的参数传递机制?
每一个方法都在内存中开辟自己的栈区,方法的传参实质是为另一个方法栈的变量所在的内存存入数据
jdk1.5支持的新特性:形参个数可变的方法,,实质就是一个数组参数,编译器规定:这个形参必须放在所有形参之后,且最多有一个长度可变的形参
public void test(String... books); public void test(String []books);
方法重载:方法名相同,形参列表不同
方法与内存?
方法存储在栈内存中,方法中的变量是局部变量,局部变量存储在方法所在的栈内存中,
类或对象的成员变量存储在堆内存中,是全局变量
因此每一个方法都会在内存中开辟一个栈区,变量也存储在对应的栈区中,类/对象的数据存放在堆内存中