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();
    }
}
相关文章
|
9天前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
22 4
|
10天前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
33 4
|
10天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
50 4
|
15天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
29 2
|
16天前
|
SQL Java 程序员
倍增 Java 程序员的开发效率
应用计算困境:Java 作为主流开发语言,在数据处理方面存在复杂度高的问题,而 SQL 虽然简洁但受限于数据库架构。SPL(Structured Process Language)是一种纯 Java 开发的数据处理语言,结合了 Java 的架构灵活性和 SQL 的简洁性。SPL 提供简洁的语法、完善的计算能力、高效的 IDE、大数据支持、与 Java 应用无缝集成以及开放性和热切换特性,能够大幅提升开发效率和性能。
|
10天前
|
安全 Java 测试技术
Java开发必读,谈谈对Spring IOC与AOP的理解
Spring的IOC和AOP机制通过依赖注入和横切关注点的分离,大大提高了代码的模块化和可维护性。IOC使得对象的创建和管理变得灵活可控,降低了对象之间的耦合度;AOP则通过动态代理机制实现了横切关注点的集中管理,减少了重复代码。理解和掌握这两个核心概念,是高效使用Spring框架的关键。希望本文对你深入理解Spring的IOC和AOP有所帮助。
22 0
|
10天前
|
Java API Android开发
kotlin和java开发优缺点
kotlin和java开发优缺点
25 0
WK
|
16天前
|
开发框架 移动开发 Java
C++和Java哪个更适合开发移动应用
本文对比了C++和Java在移动应用开发中的优劣,从市场需求、学习难度、开发效率、跨平台性和应用领域等方面进行了详细分析。Java在Android开发中占据优势,而C++则适合对性能要求较高的场景。选择应根据具体需求和个人偏好综合考虑。
WK
31 0
|
6月前
|
存储 Java 编译器
【Java变量】 局部变量、成员变量(类变量,实例变量)、方法参数传递机制
【Java变量】 局部变量、成员变量(类变量,实例变量)、方法参数传递机制
87 0
【java筑基】——为什么java中方法的参数传递机制没有引用传递
【java筑基】——为什么java中方法的参数传递机制没有引用传递