Java从入门到精通09
一、方法格式
格式:
修饰符 方法返回值类型 方法名称(行参)
{方法体;
return[返回值];
}
1.修饰符
修饰符(可有可无)一般有public、protected、private、static、final、abstract。
其中public、protected、private只能出现其一,abstract、final只能出现其一,可以和static组合起来修饰方法。
2.方法名
方法名,随意标识符,建议以英文动词开头,达到见面知意最好,一般小写。
3.行参
行参一般由(参数类型 参数名)组成,可多组,可单组,也可以没有。数组之间用","隔开,用来定义该方法可以接受的参数。
4.方法体
方法体即一些可执行语句,实现某些功能的,语句一般自上而下按序执行。
5.返回值
返回值类型可以是基本类型和引用类型。返回值可有可无,若有返回值,则必须有一条有效的return语句,要没有返回值,则必须使用void定义声明一下。
二、方法的所属性
- 方法不能独立定义,方法只能在类体里定义。
- 从逻辑意义上来看,方法要么属于类的本身,要么属于该类的一个对象。
- 永远不能独立执行发放,执行方法必须使用类或对象作为调用者。
解释:
方法不能独立存在,方法必须属于类或对象,在执行方法时,必须使用类或对象作为调用者,因为方法不是独立存在是实体,方法只能属于类或者对象。
使用static修饰的方法又被称为静态方法或者是类方法,它属于类的本身,可由类直接调用,没有static的方法称为实例方法,不属于这个类的本身,只要实例化即用该方法所在的类创建对象时,才能够由对象调用。
三、方法的参
先了解两个专业术语:
按值调用:方法接收的是调用者提供的值。
按引用调用:方法接收的是调用者提供的变量地址。
方法可以修改按引用调用的值,不能修改按值调用的值。
Java程序设计语言总是按值调用,也就是说方法得到的值是调用者提供的“复制品”,所以方法修改也是修改它的复制品。
注意:调用者调用基本类型的都是数本身的复制品,调用引用类型的是地址值的复制品,也就是说当调用者调用的是引用数据类型的变量是,它是可以更改数据值的!
基本数据类型:
public class Demo {
public static void main(String[] args) {
int a=15;
b(a);
System.out.println("方法体外:"+a);
}
public static void b(int a){
a=16;
System.out.println("方法体内:"+a);
}
}

图解:

代码解析:
- Java虚拟机分内存给Demo存放字节码文件
- 遇到main方法,在栈区开辟一个空间给main
- 在栈区的main空间内开辟一个空间给变量a,并赋值15
- 遇到b方法,在栈区开辟一个空间给b
- b方法有行参,即复制品a,所以在b空间内开辟一个空间给复制品a并赋予初值15
- 赋值16给复制品a并输出打印a,并结束b方法
- 打印a本体,并结束main方法
引用数据类型
public class Demo1 {
public static void main(String[] args) {
Student student=new Student();
student.age=19;
student.name="小李啊是";
student.id=21143;
a(student);
System.out.println("a方法外:"+student.id);
}
public static void a(Student student){
student.id=11;
System.out.println("a方法内:"+student.id);
}
}
public class Student {
int age;
String name;
int id;
}

图解:

代码解析:
- Java虚拟机分内存给Demo1和Student存放字节码文件
- 遇到main方法,在栈区开辟一个空间给main
- 在栈区的main空间内开辟一个空间给变量student,且student的数据类型为Student类型,并在堆区开辟一个空间存放student 的实例变量(栈区的student空间存放的是堆区student的代码值)
- 分别给id、name、age赋值
- 遇到a方法,在栈区开辟一个空间给a
- 在a空间开辟一个空间给student,将main方法内的student中的地址值复制到a方法中的student内
- 通过a方法内的地址值指向id并赋值11
- 打印输出a方法内加上学生的id,并结束a方法
- 打印输出a方法外加上学生的id,并结束main方法
今天到此为止,感谢观看
本文详细介绍了Java中方法的定义格式,包括修饰符、方法名、参数、方法体和返回值。讨论了方法的属性,如方法必须在类中定义,以及方法的调用方式。还区分了按值调用和按引用调用的概念,并通过示例说明Java中方法参数传递的机制。
1181

被折叠的 条评论
为什么被折叠?



