Java开发——13.引用类型方法的参数和返回值

简介: 引用类型方法的参数和返回值

引用数据类型:

Java中只有两种数据类型:基本数据类型和引用数据类型,所以除了基本数据类型以外的所有类型都可以归结到引用数据类型中。基本类型可以作为成员变量、作为方法的参数以及作为方法的返回值,那么当然引用类型也是可以的。


今天讲三种引用数据类型作为方法的参数和返回值:普通类、抽象类以及接口。



普通类-作为方法的参数及返回值:


作为形参:

普通类-作为方法的形参

方法的形参是类名,其实需要的是该类的对象 实际传递的是该对象的【地址值】


publicclassStudent {
publicvoidstudy(){
System.out.println("好好学习,天天向上");
    }
}
publicclassStudentDemo {
//把普通类当作一个参数publicvoidmethod(Studentstudent){
student.study();
    }
}
publicclassStudentTest {
publicstaticvoidmain(String[] args) {
StudentDemost=newStudentDemo();
Students=newStudent();//作为参数传递给StudentDemo 类中的method方法st.method(s);
    }
}


作为返回值:

普能类-作为方法的返回值

方法的返回值是类名,其实返回的是该类的对象 实际传递的,也是该对象的【地址值】


publicclassStudent {
publicvoidstudy(){
System.out.println("好好学习,天天向上");
    }
}
publicclassStudentDemo {
//返回值类型为一个类publicStudentgetStudent(){
returnnewStudent();
    }
}
publicclassStudentTest {
publicstaticvoidmain(String[] args) {
StudentDemost=newStudentDemo();
Studentstudent=st.getStudent();//返回的是一个Student对象,所以可以用对象直接接收student.study();
    }
}




抽象类-作为方法的参数及返回值:


抽象类作为形参和返回值

1.方法的形参是抽象类名,其实需要的是该抽象类的子类对象

2.方法的返回值是抽象类名,其实返回的是该抽象类的子类对象


作为形参:



publicabstractclassPerson {
publicabstractvoidstudy();
}
publicclassPersonDemo {
publicvoidmethod(Personp){
p.study();
    }
}
//抽象类作为参数,必须实例化publicclassStudentextendsPerson {
@Overridepublicvoidstudy() {
System.out.println("好好学习,天天向上!!");
    }
}
//测试publicclassPersonTest {
publicstaticvoidmain(String[] args) {
PersonDemopd=newPersonDemo();
//抽象类需要一个具体类来实现Personp=newStudent();
//method的参数是一个抽象类,那抽象类如何实例化呢? 多态的方式!!!pd.method(p);
    }
}


作为返回值:


publicabstractclassPerson {
publicabstractvoidstudy();
}
publicclassPersonDemo {
//返回对象是一个抽象类publicPersongetPerson(){
//person是一个抽象类,只能通过多态的方法实例化,以下展示代码的分解// Person p = new Student();// return p;returnnewStudent();
    }
}
//具体子类实现抽象类PersonpublicclassStudentextendsPerson {
@Overridepublicvoidstudy() {
System.out.println("好好学习,天天向上!!");
    }
}
//测试publicclassPersonTest {
publicstaticvoidmain(String[] args) {
PersonDemopd=newPersonDemo();
Personperson=pd.getPerson();
person.study();
    }
}




接口类-作为方法的参数及返回值


接口作为形参和返回值:

1.方法的形参是接口名,其实需要的是该接口的实现类对象

2.方法的返回值是接口名,其实返回的是该接口的实现类对象


作为形参:


publicinterfaceLove {
publicabstractvoidshow();
}
publicclassLoveDemo {
//接口作为参数publicvoidmethod(Lovelove){
love.show();
    }
}
//子类实现接口publicclassLoveImplimplementsLove {
@Overridepublicvoidshow() {
System.out.println("爱一燕");
    }
}
//测试publicclassLoveTest {
publicstaticvoidmain(String[] args) {
LoveDemold=newLoveDemo();
//需要对接口的参数进行实现化,多态的方法Lovelove=newLoveImpl();
//参数需要的是一个接口ld.method(love);
    }
}


作为返回值:


publicinterfaceLove {
publicabstractvoidshow();
}
publicclassLoveDemo {
//接口作为返回值publicLovegetLove(){
// 接口不能直接返回,需要实例化,多态的方式// Love love = new LoveImpl();// return love;returnnewLoveImpl();
    }
}
//子类实现接口publicclassLoveImplimplementsLove {
@Overridepublicvoidshow() {
System.out.println("爱一燕");
    }
}
//测试publicclassLoveTest {
publicstaticvoidmain(String[] args) {
LoveDemold=newLoveDemo();
Lovelove=ld.getLove();
love.show();
    }
}
相关文章
|
1天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
24天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
45 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
11天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
69 13
|
16天前
|
算法 Java API
如何使用Java开发获得淘宝商品描述API接口?
本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
50 10
|
10天前
|
前端开发 Java 测试技术
java日常开发中如何写出优雅的好维护的代码
代码可读性太差,实际是给团队后续开发中埋坑,优化在平时,没有那个团队会说我专门给你一个月来优化之前的代码,所以在日常开发中就要多注意可读性问题,不要写出几天之后自己都看不懂的代码。
48 2
|
19天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
26天前
|
Java 数据处理 数据安全/隐私保护
Java处理数据接口方法
Java处理数据接口方法
26 1
|
7月前
|
存储 Java 编译器
【Java变量】 局部变量、成员变量(类变量,实例变量)、方法参数传递机制
【Java变量】 局部变量、成员变量(类变量,实例变量)、方法参数传递机制
101 0
【java筑基】——为什么java中方法的参数传递机制没有引用传递
【java筑基】——为什么java中方法的参数传递机制没有引用传递
|
Java
深入理解Java中方法的参数传递机制
Java中到底是值传递or引用传递?
4038 0