Java成员方法
方法基本概念和应用
- 类的行为就是方法
public(访问修饰符) 范围数据类型 方法名称(参数列表){
语句;
return 返回值(可有可无);
}
访问修饰符有四种:public protected 默认 private
同类内调用方法可直接调用
跨类调用方法必须new 类,再调用
public class method01 {
public static void main(String[] args) {//主方法,main栈
//方法使用
//1.方法不调用,就不会输出
//2. 创建对象,使用调用方法
Person p1=new Person();
p1.speak();//调用方法
p1.cal01();
p1.cal02(5);
int retuanres=p1.gesum(10, 20);
}
}
class Person{
String name;
int age;
//方法(成员方法)
//添加spead成员方法,输出我是一个好人
//1.public 表示方法是公开的
//2. void:没有返回值
//3. speak():speak是方法名
//4。 {}方法体 执行代码
public void speak(){
System.out.println("我是一个好人");
}
//添加cal01 成员方法,计算从1+...1000
public void cal01(){
int res=0;
for(int i =0;i<1000;i++) res+=i;
System.out.println("计算结果为"+res);
}
//cal02方法,接受n,计算从1...n
//1. (int n)形参列表,有一个形参
public void cal02(int n){
int res=0;
for(int i =0;i<n;i++) res+=i;
}
//getsum
//方法执行后返回一个int数值
public int gesum(int num1,int num2){
return num1+num2;
}
}
方法的调用机制原理
执行getsum方法的时候,栈里会有一块专用的来存放方法里的变量,当值返回之后,该内存块被释放
方法传参机制
- 基本数据类型的传参机制
基本数据类型,传递的是值(拷贝,此乃更惨的任何改变都不会影响实参)
如下突所示的代码中,当把a和b传到方法里,进行了交换,主方法中的结果还是原来的
原因是,当调用swap方法时,会开辟一个新栈,临时变量储存在里面,主栈和wasp栈时独立的空间,各存各的,基本数据类型不是引用
- 引用数据类型的传参机制
方法中传递的参数为数组(引用形式)
引用类型传递的是地址
数组类型的引用数据也是指向堆空间
修改对象属性,也是传递的地址
思考题:方法里面的1. p=null 2. p=new Person();结果仍为p.age=10!
方法重载(Overload)
- 基本介绍
Java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致。
比如:System.out.println(); out是PrintStream类型 - 重载好处
- 减轻了起名的麻烦
- 减轻了记名的麻烦
- 注意事项
- 方法名一定要相同
- 参数列表:必须不同(类型或者顺序)
- 返回类型:没有要求
可变参数
同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。
public class VarParameteDetail {
public static void main(String[] args) {
}
}
class HspMeyhod{
public int sum(int n1,int n2){
return n1+n2;
}
public int sum(int n1,int n2,int n3){
return n1+n2+n3;
}
public int sum(int n1,int n2,int n3,int n4){
return n1+n2+n3+n4;
}
//可变参数优化
//1. int...表示接受的是可变参数,类型是int,可以接受多个int
//2. 使用可变参数时,可以当做数组来使用 即 nums 可以当做数组
//3. 遍历求和即可
public int sum(int... num){
System.out.println("接收参数个数:"+num.length);
int res=0;
for(int i;i<num.length;i++){
res+=num[i]
}
}
}
- 注意事项和使用细节
- 可变参数的实参可以为0个或任意多个。
- 可变参数的实参可以为数组。
- 可变参数的本质就是数组.
- 可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变参数在最后
- 一个形参列表中只能出现一个可变参数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY