Java08------方法参数类型以及返回值类型问题研究

方法参数类型

类名作为形式参数

当你以后看到一个方法的形参要一个 类 类型,你就传递一个该类的对象。

自定义类如下:

class Student{
   
    int num=20;
    public void show(Student student,int num){
   
        //形参为类 类型,传递该类的对象
        student.num=num;
        //修改调用这个show方法的对象的属性值
        this.num=90;
    }
        }

测试类如下:

public class demo1 {
   
    public static void main(String[] args) {
   
        Student student=new Student();
        set(student,60);
        //传入一个新的student匿名对象,并修改这个匿名对象的属性值,最后修改调用这个show方法的对象的属性值
        student.show(new Student(),80);
        System.out.println(student.num);//90
    }
    //形参为类 类型,传递该类的对象
    public static void set(Student student ,int num) {
   
        //修改传入对象的属性值
        student.num=num;
    }
}

抽象类名作为形式参数

当你以后看到一个方法的形参要一个抽象类 类型,你就传递一个该抽象类的子类对象

自定义类如下:

abstract class Animal{
   
    int num=50;
    public abstract void show(int num);
}

class Cat extends Animal{
   
    int num=60;
    @Override
    public void show(int num) {
   
        this.num=num;
    }
}

测试类如下:

public class demo1 {
   
    public static void main(String[] args) {
   
        Cat cat=new Cat();
        set(cat,100);
        System.out.println(cat.num);//60
        cat.show(500);
        System.out.println(cat.num);//500
    }
    public static void set(Animal animal,int num) {
   
        //Animal animal=cat 多态访问成员变量依照父类的值
        animal.num=num;
    }
}

接口名作为形式参数

当你以后看到一个方法的形参要一个接口 类型 ,你就传递一个该接口的子类对象。

自定义接口如下:

interface Myinterface{
   
    int num=2000;
    void show(int num);
}
class Myclass implements Myinterface{
   
int num=2;
    @Override
    public void show(int num) {
   
        //修改调用此方法的对象的num值
        this.num=num;
    }
}

测试类如下:

public class demo1 {
   
    public static void main(String[] args) {
   
        Myclass myclass=new Myclass();
        set(myclass,400);
        System.out.println(myclass.num);//400
        System.out.println(Myinterface.num);//接口访问静态常量 2000
    }

    public static void set(Myinterface myinterface,int num) {
   
        //父接口实际运行的方法以子类重写的抽象方法为准 myInterface.show()是运行子类Myclass的show方法
        myinterface.show(num);
    }
}

返回值类型

类名作为返回值类型

当你以后看到一个方法的返回值类型,是一个类 类型,你就返回一个该类的对象

自定义类如下:

class Student{
   
    int num=30;
    //返回值类型为类类型,定义一个返回自身对象的方法
    public Student getStu(){
   
        return this;
    }
}

测试类如下:

public class 返回值为类类型 {
   
  
    public static void main(String[] args) {
   
        Student stu=getStudent();
        Student stu1=stu.getStu();
        System.out.println(stu==stu1);//True
        System.out.println(stu.num==stu1.num);//True
    }
   
    public static Student getStudent(){
   
        Student student = new Student();
        student.num=20;
        return new Student();
    }
}

抽象类名作为返回值类型

自定义类如下:

abstract class Animal{
   
    int num=20;
}
class Dog extends Animal{
   
    int num=100;
}

测试类如下:

public class Demo1 {
   
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值