Java-形参与返回值

Java学习之道-1


一、形参与返回值

平时在进行代码编写的时候大多都是以变量作为形参或者以某种数据类型比如int、String或者Boolean等等作为返回值,本次主要介绍以下三种作为形参与返回值的情况

1、类名作为形参与返回值

类名,顾名思义是定义的class类,然后对应的class类称为另外一个class类的形参或者是返回值。
这种情况比较简单,不需要额外操作,直接调用即可,代码如下

Cat

package Inside_Class.Nomal_class;

public class Cat {
    public void show() {
        System.out.println("猫在跳舞");
    }
}

Cat_operator

package Inside_Class.Nomal_class;

public class Cat_operator {

    //作为参数
    public void Use_Cat(Cat cat) {
        cat.show();
    }

    //作为返回值
    public Cat Use_Cat() {
        Cat cat = new Cat();
        return cat;
    }
}

TestDemo

package Inside_Class.Nomal_class;

public class TestDemo {
    public static void main(String[] args) {
        Cat_operator c = new Cat_operator();
        Cat cat1 = new Cat();
        c.Use_Cat(cat1);
        System.out.println("-----------");
        Cat cat2 = new Cat();
        Cat_operator cc = new Cat_operator();
        Cat ca = cc.Use_Cat();
        ca.show();
    }
}

在这里插入图片描述

在对应形参与返回值中,用了方法重载的思想:
方法重载与返回值和形参无关,只要方法名相同。

2、抽象类作为形参与返回值

当抽象类作为形参与返回值时需要注意,抽象类!抽象类!抽象类!
他是没有构造方法的!所以没办法实例化对象,那如何作为形参与返回值呢?
有办法!这时候就得用到学过的多态的方法进行操作了,代码如下:

Animal

package Inside_Class.Abstract_class;
//抽象类
public abstract class Animal {
    public abstract void eat();
}

AnimalOperator

package Inside_Class.Abstract_class;
//操作类
public class  {
	//作为参数
    public void eat(Animal animal){
        animal.eat();
    }
	//作为返回值
    public Animal eat(){
        Animal animal = new Cat();
        return animal;
    }
}

Cat

package Inside_Class.Abstract_class;
//实例化对象,用猫继承
public class Cat extends Animal{
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }
}

TestDemo2

package Inside_Class.Abstract_class;
//测试类
public class TestDemo2 {
    public static void main(String[] args) {
        Animal animal = new Cat();
        AnimalOperator animalOperator = new AnimalOperator();
        animalOperator.eat(animal);
        System.out.println("--------------");
        AnimalOperator animalOperator1 = new AnimalOperator();
        Animal a = animalOperator1.eat();
        a.eat();
    }
}

在这里插入图片描述

在了解了抽象类方法作为形参与返回值之后相比较接口类就比较简单了

3、接口类作为形参与返回值

对于接口类对象作为形参与返回值跟抽象类一样,没有构造方法,没办法单独创建对象,所以一样是需要采用多态的方法来实例化接口类对象

Jump

package Inside_Class.Inter_class;
//接口类
public interface Jump {
    public abstract void Jump();
}

JumpOperator

package Inside_Class.Inter_class;

public class JumpOperator {
    //作为参数
    public void UseJump(Jump j){
        j.Jump();
    }
    //作为返回值
    public Jump UseJump(){
        Jump ju = new Cat();
        return ju;
    }
}

Cat

package Inside_Class.Inter_class;
//接口实现类
public class Cat implements Jump{
    @Override
    public void Jump() {
        System.out.println("猫能跳高了");
    }
}

TestDemo3

package Inside_Class.Inter_class;

public class TestDemo3 {
    public static void main(String[] args) {
        JumpOperator j = new JumpOperator();
        Jump jump =new Cat();
        j.UseJump(jump);
        System.out.println("-------------");
        Jump jump1 = j.UseJump();
        jump1.Jump();
    }
}

在这里插入图片描述

总结

整体而言,对于不同类型作为形参与返回值,其实尊重对应的约定,比如:抽象类与接口类,要通过继承或者实现的方式实例化对象,然后通过多态的方式进行操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值