形式参数问题
数据类型:
基本类型:byte,short,int,long,float,double,char,boolean
引用类型:类,接口,数组

形式参数:
基本类型:要的是该基本类型的数据值。
引用类型:要的是该引用类型的对象。
A:数组 要的是该数据类型数组的对象。(地址值)

public static void main(String[] args) {//在这里我们调用我们刚刚创建的数组遍历的方法//A:数组 要的是该数据类型数组的对象。(地址值)//创建一个数组int[] arr = {1,2,3};printArr(arr);}//A:数组 要的是该数据类型数组的对象。(地址值)//写一个方法是一个数组遍历的方法public static void printArr(int[] arr){for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+"  ");}}

B:类 要的是该类或者其子类的对象。(地址值)

class Person{public void show(){System.out.println("person的show方法");}
}class Man extends Person{public void function(){System.out.println("Man的function方法");}
}class PersonDemo{//提供一个方法,这个方法的参数是Personpublic void method(Person p){//Person p = new Person();//当传递子类对象的时候,Person p = new Man();,这个是以多态的方式进行传参p.show();//p.show();
    }
}public class ArgsDemo2 {public static void main(String[] args) {//想要调用PersonDemo这个类中的method方法PersonDemo pd = new PersonDemo();//Person p = new Person();Man m = new Man();pd.method(m);}}

C:抽象类 要的是该抽象类的子类对象。(地址值)

abstract class Animal{public abstract void eat();
}//创建一个Animal类的子类
class Dog extends Animal{public void eat() {System.out.println("狗爱啃骨头");}}class AnimalDemo{public void method(Animal a){//Aanimal a = new Dog();多态的方式进行传参//注意:如果一个形式参数类型是一个抽象类的话,本质上要的是这个抽象类的子类对象
        a.eat();}
}public class ArgsDemo3 {public static void main(String[] args) {//需要调用AnilaDemo这个类中的method这个方法AnimalDemo ad = new AnimalDemo();Animal a = new Dog();ad.method(a);}}

D:接口 要的是该接口的实现类对象。(地址值)

interface Person2{public abstract void eat();
}class Women implements Person2{public void eat() {System.out.println("民以食为天");}
}class Person2Demo{public void method(Person2 p){//Perosn2 p = new Women();接口多态的方式进行传参//注意:如果一个方法的形式参数是一个接口类型的话,本质上需要的是这个接口的实现类对象,其实就是这个对象的地址值
        p.eat();}
}public class ArgsDemo4 {public static void main(String[] args) {//调用Peros2Demo中的method方法Person2Demo pd = new Person2Demo();Person2 p = new Women();pd.method(p);}}

返回值问题
返回值:
基本类型:byte,short,int,long,float,double,char,boolean
引用类型:类,接口,数组

返回值之基本类型:
基本类型:返回的是该基本类型的数据值。
案例:创建一个加法的方法,返回值就是基本类型的具体的指

返回值之引用类型:
返回值是类名:其实返回的是该类对象或者其子类对象。(地址值)如下

 1 class Person{
 2     public void show(){
 3         System.out.println("perosn的show方法");
 4     }
 5 }
 6
 7 class Student extends Person{
 8     public void function(){
 9         System.out.println("Student的function方法");
10     }
11 }
12
13 class PersonDemo{
14     //有一个方法,方法的返回值就是一个Person类型
15     public Person getPerson(){//Person p = new Person();
16         //返回值类型如果是一个类名:本质上需要的是这个类或者这个类的子类对象
17         //Person p = new Person();
18         Student s = new Student();//Person p = new Student();
19         return s;
20     }
21
22 }
23
24 public class ReturnDemo2 {
25     public static void main(String[] args) {
26         //调用PersonDemo这个类中的getPerson()方法
27         /*PersonDemo pd = new PersonDemo();
28         Person p = pd.getPerson();//Person p = new Person()
29         p.show();*/
30
31         PersonDemo pd = new PersonDemo();
32         Person p = pd.getPerson();//Person p = new Studnet();,多态
33         p.show();
34         //p.function();
35         Student s = (Student)p;
36         s.function();
37     }

返回值是抽象类名:要的是该抽象类的子类对象。(地址值)如下

 1 abstract class Animal{
 2     public abstract void eat();
 3 }
 4
 5 class Dog extends Animal{
 6     public void eat() {
 7         System.out.println("狗就是爱吃骨头");
 8     }
 9 }
10
11 class AnimalDemo{
12     //提供以一个方法,这个方法的返回值类型就是一个抽象类名
13     public Animal getAnimal(){//Animal a = new Dog();
14         //注意:返回值类型是一个抽象类名的话:本质上需要的是这个抽象类的子类对象
15         //Animal a = new Dog();
16         Dog a = new Dog();
17         return a;
18     }
19
20 }
21
22
23 public class ReturnDemo3 {
24     public static void main(String[] args) {
25         //在这里调用ANimalDemo中的getAnimal的方法
26         AnimalDemo ad = new AnimalDemo();
27         Animal a = ad.getAnimal();//Animal a = new Dog();
28         a.eat();
29     }
30
31 }

返回值是接口名:要的是该接口的实现类对象。(地址值)如下

interface Person2{public abstract void eat();
}//创建一个类实现上面的接口
class Man implements Person2{@Overridepublic void eat() {System.out.println("我爱吃泡馍");}
}class Person2Demo{//提供一个方法,该方法的返回值是一个接口类型//注意:如果一个方法的返回值是接口类型的话,本质上需要的是该接口的实现类对象public Person2 getPerson2(){//Person2 p = new Man();Person2 p = new Man();return p;}
}public class ReturnDemo4 {public static void main(String[] args) {//调用Person2Demo中的getPersaon2()Person2Demo pd = new Person2Demo();Person2 p = pd.getPerson2();//Person2 p = new Man();,接口多态
        p.eat();}}

转载于:https://www.cnblogs.com/shaofanglazi/p/6732246.html

Java:形式参数问题和返回值问题相关推荐

  1. java方法带参数返回值_Java方法中的参数太多,第6部分:方法返回

    java方法带参数返回值 在当前的系列文章中,我正在致力于减少调用Java方法和构造函数所需的参数数量,到目前为止,我一直专注于直接影响参数本身的方法( 自定义类型 , 参数对象 , 构建器模式 , ...

  2. java 参数返回_Java基础---Java中带参数返回值方法的使用(四十)

    Java 中带参带返回值方法的使用 如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法. 例如:下面的代码,定义了一个 show 方法,带有一个参数 name ,方法执行后返回一个 Stri ...

  3. Java中使用有返回值的线程

    在创建多线程程序的时候,我们常实现Runnable接口,Runnable没有返回值,要想获得返回值,Java5提供了一个新的接口Callable,可以获取线程中的返回值,但是获取线程的返回值的时候,需 ...

  4. java字符类型的返回值,Java字符类isWhitespace()方法及示例

    Character 类isWhitespace()法isWhitespace()方法在java.lang包中可用. isWhitespace()方法用于检查给定的char值是否为空格,但是它包含空格中 ...

  5. Java基础---Java中带参数返回值方法的使用(四十)

    Java 中带参带返回值方法的使用 如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法. 例如:下面的代码,定义了一个 show 方法,带有一个参数 name ,方法执行后返回一个 Stri ...

  6. java的main函数返回值_Java中的main方法

    首先需要说明的是: 1.main函数(主函数)是可以调用的,这种调用是没有意义的: 2. main函数只能出现在公共类中也就是public class中: 但我不明白的是:在eclipse中默认的in ...

  7. java 异步得到函数返回值_使用JavaScript进行异步编程

    毫无疑问,虽然JavaScript的历史比较悠久,但这并不妨碍它成为当今最受欢迎的编程语言之一.对刚接触该语言的人来说,JavaScript的异步特性可能会有一些挑战.在本文中,我们将了解和使用Pro ...

  8. Java基础篇之返回值

    执行volume()方法确实将计算盒子体积的值返回到Box类,但这并不是最好的方法.例如,你的程序的其他部分如何知道一个盒子的体积,而不显示它的值?一个更好地实现volume()的方法是将它计算的盒子 ...

  9. Java 基础——赋值语句的返回值

    赋值表达式的"返回值"就是左侧的值,即右侧的结果,. 示例1: int a = 0; System.out.println(a = 9); // 输出结果是9 示例2: int a ...

最新文章

  1. 使用php需要网络吗,使用php获取网络文件
  2. 音频处理六:(音频的反FFT)
  3. 网络安全 / crt、pem、pfx、cer、key 作用及区别
  4. .NET对象克隆的深究(转)
  5. 均匀白噪声的定义及特点_职业卫生噪声布点与检测实务
  6. C/C++ 存储类型 作用域 连接类型
  7. uhd630黑苹hdmi_【EFI】联想 ThinkCentre M920t-N000 i5-9500 UHD630 ALC662 10.14.6 HDMI 黑苹果Hackintosh 引导下载...
  8. java代码做一个电子表
  9. 5g工业路由器下自来水管网无线监控系统
  10. 【MM32F5270开发板试用】+RFID门禁
  11. 2013年4月小游戏行业网站综合影响力排名
  12. 《胡雪岩》影评10篇
  13. 微信小程序订阅消息报错 requestSubscribeMessage:fail can only be invoked by user TAP gesture.
  14. 数据库mysql+401.1_MySQL 数据库
  15. python爬虫之英汉互译(爬虫+pyqt5)
  16. ORACLE DUL 工具使用方法介绍
  17. c语言猜单词游戏实验报告,猜单词游戏c语言源程序.doc
  18. 电路(第三章、线性直流电路一般分析方法)
  19. Knald - 1.2.1 烘培贴图,利用贴图转换成其他贴图   笔记
  20. 第100章 SQL函数 NULLIF

热门文章

  1. atlas mysql 数据库同步_atlas+mysql实现主从复制和读写分离(二)
  2. 【HTTP协议】HTTP状态码列表大全
  3. 洛谷 P1034 矩形覆盖
  4. java SSM 框架 多数据源 代码生成器 websocket即时通讯 shiro redis 后台框架源码
  5. ZOJ2314 Reactor Cooling(无源汇流量有上下界网络的可行流)
  6. HBase 性能优化笔记
  7. 转载:身体器官工作表一览,睡觉别太晚了
  8. 非GUI模式运行Jmeter脚本
  9. 一文看懂https如何保证数据传输的安全性的
  10. Java 到底是值传递还是引用传递