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
|
4天前
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
|
1天前
|
数据采集 供应链 JavaScript
分享基于Java开发的Java毕业设计实战项目题目
这篇文章分享了67套基于Java开发的毕业设计实战项目题目,覆盖了互联网、企业管理、电子政务、Java基础项目、ERP系统、校园相关、医疗以及其他细分行业等多个领域,并推荐了使用IDEA、Vue和Springboot的技术栈。
|
1天前
|
分布式计算 Java API
Java 8带来了流处理与函数式编程等新特性,极大提升了开发效率
Java 8带来了流处理与函数式编程等新特性,极大提升了开发效率。流处理采用声明式编程模型,通过filter、map等操作简化数据集处理,提高代码可读性。Lambda表达式支持轻量级函数定义,配合Predicate、Function等接口,使函数式编程无缝融入Java。此外,Optional类及新日期时间API等增强功能,让开发者能更优雅地处理潜在错误,编写出更健壮的应用程序。
6 1
|
1天前
|
Java
java开启线程的四种方法
这篇文章介绍了Java中开启线程的四种方法,包括继承Thread类、实现Runnable接口、实现Callable接口和创建线程池,每种方法都提供了代码实现和测试结果。
java开启线程的四种方法
|
1天前
|
人工智能 网络协议 Java
23.12月中旬 上海寻序人工智能科技-上海嘉定-Java开发实习生-薪资150-230/d 面经
关于上海寻序人工智能科技有限公司Java开发实习生岗位的面试经验分享,涵盖了技术问题如对象存储MinIO、ArrayList扩容、Object类方法、hashCode和equals方法、处理哈希冲突、JVM垃圾回收器、GC算法、网络协议、邮件协议、HTTP请求方法、Linux和Docker命令、Dockerfile制作等。
3 0
|
1天前
|
Java
成功解决:java: 找不到符号 符号: 方法 getSort() 位置: 类型为com.atguigu.gulimall.product.entity.CategoryEntity的变量 menu1
这篇文章讨论了Java中遇到的一个常见错误:"java: 找不到符号 符号: 方法 getSort() 位置: 类型为com.atguigu.gulimall.product.entity.CategoryEntity的变量 menu1",即在尝试调用一个不存在的方法时出现的问题,并提供了相应的解决方法。
|
2天前
|
存储 Java
|
Java Android开发
深入解析Java重写 - 返回值、修饰符必须一致?
深入解析Java重写 - 返回值、修饰符必须一致?
396 0
|
6天前
|
安全 Java 数据库
一天十道Java面试题----第四天(线程池复用的原理------>spring事务的实现方式原理以及隔离级别)
这篇文章是关于Java面试题的笔记,涵盖了线程池复用原理、Spring框架基础、AOP和IOC概念、Bean生命周期和作用域、单例Bean的线程安全性、Spring中使用的设计模式、以及Spring事务的实现方式和隔离级别等知识点。