廖雪峰JAVA课程中涉及的类定义用省略号代替参数

public class Main {

public static void main(String[] args) {

// 给一个有普通收入、工资收入和享受国务院特殊津贴的小伙伴算税:

Income[] incomes = new Income[] {

new Income(3000),

new Salary(7500),

new StateCouncilSpecialAllowance(15000)

};

System.out.println(totalTax(incomes));

}

public static double totalTax(Income... incomes) {

double total = 0;

for (Income income: incomes) {

total = total + income.getTax();

}

return total;

}

}

class Income {

protected double income;

public Income(double income) {

this.income = income;

}

public double getTax() {

return income * 0.1; // 税率10%

}

}

class Salary extends Income {

public Salary(double income) {

super(income);

}

@Override

public double getTax() {

if (income <= 5000) {

return 0;

}

return (income - 5000) * 0.2;

}

}

class StateCouncilSpecialAllowance extends Income {

public StateCouncilSpecialAllowance(double income) {

super(income);

}

@Override

public double getTax() {

return 0;

}

}



在这段中有 public static double totalTax(Income... incomes) {

double total = 0;

for (Income income: incomes) {

total = total + income.getTax();

}

一段我不是十分理解,通过百度查阅。

我了解到...号是用来代替多个参数的办法

在前面的Income是定义了类

...表示多个参数

具体内容参考https://www.cnblogs.com/fnlingnzb-learner/p/5952716.html

https://bbs.csdn.net/topics/360212584?list=249042

可变参数如何对应

以上转自:
作者:pzy_24fa
链接:https://www.jianshu.com/p/07446e9ab592
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文地址:https://www.cnblogs.com/Koocowa/p/12229067.html

时间: 2024-10-21 23:56:04

廖雪峰JAVA课程中涉及的类定义用省略号代替参数的相关文章

Java基础----Java API中的常用类

System:描述系统的一些信息 preperties();获取系统信息 Properties prop =new System.getProperties(); 是hashtable 的子类.用map的方法去除该类集合中的元素.该集合中存储的都是字符串,没有泛型定义. String calue=(String)prop.get(obj); System.out.println(obj+":"+value); //如何在系统中自定义一些特有信息? System.setProperty(

Java项目中每一个类都可以有一个main方法

Java项目中每一个类都可以有一个main方法,但只有一个main方法会被执行,其他main方法可以对类进行单元测试. public class StaticTest { public static void main(String[] args) { Employee[] staff=new Employee[3]; staff[0]=new Employee("Tom",40000); staff[1]=new Employee("Dick",60000); s

Java Web中涉及的编解码

用户从浏览器发起一个HTTP请求,存在编码的地方是URL.Cookie.Paramiter.服务器端接收到HTTP请求后要解析HTTP协议,其中URL.Cookie和POST表单参数要解码,服务器端可能还需要读取硬盘数据(数据库.文件),这些数据都可能存在编码问题.当Servlet处理完所有请求的数据后,需要将这些数据再编码通过Socket发送到用户请求的浏览器里,再经过浏览器解码成为文本.这些过程用图表示如下: 1.URL的编解码 为了验证浏览器是怎么编码URL的,我们选择FireFox浏览器

Java 语言中的 StringBuffer类 硬伤ING

StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类. 所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入.删除等操作,使用StringBuffer要更加适合一些. 在StringBuffer类中存在很多和String类一样的方法,这些方法在功能上和String类中的功能是完全一样的. 但是有一个最显著的区别在于,

Java集合中的LinkedHashMap类

jdk1.8.0_144 本文阅读最好先了解HashMap底层,可前往<Java集合中的HashMap类>. LinkedHashMap由于它的插入有序特性,也是一种比较常用的Map集合.它继承了HashMap,很多方法都直接复用了父类HashMap的方法.本文将探讨LinkedHashMap的内部实现,以及它是如何保证插入元素是按插入顺序排序的. 在分析前可以先思考下,既然是按照插入顺序,并且以Linked-开头,就很有可能是链表实现.如果纯粹以链表实现,也不是不可以,LinkedHashM

廖雪峰Python学习笔记——使用元类

元类(MetaClasses) 元类提供了一个改变Python类行为的有效方式. 元类的定义是"一个类的类".任何实例是它自己的类都是元类. class demo(object): pass obj = demo() print "Class of obj is {0}".format(obj.__class__) print "Class of obj is {0}".format(demo.__class__) # Class of obj

只能从脚本中调用在类定义上有[ScriptService]属性的Web服务问题的解决方案

ajax调用webservice中的接口时, 会出现[只能从脚本中调用在类定义上有[ScriptService]属性的...]的异常. 这是因为, 在.net3.5中, 访问web服务, 要对web服务添加修饰: [System.Web.Script.Services.ScriptService]

C++:成员函数实现在类定义中与在类定义外的区别

//a.cpp class A{ public: int fun(int x){ return (x*x+1000); } }; void tt() { } //b.cpp class A{ public: int fun(int x); }; void tt(); int yy() { tt(); A a; return a.fun(3); } 将它们分别编译后再链接:显示链接错误,因为b.cpp(b.o)中找不到A::fun(int)的引用. 将以上的a.cpp改为如下所示:class A{

C++成员函数实现在类定义中与在类定义外的区别(Windows下直接使用g++)

在上篇文章<inline的另一用处>中,提到函数实现在类定义中与类定义外的区别. 现在先看个实验: a.cpp: [cpp] view plain copy #ifndef TEST_H #define TEST_H class A{ public: int fun(int x){ return (x*x+1000); } }; #endif void tt() { } b.cpp: [cpp] view plain copy class A{ public: int fun(int x);