java参数传递之形参和返回值
1.类名作为形参
方法的形参是类名,其实需要的是该类的对象
//创建一个猫类
public class Cat {
          
   
    public void eat(){
          
   
        System.out.println("猫吃老鼠");
    }
} 
//创建一个操作类,其方法的参数是猫类
public class Catoperation {
          
   
    public void useCat(Cat c){
          
   
        c.eat();
    }
} 
//测试类,创建对象Catoperation(),Cat(),再调用方法
public class Test {
          
   
    public static void main(String[] args) {
          
   
        Catoperation co=new Catoperation();
        Cat c=new Cat();
        co.useCat(c);
    }
} 
2.类名作为返回值
//猫类保持不变 //下面创建操作类
public class Catoperation {
          
   
    public Cat getCat(){
          
   
        Cat c=new Cat
        return c;
    }
} 
//测试类,创建对象Catoperation(),返回Cat,然后调用Cat()方法
public class Test {
          
   
    public static void main(String[] args) {
          
   
        Catoperation co=new Catoperation();
        Cat c2=co.getCat();
        c2.eat();
} 
3.抽象类作为形参
方法的形参是抽象类名,实际需要该抽象类的子类对象 抽象类不能实例化,以多态的形式,创建它的子类对象进行传递继承重写实现,子类重写方法
//创建抽象类
public abstract class Animal {
          
   
public abstract void eat();
} 
//创建子类重写
public class Cat extends Animal {
          
   
@Override
public void eat() {
          
   
System.out.println("猫吃鱼");
}
} 
//创建操作类
public class AnimalOperator {
          
   
public void useAnimal(Animal a) {
          
    //Animal a = new Cat();
a.eat();
}
} 
//测试类
public class AnimalDemo {
          
   
public static void main(String[] args) {
          
   
AnimalOperator ao = new AnimalOperator();
Animal a = new Cat();
ao.useAnimal(a);
Animal a2 = ao.getAnimal(); //new Cat()
a2.eat();
}
} 
3.抽象类作为返回值
//抽象类,子类不变 //操作类
class AnimalOperator {
          
   
public Animal getAnimal() {
          
   
Animal a = new Cat();
return a;
   }
} 
//测试类
public class AnimalDemo {
          
   
public static void main(String[] args) {
          
   
Animal a2 = ao.getAnimal(); //new Cat()
a2.eat();
    }
} 
4.接口名作为形参和返回值
方法的形参/返回值 是接口,实际上是该接口的实现类方法
//接口
interface Jumpping {
          
   
void jump();
      } 
//操作类
class JumppingOperator {
          
   
public void useJumpping(Jumpping j) {
          
    //Jumpping j = new Cat();
j.jump();
   }
} 
//实现类方法
class Cat implements Jumpping {
          
   
@Override
public void jump() {
          
   
System.out.println("猫可以跳高了");
     }
} 
//测试类
public class JumppingDemo {
          
   
public static void main(String[] args) {
          
   
JumppingOperator jo = new JumppingOperator();
Jumpping j = new Cat();
jo.useJumpping(j);
     }
}
				       
			          
