?歡迎來到JAVA語法專欄,一起學習,一起進步?
金九銀十秋招季,也是開學的時候,不少同學開了JAVA這門課,一起來看看這兩個案例來熟悉熟悉吧,
一、案例來源
案例源自Java基礎案例教程一書,現為學校面向物件編程課程教科書,由黑馬程式員編著,文章案例節選自38頁案例2-1 商品入庫,及44頁案例2-2 小明都買什么,
二、案例基礎
由于是需要用Java完成,就需要知道一些基礎知識,不然后面的代碼是看不懂的,這里附上之前類和物件博客的鏈接:
Java 類和物件詳述
在這里在稍微總結一下:Java代碼依據于類和物件,類是一類事物的統稱,也可以理解成一把槍的構造藍圖,物件是類實體化出來的具體的事物,
Java當中的類和C語言的結構體相似,可以在類中設定屬性、欄位,不過Java還可以在類中寫一些方法,也就是C語言中的函式,在創建類時需要在前面加上class+類名,舉個例子:
class Person{
/**
* name、age均為Person類中的欄位、屬性
* eat方法是Person類的方法,帶有一個String型別的引數
*/
String name;
int age;
public void eat(String name){
System.out.println(name+"吃飯");
}
}
類的構造方法:
方法中有一種特殊的叫構造方法,在實體化物件的時候會被自動呼叫的方法,方法名字和類名相同, 用于物件的初始化;
三、案例講解
3.1 案例2-1 商品入庫
案例資訊:
現要對華為和小米兩種手機產品進行入庫,本案例要求撰寫一個模擬商品入庫的程式,需要在控制臺輸入入庫商品的數量,最后列印出倉庫中所有商品詳細資訊,以及所有商品的總庫存數和庫存商品總金額,
商品資訊如下:
● 品牌型號
● 尺寸
● 價格
● 配置
● 庫存
● 總價
▲總結:
輸入要求:從控制臺輸入入庫商品的數量
輸出要求:列印倉庫的所有商品資訊,總庫存數,庫存商品總金額
案例設計思路:將華為和小米兩個商品設計成兩個類,他們的商品資訊就是類中的屬性,在創建一個帶有商品數量的引數的構造方法,直接在構造方法里列印出輸出要求的資訊即可,
設計華為、小米商品類,及構造方法
華為:
class huaWei {
public String brand = "華為";
public int size = 20;
public int price = 3000;
public String configure = "mate40e全網通(8G+128G)(5G版)";
public int inventory ;
public int sumPrice ;
public huaWei(int numhw) {
System.out.println("品牌"+this.brand + " " +"尺寸"+ this.size + " " +"單價"+this.price + " " + "總價"+numhw*price + " "+"配置" + this.configure + " " + "庫存"+numhw);
}
}
小米:
class xiaoMi {
public String brand = "小米";
public int size = 30;
public int price = 3500;
public String configure = "小米11,為發燒而生";
public int inventory ;
public int sumPrice ;
public xiaoMi(int numxm) {
System.out.println("品牌"+this.brand + " " +"尺寸"+ this.size + " " +"單價" +this.price + " " +"總價"+numxm*price + " "+"配置" + this.configure + " " +"庫存"+ numxm);
}
}
這里設計了帶有一個引數的構造方法,原因是案例要求輸入商品入庫數量,這樣才能根據入庫數量求出庫存和,商品總價,
設計Main方法,輸入資料
在Java中,輸入是需要導包的,就像C語言寫的#inlcude<stdio.h>引頭檔案類似,輸入導的是Scanner包,也可以直接導util.*,這個包包含了更多的方法,導包格式為:
import java.包名+;
通過導包,我們可以使用Scanner類,這就是Java輸入的類,先實體化一個物件,物件名隨意,但還是建議起的有意義一些,讓人看得明白,在=號右邊的圓括號中的System.in是因為我們是從控制臺輸入資料,所以需要加上這個引數,
Scanner scanner = new Scanner(System.in);
整個main方法:
import java.util.*;
/**
* 案例2-1 商品入庫
*/
public class Solution0913 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numHW = 0;
int numXM=0;
System.out.println("請輸入華為的商品數量 ");
numHW = scanner.nextInt();
System.out.println("華為的商品資訊:");
huaWei huaWei1 = new huaWei(numHW);
System.out.println("請輸入小米的商品數量 ");
numXM=scanner.nextInt();
System.out.println("小米的商品資訊:");
xiaoMi xiaoMi=new xiaoMi(numXM);
}
}
案例測驗:
點擊運行后,提示輸入華為的商品數量,在這里我輸入2,方便測驗,

控制臺列印出華為的商品資訊,并自動換行,后再提示輸入小米的商品數量,這里我同樣輸入2,

這樣2-1案例就完成了,

3.2 案例2-2 小明都可以買什么
案例資訊:
撰寫一個智能購物計算小程式,在一家商店有書本、鉛筆、橡皮、可樂、零食五種商品,商品價格如表2-8所示,
| 商品名稱 | 價格(元) |
|---|---|
| 書本 | 12 |
| 鉛筆 | 1 |
| 橡皮 | 2 |
| 可樂 | 3 |
| 零食 | 5 |
假如你帶了20元,且必須購買一本書,剩余的錢可以購買那些商品?可以購買幾件?購買完還剩多錢?
案例設計思路:將5中零食都設計成類,屬性是他們的價格,用20減去一本書的錢還有8塊錢,在用這8塊錢分別除其他4中商品的價格,如果不能整除的就取模,算出還剩多少錢,最后列印結果,
設計5種商品類
class book{
int price=12;
}
class pencil{
int price=1;
}
class eraser{
int price=2;
}
class coco{
int price=3;
}
class food{
int price=5;
}
main方法:
/**
* 案例2-2 小明都買什么
*/
public class solution2_2 {
static int money=20;
public static void main(String[] args) {
book bookBought=new book();
// 20快買了一本書還剩8快,
money=money-bookBought.price;
pencil pencil=new pencil();
int countPencil=money/pencil.price;
System.out.println("還可以買"+countPencil+"支筆");
eraser eraser=new eraser();
int countEraser=money/eraser.price;
System.out.println("還可以買"+countEraser+"個橡皮");
coco coco=new coco();
int countCoco=money/coco.price;
int resultMoney=money%coco.price;
System.out.println("還可以買"+countCoco+"瓶可樂"+"還剩"+resultMoney+"元");
food food=new food();
int countFood=money/food.price;
int resultMoeny2=money%food.price;
System.out.println("還可以買"+countFood+"包零食"+"還剩"+resultMoeny2+"元");
}
}
案例測驗:
運行結果:

結尾:
以上就是這次的兩個案例,主要還是多體會Java面向物件性語言的特性,一切皆物件,用物件解決問題,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/300282.html
標籤:其他
下一篇:(DFS)深度優先搜索演算法詳解
