一、Java方法
(一)、什么是方法 方法是实现某个功能的一组语句,通常将常用的功能写成一个方法(类中的方法)。 方法能实现代码的模块化重用。 方法相当于函数,类似于加工厂。参数=原材料;方法体=加工;返回值(return)=出产商品。
(二)、方法的定义 [访问控制符] [修饰符] 返回值类型 方法名(参数类型 形式参数,参数类型 形式参数,…) { 方法体 } 方法的参数个数可以是0个到多个,每个参数前面要声明参数的数据类型,每个参数要用逗号隔开。
(三)JAVA方法分类。(无返回值就没有return语句) 1、无参无返回值 public static void getmax() { 方法体; }
2、无参有返回值 public static 基本类型/引用类型 getmax() { 方法体; return:数值(基本类型/引用类型:与定义时的类型要一致); }
3、有参无返回值 public static void getmax(int x,int y) { 方法体; }
int x,int y: 形参的作用是接收外部传入的数据,在方法调用的时候才分配内存空间,相当于该方法的局部变量。
4、有参有返回值 public static 基本类型/引用类型 getmax(int x,int y) { 方法体; return:数值(基本类型/引用类型:与定义时的类型要一致);
}
(四)方法的调用 方法只有在被调用后才生效。
方法的调用方法: 1、无参方法的调用 方法名()
2、有参方法的调用 如果方法体中没有静态(static),则不能在main方法中直接调用,需要通过new创建一个对象,利用对象去调用该方法。
类名 对象名=new 构造器; 对象名.方法名();
(五)使用方法时要注意的
1、形参必须注明数据类型。 2、实参直接写,不需要类型声明。 3、return只能返回一次。 4、遇到return语句,方法结束执行,后续语句不执行。 5、方法的返回值,必须与方法声明中的返回值类型相匹配。 6、方法定义,不能写在mian( )中,每个方法都是一个独立的整体。 7、方法不能嵌套的。 8、方法中实参的个数与形参的个数相等,类型要想匹配。
三、语句注释 每个方法必须注释,关键语句块也要注释。
四、方法变量 定义方法中的变量,是方法的局部变量,局部变量访问范围只能是当前定义的{ }。 局部变量必须初始化才能使用,因为局部变量没有默认值。
五、相同方法与方法重载 相同方法:名称相同、参数相同(个数、类型)。 重载方法:名称相同,参数的个数或者类型不同,或者两者都不同。方法的返回值类型可以相同,也可以不同。
六、方法重载 方法重载是同一个事物不同的形态,多态的体现。 对不同事物进行同样的操作时要用到方法重载。 方法重载面向对象才有,面向过程没有的。 判断方法是否重载只看方法名称(大小写也可以),参数(参数个数、参数类型)。
七、构造方法 用于创建对象并对其成员进行初始化。
八、参数传递
1、基本数据类型的参数传递 数值传递,形参的变化不会影响实参。 在栈中实参是直接把数值复制给在栈中的形参,从此后实参与形参相互独立,互不干涉。 栈:有规则的,已明确定义的、不变化的数据类型(基本数据类型)存放在栈中。
2、引用数据类型的参数传递 内存地址传递。 形参、实参共同用内存地址指向堆中的数值内存的地方,形参改变会影响实参的变化。 因为地址是共用的,一方改变会引起另一方的改变,导致共同的指向改变从而改变实质的值。 堆:不规则的、没有明确定义好的、动态的数据类型(应用类型)存放在堆中。