zoukankan      html  css  js  c++  java
  • 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{
        //提供一个方法,这个方法的参数是Person
        public 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{
        @Override
        public 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();
        }
    
    }
  • 相关阅读:
    UBUntu 软件 源配置方法
    oracle 11G direct path read 非常美也非常伤人
    iOS多线程编程(四)------ GCD(Grand Central Dispatch)
    Yii之路(第八)
    UVA
    我喜欢的网易云音乐
    LeetCode_DP_Word Break II
    管理Java垃圾回收的五个建议
    const成员函数总结
    算法之经典排序算法小归纳
  • 原文地址:https://www.cnblogs.com/shaofanglazi/p/6732246.html
Copyright © 2011-2022 走看看