java中方法详解

方法的所属属性
Java中的方法不能独立存在,所有的方法都必须定义在类里。执行方法时必须使用类或者对象来作为调用者,所有的方法都必须使用“类.方法”或“对象.方法”的形式调用。

这里写图片描述
这里写图片描述
方法的传递机制
Java中方法的参数传递方式只有一种:值传递, 所谓的值传递,就是将实际参数(简称实参)值的副本传入方法里,而参数本身并不手影响(结合之前的作用域)。

这里写图片描述
这里写图片描述
自己运行结果试试
这里写图片描述

类引用类型数组
数组格式定义:
动态声明:数据类型 [] 数组名 = new 数据类型[length];
静态声明:数据类型 [] 数组名 = {对象,对象….};
这里写图片描述
之前我们用过String 这个引用数据类型进行过声明,知道所有的引用数据类型都可以Object 作为数据类型数组。上边的例子进行修改后为:
这里写图片描述
以上两种打印结果都是一样的
这里写图片描述

关键字:this
this主要是在方法中调用,指向该调用该方法的对象;使用格式:this.成员变量或者this.方法。
例:
这里写图片描述
这里写图片描述

这里写图片描述
除此之外改写一下,在TestDog加一个方法和一个变量
这里写图片描述
结果如下:
这里写图片描述

0~n个形参
在最后一个形参的类型后增加三个点(…) ,表明该形参可以接收多个参数值,多个参数值被当成数组传入。
这里写图片描述
既然当成数组,也就是可以把数组当成参数传入

这里写图片描述
这里写图片描述
结果如下:
这里写图片描述
以上代码中我们可以看到方法名都一样,但是传入的参数和个数不一样,这种方式叫做方法的重载,上边中的static下边有讲
修饰符 static(引用他人解释)
static修饰的成员变量和成员方法习惯上称为静态变量和静态方法,可以直接通过类名来访问,访问语法为:
类名.静态方法名(参数列表…)
类名.静态变量名

用static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块

1、static变量
 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。

两者的区别是:
 对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。
 对于实例变量,没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。

所以一般在需要实现以下两个功能时使用静态变量:
 在对象之间共享值时
 方便访问变量时

2、静态方法
静态方法可以直接通过类名调用,任何的实例也都可以调用,
因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。
例如为了方便方法的调用,Java API中的Math类中所有的方法都是静态的,而一般类内部的static方法也是方便其它类对该方法的调用。

静态方法是类内部的一类特殊方法,只有在需要时才将对应的方法声明成静态的,一个类内部的方法一般都是非静态的
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq524752841/article/details/78020523