Java类的成员—方法

前言

Java中类有五个成员,分别是属性、构造器、方法、代码块、内部类。本篇文章我将从浅入深的给大家讲解方法的概念及其特点,希望对大家有所帮助。

1 举例一些方法

首先我先举例最常见的四种方法,他们分别是:

public class Person{
    
    
    
    //无返回值,无形参
    public void eat(){
    
    
    }
    
    //无返回值,有形参
    public void sleep(String name){
    
    
    }
    
    //有返回值,无形参
    public int wait(){
    
    
    }
    
    //有返回值,有形参
    public String talk(int age){
    
    
    }
    
}

2 方法的声明的格式

从上面所举例的四种常见方法我们可以的出方法的声明格式,在下面的篇幅中我将分别给大家介绍声明格式的每部分内容。

权限修饰符 返回值类型 方法名(形参列表){
    
    
	方法体
}

3 对方法声明的说明

3.1 权限修饰符

方法前面可以添加Java规定的四种权限修饰符,这四种权限修饰符分别是
private public 缺省 protected

3.2 返回值类型

有返回值:

​ 如果方法有返回值,则必须在方法声明时指定返回值类型,

​ 同时方法中必须使用 return 关键字返回指定类型的数据

public String eat(){
    
    
    return name;
}

无返回值:

​ 如果方法没有返回值,则声明 void 来表示,通常没有返回值的方法中不需要使用 return 如果使用;

​ 如果要使用的话,只能 return; 表示方法的结束,之后不能写语句

​ 如果写了之后,就会编译错误 报错信息是:Unreachable statement

3.3 方法名

属于标识符,遵守标识符规范并且见名知意

3.4 形参列表

方法可以声明任意个形参,比如说一个、两个或多个

下面是声明多个形参的格式

public void test(int age,String name){
    
    	//多个形参之间用,隔开
    //方法体
}

3.5 方法体

就是方法功能的体现,咱们写方法只要就是写方法体

4 return关键字的使用

​ 作用:①结束方法;

​ ②针对于有返回值类型的方法,使用 retrun 数据; 方式返回所需要的数据

​ ③return关键字后面的语句不能执行

5 方法的使用

​ 可以调用当前类的属性方法; 方法A中调用方法A就是递归方法

​ 方法中不可以定义别的方法

继续深入方法

在了解了方法的声明格式后,我们学习一下方法的特性

1 方法的重载

1.1 重载的概念

​ 重载就是在同一个类、多个方法之间方法名相同、形参列表不同的一组方法我们称之为方法的重载。
通过定义我们也可以得出怎航判断多个方法之间是否存在重载关系
① 在同一个类中;②方法名相同;③形参列表不同

​ 形参列表不同可具体分为:参数个数不同、参数类型不同、参数顺序不同
下面这四个方法之间彼此构成重载:

public void test(int a){
    
    
    
}

public void test(String b){
    
    
    
}

public void test(int a,String b){
    
    
    
}

public void test(String b,int a){
    
    
    
}

2 可变个数的形参

就是你不确定你要往方法里面传入多少形参时,就可以使用可变形参,这个功能是JDK5.0新增

格式:数据类型… 变量名

public void test(String... strs){
    
    	这就是可变形参,传入的参数个数可以是 01个 。。。 多个
    
}
需要注意的是:可变个数形参必须声明在参数列表最后

可变形参最多只有一个

3 方法参数的值传递机制(重点)

3.1 形参实参的概念

形参:方法声明时小括号内的参数

实参:方法调用时实际传给形参的数据

3.2 值传递机制

Java中方法的参数传递方式只有一种:值传递

形参是基本数据类型:将实参基本数据类型的“数据值”传递给形参

形参数引用数据类型:将实参引用数据类型的“地址值”传递给形参

猜你喜欢

转载自blog.csdn.net/weixin_45321793/article/details/109297167