java代码整洁之道
2024-10-20 11:36:12
package Day01;
import org.junit.Test;
import java.text.NumberFormat;
import java.util.Scanner;
public class TestConntion {
/**
* 三元运算符的规则 :
* 语法:条件表达式?表达式1:表达式2;
*
*/
@Test
public void test1(){
int i = 80;
String s = String.valueOf(i<100?90:100);
String s1 = String.valueOf(i<100?90:100.0);
System.out.println("两者是否相等:"+s.equals(s1));
}
/**
* 1.重写(Override)
*
* 从字面上看,重写就是 重新写一遍的意思。其实就是在子类中把父类本身有的方法重新写一遍。子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名,参数列表,返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情况下, 对方法体进行修改或重写,这就是重写。但要注意子类函数的访问修饰权限不能少于父类的。
*
*
*
* 2.重载(Overload)
*
* 在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同甚至是参数顺序不同)则视为重载。同时,重载对返回类型没有要求,可以相同也可以不同,但不能通过返回类型是否相同来判断重载。
*
*
* 类在下面放着
*/
@Test
public void test2() {
}
}
class Client {
//简单折扣计算
public void calPrice(int price,int discount){
float knockdownPrice =price * discount / 100.0F;
System.out.println("简单折扣后的价格是:"+formateCurrency(knockdownPrice));
}
//复杂多折扣计算
public void calPrice(int price,int... discounts){
float knockdownPrice = price;
for(int discount:discounts){
knockdownPrice = knockdownPrice * discount / 100;
}
System.out.println("复杂折扣后的价格是:" +formateCurrency(knockdownPrice));
}
/**
* calPrice(int price,int discount)和方法 alPrice(int price,int... discounts) 构成重载
*
*
* 在项目和系统的开发中,为了提高方法的灵活度和可复用性,我们经常要传递不确定数量的参数到方法中,在Java 5之前常用的设计技巧就是把形参定义成Collection类型或其子类类型,
* 或者是数组类型,这种方法的缺点就是需要对空参数进行判断和筛选,比如实参为null值和长度为0的Collection或数组。而 Java 5引入变长参数(varags)就是为了更好地提高方法的复用性,
* 让方法的调用者可以“随心所欲”地传递实参数量,当然变长参数也是要遵循一定规则的,比如变长参数必须是方法中的最后一个参数;一个方法不能定义多个变长参数等,这些基本规则需要牢记,
* 但是即使记住了这些规则,仍然有可能出现错误,我们来看如下代码:
*
* 方法调用了方法1 但是在实际的开发中会导致出现异议 所有建议不要为长参数的方法进行重载!!
*
* @param price
* @return
*/
//格式化成本的货币形式
private String formateCurrency(float price){
return NumberFormat.getCurrencyInstance().format(price/100);
}
public static void main(String[] args) {
Client client = new Client();
//499元的货物,打75折
client.calPrice(49900, 75);
}
}
最新文章
- LINUX下C-C++类软件的诊断
- css小知识之伪元素
- Quartz Java resuming a job excecutes it many times--转
- 图解I/O的五种模型
- AndroidStudio 0.2.x 引入多模块Eclipse项目
- zookeeer 集群和伪集群模式
- Codeforces Round #246 (Div. 2) —B. Football Kit
- TextView 使用自定义的字体和亮点
- 迷宫问题-POJ 3984
- 树莓派3b+ Ubuntu 16.04 MATA系统 ssh远程登陆后修改主机名、用户密码和用户名
- 【学习总结】Git学习-参考廖雪峰老师教程-期末总结
- 剑指offer(1)
- 使用Azure的GPU系列虚拟机Ubuntu-16.0.4安装GPU驱动并使用Tensorflow-GPU的过程。
- SPFILEOPENBANKDB.ORA 手动编辑产生问题
- Linux dd命令制作U盘启动盘
- [转]mybatis if test非空判断数字0为什么是false
- Layout2:StackPanel(补交作业)
- mapper.xml中的<;sql>;标签
- tomcat8特性
- jquery选择器 之 获取父级元素,子元素,同级元素