5.0
使用 Java 语言编'程序实现以下功能要求。
功能要求:
1、用户从键盘输入商品的单价和重量(输入可以是浮点型数据);
2、计算用户应付的总价并输出结果。
输入输出要求:
1、程序运行时,第一行输入商品单价,第二行输入商品重量;
2、第三行输出计算的总价结果(结果输出后有换行);
3、输入和输出之前不要有任何的字符串提示信息。
说句不好听的:如果这都不会或者不想着自己去解决,就不要学编程了吧
import java.util.Scanner;
public class CalculateTotalPrice {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 读取商品单价
double price = scanner.nextDouble();
// 读取商品重量
double weight = scanner.nextDouble();
// 计算总价
double totalPrice = price * weight;
// 输出总价结果
System.out.println(totalPrice);
}
}
以上是使用Java语言编写的程序,实现了用户从键盘输入商品的单价和重量,并计算用户应付的总价并输出结果的功能。程序运行时,首先会要求用户输入商品单价,然后输入商品重量,最后输出计算得到的总价结果。输入和输出之间没有任何的字符串提示信息。
注意:在运行程序时,请确保输入的商品单价和重量都是合法的浮点型数据,否则可能会导致程序抛出异常。
在定义泛型类别时,默认在实例化泛型类的时候可以使用任何类型,但是如果想要限制使用泛型类型时,只能用某个特定类型或者是其子类型才能实例化该类型时,可以在定义类型时,使用extends关键字指定这个类型必须是继承某个类,或者实现某个接口。
当没有指定泛型继承的类型或接口时,默认使用extends Object,所以默认情况下任何类型都可以做为参数传入
当没有指定泛型继承的类型或接口时,默认使用extends Object,所以默认情况下任何类型都可以做为参数传入:
这就是我们之前的做法
系统在编译它的时候是默认加了一个extends Object
你写不写它的效果是一样的,也就是对T他没有任何的限制,所以在使用它的时候任何类型都可以作为参数传入
那如果某种场景我们必须对这个T做一些监管,限制使用泛型类型,
可以使用extends关键字指定这个类型必须是继承某个类,或者实现某个接口。
如果我变成了 abstract class Cls1<T extends String>
如果你这样写,你没办法给这面赋一个整型数的
这个时候只能把
Cls2<Integer,String,String> cls = new Cls2<Integer,String,String>(100,"冰糖李子");
Integer 变成 String类型 这面的100也只能改成字符串
Cls2<String,String,String> cls = new Cls2<String,String,String>("","冰糖李子");
这就是我们说的限定了T,
可以用继承,可以用某个接口
我们添加一些具体的写法进来
我要求这个T必须继承Animal
一写进来Cls2<String,String,String> cls = new Cls2<String,String,String>("","冰糖李子");
必须变成
Cls2<Dog,String,String> cls = new Cls2<Dog,String,String>(new Dog(),"冰糖李子");
那如果我现在有一个接口,接口里面有一个抽象的方法
interface Move
{
abstract void test();
}
如果你对于T做一些限制要求,必须要实现Move这个接口
我们以前实现接口是 class A implements Move {
} 这样一个写法
A这面去实现Move里面未实现的方法· 叫做test
如果这面也用Move的话
abstract class Cls1<T extends Move>
是用 extends abstract class Cls1<T extends Move>
还是 implements abstract class Cls1<T implements Animal>
发现还是得用extends abstract class Cls1<T extends Move>
注意他跟我们传统的 implements是不一样的
为什么 abstract class Cls1<T extends Move> 多了extends?
因为他可能继承某个类 ,或者限定了它实现某个接口
代码如下:
import java.text.DecimalFormat;
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入商品单价:(格式为\"12.34\")");
double unitPrice = scanner.nextDouble();
System.out.println("请输入商品重量:(格式为\"34.56\")");
double weight = scanner.nextDouble();
double totalPrice = unitPrice * weight;
DecimalFormat df = new DecimalFormat("#.00");
System.out.println("总价为:" + df.format(totalPrice));
}
}