m0_65694922 2023-05-11 20:00 采纳率: 100%
浏览 12
已结题

简单工程方法创建测试类中变量创建

在学习简单工程方法,遇到了一点疑问,创建测试类中的第4行代码是什么变量的创建格式,为什么是 “类型 变量名=方法名.方法名()”,等待指点


double stu1 = studentCalculator.studentCalculator(15);

想请教一下这是哪一块的内容,感谢


public class Student implements MovieTicket {
    public double studentCalculator(double price){
        return  price * 0.8;
    }
    public double vipCalculator(double price){
        throw new UnsupportedOperationException();
    }
    public double childCalculator(double price){
        throw new UnsupportedOperationException();
    }
    public double adultCalculator(double price){
        throw new UnsupportedOperationException();
    }
}

public class TicketFactory {
    public static MovieTicket createTicket(String operator){
        switch(operator){
            case "student":
                return new Student();
            case "vip":
                return new Vip();
            case "child":
                return new Child();
            case "adult":
                return new Adult();
            default:
                throw new IllegalArgumentException("Invalid operator: " +operator);

        }
    }
}


public class Test {
    public static void main(String[] args){
        MovieTicket studentCalculator = TicketFactory.createTicket("student");
        double stu1 = studentCalculator.studentCalculator(15);
        System.out.println("\n学生票价格:"+stu1);
    }
}
  • 写回答

2条回答 默认 最新

  • Richard.sysout 2023-05-11 20:14
    关注
    MovieTicket studentCalculator = TicketFactory.createTicket("student");
    double stu1 = studentCalculator.studentCalculator(15);
    

    这两句,第一句中studentCalculator 是类实例化的对象
    第二句中studentCalculator.studentCalculator(15),是使用类实例化对象调用类的的方法

    之所以你会理解为方法调用方法,是因为实例化的变量名和方法名写成一样的了
    你可以换个变量名称去接收实例化的对象,比如:

    MovieTicket calculator = TicketFactory.createTicket("student");
    double stu1 = calculator.studentCalculator(15);
    

    这样就很容易理解了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月19日
  • 已采纳回答 5月11日
  • 创建了问题 5月11日

悬赏问题

  • ¥15 fluent设置了自动保存后,会有几个时间点不保存
  • ¥20 激光照射到四象线探测器,通过液晶屏显示X、Y值
  • ¥15 这怎么做,怎么在我的思路下改下我这写的不对
  • ¥50 数据库开发问题求解答
  • ¥15 安装anaconda时报错
  • ¥20 如何用Python处理单元格内连续出现的重复词语?
  • ¥15 小程序有个导出到插件方式,我是在分包下引入的插件,这个export的路径对吗,我看官方文档上写的是相对路径
  • ¥20 希望有人能帮我完成这个设计( *ˊᵕˋ)
  • ¥100 将Intptr传入SetHdevmode()将Intptr传入后转换为DEVMODE的值与外部代码不一致
  • ¥50 基于ERA5数据计算VPD