参数传递

参数传递

类名

类名作为方法参数和返回值
类名作为方法参数: 调用方法时,传递的对象
类名作为方法返回值: 返回的是对象
本质: 类名作为方法参数和返回值,传递的是对象的地址值

如何使用:

1.创建该类对象

2.定义一个方法,参数列表为 类名 ,并在方法中完成对象的创建

3.调用该方法

范例;

//创建Cat 类
public class Cat {
    private String name;
​
    public void eat() {
        System.out.println(name+"...吃鱼...");
    }
​
    public Cat() {
    }
​
    public Cat(String name) {
        this.name = name;
    }
​
    public String getName() {
        return name;
    }
​
    public void setName(String name) {
        this.name = name;
    }
}
//创建测试类
public static void main(String[] args) {
       // 1.创建Cat类对象
        Cat c = new Cat("波斯"); //假设对象地址值为:0x111
​
        //3.调用方法  useCat
        useCat(c);      //useCat(0x111);
        
        
        //定义一个方法useCat,用于接收Cat对象
        //在方法中调用Cat对象方法的eat()方法
        //方法被调用时:Cat c =0x111 =new Cat("波斯")
        public static void useCat(Cat c){
        //调用Cat对象的eat方法
         c.eat();
​

抽象类

抽象类作为形参和返回值
​
抽象类作为形参: 调用方法时必然传递抽象类的子类对象
抽象类作为返回值: 调用方法时必然返回的是抽象类的子类对象
​
抽象类作为形参和返回值,本质上传递的是地址值

如何使用:

1.多态创建Animal的子类对象

2.定义一个方法,用来接收一个父类对象,并调用父类对象方法

3.调用方法

创建父类
public abstract class Animal {
    private String name;
​
    //抽象方法
    public abstract void eat();
​
    public Animal(String name) {
        this.name = name;
    }
​
    public Animal() {
    }
​
    public String getName() {
        return name;
    }
​
    public void setName(String name) {
        this.name = name;
    }
}
​
创建子类
public class Dog extends Animal {
    public Dog(String name) {
        super(name);
    }
​
    public Dog() {
    }
​
    @Override
    public void eat() {
        System.out.println(getName()+"....吃骨头...");
    }
}
​
创建测试类
public static void main(String[] args) {
        //多态创建Animal的子类对象
        Animal dog = new Dog("二哈");//假设地址值:0x111
        
       //调用方法,获取Animal的对象
        //调用结束后: Animal a = 0x222 = new Dog("黑豹"); 多态
        Animal a = getAnimal();
        //调用成员方法
        a.eat();  
        
        
        //定义一个方法useAnimal,用来接收一个Animal对象,在方法中调用Animal对象的eat方法
    //方法被调用时: Animal a = 0x111 = new Dog("二哈");  多态
    public static void useAnimal(Animal a) {
        //在方法中调用Animal对象的eat方法
        a.eat();
    

接口

接口名作为形参和返回值
接口名作为形参: 调用方法时,传递的是接口的实现类对象
接口名作为返回值: 调用方法时,返回的是接口的实现类对象
​
接口名作为形参和返回值: 本质传递的是地址值

如何使用:

1.多态创建子类对象

2.定义方法,用于接收(接口)类型对象,

在方法中调用接口对象的方法

注:方法参数为 接口

3.调用方法传递方法中的参数

范例:

//创建一个接口
/*
    定义接口
 */
public interface TiaoGao {
    public abstract void jump();
}
​
//测试类
public static void main(String[] args) {
        //多态的形式创建对象
        TiaoGao tg = new Pig();//假设: 地址值0x111
        //调用方法,传递接口的实现类对象
        //方法被调用时:useTiaoGao(0x111);
        useTiaoGao(tg);
        System.out.println("------------");
​
        //调用方法,获取对象
        //方法被调用后: TiaoGao p = 0x222 = new Pig(); 多态
        TiaoGao p = getTiaoGao();
        p.jump();
    }
    //定义一个方法useTiaoGao,用来接收一个TiaoGao类型对象,
    // 在方法中调用TiaoGao类型对象的jump方法
    //方法被调用时:TiaoGao tg = 0x111 = new Pig(); 多态
    public static void useTiaoGao(TiaoGao tg) {
        tg.jump();
    }
​
    //定义一个方法getTiaoGao,用来获取一个具备跳高功能的对象,并在方法中完成TiaoGao对象的创建
    public static TiaoGao getTiaoGao() {
        Pig pg = new Pig();//假设地址值:0x222
        //return 0x222
        return pg;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值