Fork me on GitHub

类的成员之二:方法

Posted on 2019-09-02 19:48  攀一座山  阅读(177)  评论(0编辑  收藏  举报

方法的概念

方法(method),又称为函数(function),是代表一个独立的可复用的功能,体现事务的行为特征,功能特征。

目的/好处:复用性

方法的语法

1、方法的声明格式:

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

说明:

(1)【修饰符】

(2)返回值类型:可以是Java的任意数据类型,包括基本数据类型和引用数据类型。

当该方法没有返回值时,使用void表示。

  • 如果方法的返回值类型是void,那么在{方法体}中可以不需要return语句。

  • 如果方法的返回值类型不是void,那么在{方法体}中必须有return 返回值;的语句,否则编译不通过。

(3)方法名:

  • 尽量能够代表方法的功能,即见名知意

  • 从第二个单词开始首字母大写

(4)【形参列表】:表示在完成当前方法的功能时,需要“调用者”给我额外的数据。

  • 形参列表的格式: (数据类型 形参名, 数据类型 形参名 。。。。)

  • 要求方法的“调用者”在调用方法时,【实参列表】的个数、类型、顺序必须与【形参列表】一一对应。

(5)方法体:实现方法的功能,最好一个方法就完成一个独立的功能。

2、方法的调用格式:

//本类同级别方法调用
直接使用

class Circle{
    double radius;
    
    double area(){
        return 3.14 * radius * raidus;
    }
    
    String getInfo(){
        return "半径:" + radius + ",面积:" + area();
    }
}
//在其他类的方法中调用
对象名.方法名(【实参列表】)

class Circle{
    double radius;
    
    double area(){
        return 3.14 * radius * raidus;
    }
}
class TestCircle{
    public static void main(String[] args){
        Circle c = new Circle();
        System.out.println("半径:" + c.raidus + ",面积:" + c.area());
    }
}

  

(1)是否传参

  • 看方法是否有【形参列表】,【实参的列表】的个数、类型、顺序与【形参列表】一一对应;

  • 无论是否有参数,调用时的()不要省略

(2)是否接收返回值

  • 看方法是否有返回值,如果是void,表示没有返回值,不能接收;

  • 如果不是void,就可以接收,而且接收返回值的变量的类型必须能够兼容这个返回值的类型。

3、方法的声明与调用的代码示例

(1)无参无返回值方法

//本类
class Demo{
    void test1(){
        //....
    }
    
    void test2(){
        test1();//直接使用
    }
}

//其他类
class Demo1 {
    void test1(){
        //....
    }
}
class Demo2{
    void test2(){
        Demo1 d = new Demo1();
        d.test1();
    }
}

  (2)无参有返回值方法

//本类
class Circle{
    double radius;
    
    double area(){
        return 3.14 * radius * raidus;
    }
    /*
    String getInfo(){
        return "半径:" + radius + ",面积:" + area();//直接把area()方法的返回值拼接起来。
    }*/
    String getInfo(){
        double a = area();//用a变量接收了返回值
        return "半径:" + radius + ",面积:" + a;
    }
}

//其他类
class Circle{
    double radius;
    
    double area(){
        return 3.14 * radius * raidus;
    }
}
class TestCircle{
    public static void main(String[] args){
        Circle c = new Circle();
        System.out.println("半径:" + c.raidus + ",面积:" + c.area());
        
        double a = c.area();//用变量a接收返回值
        System.out.println("半径:" + c.raidus + ",面积:" +  a);
    }
}

  3)有参无返回值方法

//本类
class Demo{
    void test1(String str){
        //....
    }
    
    void test2(){
        test1("hello");
    }
}

//其他类
class Demo1{
    void test1(String str){
        //....
    }   
    
}
class Demo2{
    void test2(){
        Demo1 d = new Demo1();
        d.test1("hello");
    }
}

  (4)有参有返回值方法

//本类
class Demo{
    int max(int a, int b){
        return a>b?a:b;
    }
    
    void test(){
        int m = max(3,4);
        System.out.println("最大值:" +m);
    }
}

//其他类
class Demo1{
    int max(int a, int b){
        return a>b?a:b;
    }
}
class Demo2{
    void test2(){
        Demo1 d = new Demo1();
        int m = d.max(4,5);
        System.out.println("最大值:" +m);
    }
}

  

4、方法声明与调用的原则

(1)方法必须先声明后调用

如果调用方法时,如果方法名写错或调用一个不存在的方法,编译会报错

(2)方法声明的位置必须在类中方法外

正确示例:

类{
    方法1(){
        
    }
    方法2(){
        
    }
}

错误示例:

类{
    方法1(){
        方法2(){  //错误
        
   		}
    }
}

  

(3)方法的调用的位置有要求

正确示例:

类{
    方法1(){
        调用方法
    }
}

  错误示例:

类{
    方法1(){
        
    }
    
    调用方法  //错误位置
}

(4)方法的调用格式要与方法的声明格式对应

①是否要加“对象.”

②是否要接收返回值

③是否要传参

Copyright © 2024 攀一座山
Powered by .NET 9.0 on Kubernetes