java 简单的调用类_【JAVA零基础入门系列】Day12 Java类的简单应用

【JAVA零基础入门系列】(已完结)导航目录

俗话说的好,实践出真知,所以除了理论知识掌握扎实以外,更重要的是要多加操练,这样才能掌握核心科技。

今天我们就用刚学会的类来实践一下,目标便是完成上一篇中的剁手任务。

我们的商品类已经准备好了,代码重新罗列一次,这里增加了一个重载方法,关于重载这里不过多介绍,以后会专门文章介绍,这里把它当成一个普通方法就好了,主要用来比较两个商品是否相等,如果对代码不熟悉的话可以再返回去看一下上一篇文章。

这里顺便介绍一下Java注释的正确使用姿势。注释是插在源代码中间用于对代码进行说明的文字,不会被编译和执行。代码不仅仅是用来编译的,更是用来阅读的,因此写上足够多的注释是有必要的,这样可以保证自己在以后回过头来看自己写的破代码的时候写的是什么鬼,如果将自己写代码的思路也记录下来的话,那就更方便自己以后的对比提升了。

Java中的注释方法主要有三种:

1.单行注释,使用//

2.多行注释,使用/* 代码 */

3.文档注释,使用/** 代码 */ 这种格式是为了便于javadoc程序自动生成文档。这里先不做介绍,之后会又专门一篇来做讲解。

/*GOODS类

主要用于记录商品信息,并提供商品信息的访问方法

*/

public classGoods{

//实例域,用于存储商品信息private String title="";private double price=0.0;private String link = "";

//构造器1public Goods(String aTitle,doubleaPrice,String aLink){

title=aTitle;

price=aPrice;

link=aLink;

}

//构造器2public Goods(String aTitle,doubleaPrice){

title=aTitle;

price=aPrice;

link= "www.baidu.com";

}

//构造器3public Goods(doubleaPrice){

price=aPrice;

title= "Goods";

link= "www.baidu.com";

}

//取商品标题publicString getTitle(){returntitle;

}

//取商品价格public doublegetPrice(){returnprice;

}

//取商品链接publicString getLink() {returnlink;

}

//设置商品标题public voidsetTitle(String aTitle){

title=aTitle;

}

//设置商品价格public void setPrice(doubleaPrice){

price=aPrice;

}

//设置商品链接public voidsetLink(String aLink){

link=aLink;

}

//输出商品信息public voidprint(){

System.out.println("title:"+title+" price:"+price+" link:"+link);

}

//重载equals判断方法

@Override

public boolean equals(Object obj) {

return super.equals(obj);

}

}

这样一注释,这个类的功能就很清晰了,人家一看就知道你要做什么瞎操作了,当然,如果每次使用类都要上类的源码查看的话,也确实不方便,所以才有了Javadoc这样的工具,这里因为还没有介绍,所以先不使用。

接下来,我们需要一个购物车来存放商品。因为只需要管理一个购物车,所以预算类就先不写了,不然也有些太小题大做了。

packagepers.frank.test;/*** Cart类

* 购物车类用于管理商品和预算信息

* 提供添加商品,获取预算,修改预算等方法*/

public classCart {//实例域

Goods[] goodsList = new Goods[20];//商品列表,因为还没有介绍列表跟集合,所以先使用数组存储,先假设你不会买超过20件商品

int goodsNum = 0;//商品数量

double budget = 0.0;//预算

double totalPrices = 0.0;//当前商品总价//构造函数

public Cart(doubleaBudget){

budget=aBudget;

}//获取商品总价

public doublegetTotalPrices() {returntotalPrices;

}//获取预算

public doublegetBudget() {returnbudget;

}//修改预算

public void setBudget(doubleaBudget) {

budget=aBudget;

}//添加商品,预算足够则返回真,不够则返回假

public booleanaddGoods(Goods aGoods){//先判断预算

if(totalPrices + aGoods.getPrice() >budget){return false;

}//预算足够则添加//遍历数组,寻找元素为null的位置

int i = 0;for(; i < goodsList.length; i++){if(goodsList[i] == null) {

goodsList[i]= aGoods;

break;

}

}if(i ==goodsList.length)return false;

totalPrices= totalPrices +aGoods.getPrice();

goodsNum++;return true;

}//遍历输出购物车中的商品信息

public voidshowGoodsList(){

System.out.println("购物车内商品数量:" + goodsNum + " 商品总价:" +totalPrices);for( Goods a: goodsList){if (a == null) continue;

a.print();

}

}

}

这里的代码没有太多需要介绍的东西,注释里已经写的很详细了。关于数据描述和使用的类已经构建好了,接下来只需要使用它们就可以了。

public classTest{public static voidmain(String[] args) {double budget = 20000;//预算

Cart myCart = new Cart(budget);//实例化一个购物车对象//创建商品对象数组

Goods[] goodsList = new Goods[3];

goodsList[0] = new Goods("goodsA",10000,"link1");

goodsList[1] = new Goods("goodsB",6000,"link2");

goodsList[2] = new Goods("goodsC",6000,"link3");//循环添加商品

for (int i = 0; i < goodsList.length; i++){if (myCart.addGoods(goodsList[i]) == true){//添加成功

System.out.println("商品添加成功!标题:" + goodsList[i].getTitle() + " 价格:" + goodsList[i].getPrice() + " 链接:"+goodsList[i].getLink());

}else{//添加失败

System.out.println("商品添加失败!当前预算:" + myCart.getBudget() + " 当前商品总价:"+ myCart.getTotalPrices()+" 要添加的商品价格:" +goodsList[i].getPrice());break;

}

}//打印购物车内所有商品信息

myCart.showGoodsList();

}

}

输出如下:

商品添加成功!标题:goodsA 价格:10000.0链接:link1

商品添加成功!标题:goodsB 价格:6000.0链接:link2

商品添加失败!当前预算:20000.0 当前商品总价:16000.0 要添加的商品价格:6000.0购物车内商品数量:2 商品总价:16000.0title:goodsA price:10000.0link:link1

title:goodsB price:6000.0 link:link2

我们的类的简单应用就编写完成了,当然这个类并不完善,有些更复杂的概念还没有介绍,这里只是为了演示类的正确使用姿势而设计的,不要过于纠结于细节。

我们可以看出,测试用的主要代码其实很少,因为我们把具体实现都封装在了类里,只需要按规则使用类中的方法就可以了。这就好比盖房子,不是直接用石头木材堆出来的,而是先加工成砖瓦门窗,然后再搭建。使用这些砖瓦门窗当然要比直接使用石头木材方便得多。使用类的便利性也在于此。我们把商品跟购物车类构建好之后,如果某些地方需要修改,只需要在相应的类中进行修改即可,只要对外提供的方法没有改变,那么调用这些代码的其他代码就不需要进行修改,这样就能降低代码的耦合度。

至此,本篇就结束了,之后会介绍关于类的更多内容,欢迎大家继续关注!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值