java面向对象之方法设计

方法的结构

权限修饰符 [特征修饰符] 返回值类型 方法的名字([参数列表]) [抛出的异常] {方法体(如果方法是抽象的或者该类是接口则可省略方法体)
}

  • []表示该元素可有可无

方法的设计一般有以下几种

  • 无参数无返回值
  • 无参数有返回值
  • 有参数无返回值
  • 有参数有返回值
//1.无参数无返回值
    public void eat(){
    
    
        System.out.println("这是吃饭的方法");
    }
//2.无参数有返回值
    //若方法设计了返回值类型,方法内必须通过return关键字返回一个值
    public String getName(){
    
    
        return "chenhui";
    }
//3.有参数无返回值
    //需要定义传入参数的类型和参数名字
    public void drink(String something){
    
    
        System.out.println("喝了一瓶"+something);
    }
     //还有一种参数类型叫可变参数,相当于一个数组,传入的值可以为0,也可以无数个,但是它必须放在参数列表的最后面
    public void drink(String drink,String... something){
    
    
        System.out.println("喝了"+drink);
        for (String thing: something) {
    
    
            System.out.println("还有"+thing);
        }
    }
//4.有参数有返回值
    public String buy(int money){
    
    
        if (money>5){
    
    
            return "红牛";
        }else {
    
    
            return "矿泉水";
        }

    }

测试类

public class TestMain {
    
    
    //main函数程序的入口
    public static void main(String[] args) {
    
    
        //创建一个Person类对象,
        //1.由于这个Person类是我们自己创建的类型,属于引用类型,通过new关键字来创建
        //2.一般来说需要找一个空间来接收,如果想直接创建完对象调用它的属性/方法后不需要它了,可以不需要接收
        Person person = new Person();
        //person是一个对象的引用,通过对象. 去调用方法做事情
        //方法的调用有一个(),它是用来传递参数
        //无参数无返回值方法调用
        person.eat();
        //调用有返回值的方法需要用一个对应的类型来接收(用其父类接收也可以,多态),当然也可以不接收(但是设计不合理)
        //无参数有返回值方法调用
        String name = person.getName();
        System.out.println(name);
        //有参数无返回值方法调用
        person.drink("可乐");
        person.drink("阿萨姆","雪碧","天地一号");
        //有参数有返回值方法调用
        String thing = person.buy(10);
        System.out.println(thing);
    }
}

注意方法之间不能来回调用,否则可能会出现问题–java.lang.StackOverflowError(栈内存溢出)

测试代码

public class Person {
    
    
    
    public void test() {
    
    
        play();

    }

    public void play(){
    
    
        test();
    }
}
public class TestMain {
    
    
    public static void main(String[] args) {
    
    
        Person person = new Person();
        person.play();
    }
}

测试结果
在这里插入图片描述

以上通过内存图描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45608165/article/details/112116971