Java:形式参数问题和返回值问题
形式参数问题
数据类型:
基本类型: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:形式参数问题和返回值问题相关推荐
- java方法带参数返回值_Java方法中的参数太多,第6部分:方法返回
java方法带参数返回值 在当前的系列文章中,我正在致力于减少调用Java方法和构造函数所需的参数数量,到目前为止,我一直专注于直接影响参数本身的方法( 自定义类型 , 参数对象 , 构建器模式 , ...
- java 参数返回_Java基础---Java中带参数返回值方法的使用(四十)
Java 中带参带返回值方法的使用 如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法. 例如:下面的代码,定义了一个 show 方法,带有一个参数 name ,方法执行后返回一个 Stri ...
- Java中使用有返回值的线程
在创建多线程程序的时候,我们常实现Runnable接口,Runnable没有返回值,要想获得返回值,Java5提供了一个新的接口Callable,可以获取线程中的返回值,但是获取线程的返回值的时候,需 ...
- java字符类型的返回值,Java字符类isWhitespace()方法及示例
Character 类isWhitespace()法isWhitespace()方法在java.lang包中可用. isWhitespace()方法用于检查给定的char值是否为空格,但是它包含空格中 ...
- Java基础---Java中带参数返回值方法的使用(四十)
Java 中带参带返回值方法的使用 如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法. 例如:下面的代码,定义了一个 show 方法,带有一个参数 name ,方法执行后返回一个 Stri ...
- java的main函数返回值_Java中的main方法
首先需要说明的是: 1.main函数(主函数)是可以调用的,这种调用是没有意义的: 2. main函数只能出现在公共类中也就是public class中: 但我不明白的是:在eclipse中默认的in ...
- java 异步得到函数返回值_使用JavaScript进行异步编程
毫无疑问,虽然JavaScript的历史比较悠久,但这并不妨碍它成为当今最受欢迎的编程语言之一.对刚接触该语言的人来说,JavaScript的异步特性可能会有一些挑战.在本文中,我们将了解和使用Pro ...
- Java基础篇之返回值
执行volume()方法确实将计算盒子体积的值返回到Box类,但这并不是最好的方法.例如,你的程序的其他部分如何知道一个盒子的体积,而不显示它的值?一个更好地实现volume()的方法是将它计算的盒子 ...
- Java 基础——赋值语句的返回值
赋值表达式的"返回值"就是左侧的值,即右侧的结果,. 示例1: int a = 0; System.out.println(a = 9); // 输出结果是9 示例2: int a ...
最新文章
- 使用php需要网络吗,使用php获取网络文件
- 音频处理六:(音频的反FFT)
- 网络安全 / crt、pem、pfx、cer、key 作用及区别
- .NET对象克隆的深究(转)
- 均匀白噪声的定义及特点_职业卫生噪声布点与检测实务
- C/C++ 存储类型 作用域 连接类型
- uhd630黑苹hdmi_【EFI】联想 ThinkCentre M920t-N000 i5-9500 UHD630 ALC662 10.14.6 HDMI 黑苹果Hackintosh 引导下载...
- java代码做一个电子表
- 5g工业路由器下自来水管网无线监控系统
- 【MM32F5270开发板试用】+RFID门禁
- 2013年4月小游戏行业网站综合影响力排名
- 《胡雪岩》影评10篇
- 微信小程序订阅消息报错 requestSubscribeMessage:fail can only be invoked by user TAP gesture.
- 数据库mysql+401.1_MySQL 数据库
- python爬虫之英汉互译(爬虫+pyqt5)
- ORACLE DUL 工具使用方法介绍
- c语言猜单词游戏实验报告,猜单词游戏c语言源程序.doc
- 电路(第三章、线性直流电路一般分析方法)
- Knald - 1.2.1 烘培贴图,利用贴图转换成其他贴图 笔记
- 第100章 SQL函数 NULLIF