Java-形参与返回值

news2025/2/25 6:46:41

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();
    }
}

在这里插入图片描述

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/361903.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国家级高新区企业主要经济指标(2012-2021年)

数据来源:国家统计局 时间跨度:2012-2021 区域范围:全国(及各分类统计指标) 指标说明:手工提取最新的中国统计年鉴数据中各个excel指标表,形成各个指标文件的多年度数据,便于多年…

物联网发展的重要通信技术Wi-Fi

Wi-Fi 可以适应各种场景的联网需求 Wi-Fi 在实现物联网创新方面发挥了基础性作用,提供了广泛的连接性,将各种“事物”相互连接、连接到互联网,以及连接到全球使用的 180 亿台 Wi-Fi 设备。物联网的经济潜力是无限的,Wi-Fi 为智能…

Spring aop之针对注解

前言 接触过Spring的都知道,aop是其中重要的特性之一。笔者在开发做项目中,aop更多地是要和注解搭配:在某些方法上加上自定义注解,然后要对这些方法进行增强(很少用execution指定,哪些包下的哪些方法要增强)。那这时就…

每日一题——L1-069 胎压监测(15)

L1-069 胎压监测 分数 15 小轿车中有一个系统随时监测四个车轮的胎压,如果四轮胎压不是很平衡,则可能对行车造成严重的影响。 让我们把四个车轮 —— 左前轮、右前轮、右后轮、左后轮 —— 顺次编号为 1、2、3、4。本题就请你编写一个监测程序&#…

Windows 10/11如何恢复已删除的照片?

如果你想在Windows 11或Windows 10上恢复已删除的照片,你可以参考这篇文章,使用2种方法轻松恢复Windows上永久删除的照片。 可以恢复电脑上已删除的照片吗? 随着科技的发展,越来越多的用户习惯于在电子设备上存储照片。如果这些…

实时渲染为什么快,能不能局域网部署点量云

提到渲染很多有相关从业经验的人员可能会想起,自己曾经在电脑上渲染一个模型半天或者更长的 时间才能完成的经历。尤其是在项目比较着急的时候,这种煎熬更是难受。但现在随着实时渲染和云渲染行业的发展,通过很多方式可以提升渲染的时间和效率…

管理数据就这样轻松:TablePlus 5.3.1Crack

数据库管理变得简单 适用于关系数据库的现代、原生且友好的 GUI 工具:MySQL、PostgreSQL、SQLite 等 支持一整套关系数据库(和一些 NoSQL) 数据库MySQL红移数据库服务器SQLite数据库雷迪斯卡桑德拉蟑螂数据库数据库垂直 我们的客户来自世界上…

数据结构(四):树、二叉树、二叉搜索树

数据结构(四)一、树1.树结构2.树的常用术语二、二叉树1.什么是二叉树2.二叉树的数据存储(1)使用数组存储(2)使用链表存储三、二叉搜索树1.这是什么东西2.封装二叉搜索树:结构搭建3. insert插入节…

分析| 2023年移动开发平台的发展空间

春节过后返工已经过月,许多移动开发领域的企业都在忙着做技术调研与选型。在此之前,不如先回顾一下2022年的市场趋势,再结合好的移动开发平台的标准,从中窥见2023年的发展前景。 Gartner十大战略技术趋势 全球权威咨询机构Gartne…

ChatGPT写程序如何?

前言ChatGPT最近挺火的,据说还能写程序,感到有些惊讶。于是在使用ChatGPT有一周左右后,分享一下用它写程序的效果如何。1、对于矩阵,把减法操作转换加法?感觉不错的,能清晰介绍原理,然后写示例程…

运动健身用什么耳机好、最健身使用的耳机推荐清单

健身锻炼已经趋向于“国民运动”了,大家都喜欢一边听歌一边挥洒汗水,但是运动时戴的耳机也是有学问在里边的,需要满足佩戴牢固、防水防汗的基本需求,并且,根据每个人运动偏好的不同选择倾向也不同,在这里我…

HDLC简介及相应hdlc实训

HDLC简介 HDLC 协议 高级数据链路控制(HDLC,High-level Data Link Control)是一种面向比特的链路层协议, 其最大特点是对任何一种比特流,均可以实现透明的传输。HDLC协议具有以下优点。 透明传输:HDLC不…

动漫插画培训班有哪些

动漫培训班有哪些,今天给大家带来的是国内专业的动漫培训机构排名,这5个动漫培训机构,相信你一定都知道,快来看看吧! 一:动漫培训机构排名 1、轻微课 轻微课是国内人气很高的板绘学习平台,主打课…

经典文献阅读之--VoxelMap(体素激光里程计)

0. 简介 作为激光里程计,常用的方法一般是特征点法或者体素法,最近Mars实验室发表了一篇文章《Efficient and Probabilistic Adaptive Voxel Mapping for Accurate Online LiDAR Odometry》,同时还开源了代码在Github上。文中为雷达里程计提…

基于机器学习的异常检测与分析技术

传统的运维方式在监控、问题发现、告警以及故障处理等各个环节均存在明显不足,需要大量依赖人的经验,在数据采集、异常诊断分析、故障处理的效率等方面有待提高。 本关键技术面对传统运维故障处理效率低、问题定位不准确、人力成本高三大痛点&#xff0…

AXI实战(二)-跟着产品手册设计AXI-Lite外设(AXI-Lite转串口实现)

AXI实战(二)-跟着产品手册设计AXI-Lite 设(AXI-Lite转串口实现) 看完在本文后,你将可能拥有: 一个AXI_Lite转串口的从端(Slave)设计使用SV仿真AXI-Lite总线的完整体验实现如何在读通道中实现"等待"小何的AXI实战系列开更了,以下是初定的大纲安排: 欢迎感兴趣的…

【机器学习】为什么训练集用fit_transform而测试集只用transform?

文章目录一、解释二、归一化(Normalization)三、为什么只对训练集做fit_transform,对测试集只做transform?一、解释 fit(): Method calculates the parameters μ and σ and saves them as internal objects.解释:简…

使用vue3+vantUi3.x版本,van-list列表组件,控制台报错

van-list报错过程 在vue3.0vantUi3.x版本中&#xff0c;使用List列表组件时&#xff0c;代码就是官方给的demo&#xff1a; <van-listv-model:loading"loading":finished"finished"finished-text"没有更多了"load"onLoad" >&l…

甘肃西部河谷科技有限公司官网上线 | LTD技术行业案例分享

甘肃西部河谷信息科技有限公司成立于2018年&#xff0c;是一家专业的IT技术推广与服务公司。主营业务有智慧城市、智慧校园、智慧农业、信息技术设备软件研发、集成销售&#xff1b;安防设备、网络工程、市场营销策划、电子商务信息、技术咨询服务等。公司立足高端IT技术服务&a…

CODESYS开发教程11-库管理器

今天继续我们的小白教程&#xff0c;老鸟就不要在这浪费时间了&#x1f60a;。 前面一期我们介绍了CODESYS的文件读写函数库SysFile。大家可能发现了&#xff0c;在CODESYS的开发中实际上是离不开各种库的使用&#xff0c;其中包括系统库、第三方库以及用户自己开发的库。实际…