java 形式参数和返回值详谈
来源:互联网 发布:java带参的构造方法 编辑:程序博客网 时间:2024/06/07 20:07
一.
形式参数:
基本数据类型你要什么数据类型,在实际传参的时候就传什么数据类型;形式参数的改变对实际参数没有影响(String是引用类型和基本数据类型的效果一样String s ="abc")如果形式参数是引用类型: 具体类类:如果形式参数是一个具体类,那么需要创建该类对象 抽象类:如果形式参数是抽象类的情况,那么需要自定义一个抽象类的子类,来进行实例化(创建对象)!,创建对象的实质:抽象类多态! 接口:如果形式参数是接口情况,那么需要自定义一个接口的子实现类,然后通过接口多态的形式给接口进行实例化!
具体类:
// 具体类 class Demo{ //成员方法 public float sum(float a,float b){ return (a + b) ; }}//定义一个类class Student{ public void show(){ System.out.println("好好学习,天天向上..."); }}class StudentDemo{public void method(Student s){//形式参数是一个引用类型,那么需要创建该类对象Student s = new Student() ; s.show() ; }}/*class StudentDemo{ public Student method(){//如果方法的返回值是一个具体的类,那么需要该类对象 /*Student s = new Student() ; return s ;*/ return new Student() ; }}*///测试类public class StudentTest { public static void main(String[] args) { //两个实际参数 /*int a = 10 ; int b = 20 ;*/ float a = 10.0F; float b = 12.34F; //需求:需要调用sum来进行求和 Demo d = new Demo() ; float result = d.sum(a, b) ; System.out.println("result:"+result); System.out.println("------------------------"); //需求:需要调用StudentDemo这个类中method()方法 //需要创建StudentDemo这个类的对象// StudentDemo sd = new StudentDemo() ;// //创建Student类的对象// Student s = new Student() ;// sd.method(s) ;//当前s变量不可用// sd.method(s) ;//s就代表Student类的对象,把空间地址值作为参数传递 //返回值是具体的类: //创建StudentDemo类对象 StudentDemo sd = new StudentDemo() ; Student s = sd.method() ; s.show(); }}抽象类: //抽象类abstract class Person{ public abstract void show();}class Student extends Person{ @Override public void show() { System.out.println("重写了show方法"); }}//测试类public class Test { public static void main(String[] args) {//通过多态的方式,创建一个Person类型的变量,而这个对象实际是Student Person p = new Student();//调用method方法 method(p); } //定义一个方法method,用来接收一个Person类型对象,在方法中调用Person对象的show方法 public static void method(Person p){//抽象类作为参数//通过p变量调用show方法,这时实际调用的是Student对象中的show方法 p.show(); }}接口://接口interface Inter{ public abstract void love() ;}//定义一个类class TeacherDemo{ public void method(Inter i){//接口不能实例化: 如果一个方法的形式参数是一个接口,那么需要创建该接口的子实现类对象 i.love() ; }}//由于接口不能实例化,需要定义接口的子实现类class Student3 implements Inter{ @Override public void love() { System.out.println("学生爱学习,爱java..."); }}//测试类public class TeacherTest { public static void main(String[] args) { //需求:需要调用TeacherDemo类中的method()方法 //创建该类对象 TeacherDemo td = new TeacherDemo() ; //创建该接口对象:通过接口多态 Inter i = new Student3() ; //接口多态 /* Inter i = new Inter() { //匿名内部类 @Override public void love() { System.out.println("学生爱学习,爱java..."); } };*/ td.method(i) ; }}
二.返回值
具体类:直接返回该类对象(通常实际开发中使用的是匿名对象)抽象类:返回值如果是抽象类,需要的返回是该抽象类的子类对象接口:返回值是接口类型时,那么该方法需要返回一个接口实现类对象
具体类:
class Demo{ //成员方法 public float sum(float a,float b){ return (a + b) ; }}//定义一个类class Student{ public void show(){ System.out.println("好好学习,天天向上..."); }}//class StudentDemo{// public void method(Student s){//形式参数是一个引用类型,那么需要该类对象Student s = new Student() ;// s.show() ;// }//}class StudentDemo{ public Student method(){//如果方法的返回值是一个具体的类,那么需要该类对象 /*Student s = new Student() ; return s ;*/ return new Student() ; }}//测试类public class StudentTest { public static void main(String[] args) { //两个实际参数 /*int a = 10 ; int b = 20 ;*/ float a = 10.0F; float b = 12.34F; //需求:需要调用sum来进行求和 Demo d = new Demo() ; float result = d.sum(a, b) ; System.out.println("result:"+result); System.out.println("------------------------"); //需求:需要调用StudentDemo这个类中method()方法 //需要创建StudentDemo这个类的对象// StudentDemo sd = new StudentDemo() ;// //创建Student类的对象// Student s = new Student() ;//// sd.method(s) ;//当前s变量不可用// sd.method(s) ;//s就代表Student类的对象,把空间地址值作为参数传递 //返回值是具体的类: //创建StudentDemo类对象 StudentDemo sd = new StudentDemo() ; Student s = sd.method() ; s.show(); }}
抽象类:
abstract class Person2{ public abstract void show() ;}//定义PersonDemo2类class PersonDemo2{ public Person2 method(){ // 如果一个方法的返回值是一个抽象类,需要的返回是该抽象类的子类对象 /*Person2 p = new Teacher() ; return p ;*/ return new Teacher() ;//Person2 p = new Teacher() ; }}//抽象类的子类class Teacher extends Person2{ @Override public void show() { System.out.println("老师爱高圆圆,爱生活..."); }}//测试类public class PersonTest2 { public static void main(String[] args) { //需求:要调用PersonDemo2这个类中的method()方法 PersonDemo2 pd = new PersonDemo2() ; Person2 p = pd.method() ;//pd.method();return new Teacher() ----->Person2 p = new Teacher() ; p.show() ; System.out.println("----------------"); //链式编程 Person2 p2 = new PersonDemo2().method() ;//链式编程 p2.show() ; }}
接口:
//接口interface Smoke{ public abstract void smoking();}class Student implements Smoke{ @Override public void smoking() { System.out.println("课下吸口烟,赛过活神仙"); }}//测试类public class Test { public static void main(String[] args) {//调用method方法,获取返回的会吸烟的对象 Smoke s = method();//通过s变量调用smoking方法,这时实际调用的是Student对象中的smoking方法 s.smoking(); } //定义一个方法method,用来获取一个具备吸烟功能的对象,并在方法中完成吸烟者的创建 public static Smoke method(){ Smoke sm = new Student(); return sm; }}
阅读全文
0 0
- java 形式参数和返回值详谈
- 形式参数和返回值
- 形式参数和返回值
- Java学习之形式参数,返回值
- java基础之抽象类与接口的形式参数和返回值
- java基础(十)形式参数和返回值/链式编程/包/权限修饰符/内部类
- Java学习笔记第十天:1_形式参数和返回值的问题深入研究
- java程序员从笨鸟到菜鸟之(十)形式参数和返回值问题
- Java方法的本质、形式参数、返回值
- java学习笔记(十七)形式参数与返回值
- 【我的Java笔记】形式参数&返回值
- 形式参数和返回值的问题深入研究
- 形式参数和返回值的问题深入研究
- 形式参数和返回值的类型问题
- 面向对象9---形式参数和返回值问题
- 028、形式参数和返回值的问题深入研究
- 返回值和形式参数/匿名内部类
- 《java入门第一季》之面向对象(形式参数和返回值问题深入研究1)
- 【模板】表达式运算
- 第六章 Nginx服务器的Rewrite功能
- frameset框架
- CNN中感受野的计算
- 不确定性是量子计算的特点
- java 形式参数和返回值详谈
- 《java与模式》-5 抽象类
- 欢迎使用CSDN-markdown编辑器
- 数据库的三大范式
- 创建类和对象
- 从零学习JAVA多线程(五):线程池的简单介绍
- AngularJS路由与修改
- myeclipse 引入jar包 (包括 jdbc 驱动引用)
- git上传项目至GitHub