面向对象程序设计之类和对象初级试题
面向對象程序設計之試題
類和對象
定義一個菜譜類Recipe用來存儲某種菜的制作過程等相關信息,其屬性包括:菜譜名稱、菜系(如:川菜、湘菜等)、烹飪時長(分鐘)、所需的多種食材(字符串數組類型,假設每種菜所需食材不會超過10種)、操作步驟,在main方法中定義一個數組存儲5個菜譜的信息。
要求:
(1)按名稱模糊查詢并輸出符合條件的菜譜的所有信息,要求實現查找包含特定名稱的菜譜信息的方法:searchRecipesContainName(Recipe[] recipes, String name),例如:希望找到所有名稱中包含牛肉的菜譜,可以使用字符串類String類的contains方法,來判斷某個字符串中是否包含某個子串。
輸出格式:
(2)按菜系查詢并輸出符合條件的菜譜的所有信息,要求能夠實現查找某個菜系的菜譜信息的方法:searchRecipes(Recipe[] recipes, String style),例如:希望查找所有湘菜的菜譜(可以使用字符串類String類的equals方法,來判斷某個字符串是否與指定字符串相同),輸出格式同上。
(3)查詢烹飪時間小于某個時長的菜譜并輸出,要求實現查找方法:searchRecipeLessThan(Recipe[] recipes, int time),例如:希望查找烹飪時長小于30分鐘的菜譜,輸出格式同上。
(4)查詢包含某種食材的菜譜信息并輸出,要求實現查找方法:searchRecipeContainsFood(Recipe[] recipes, String food),例如:希望查找包含西紅柿的菜譜,輸出格式同上。
提示:
(1)定義的菜譜類:包括屬性、屬性的getter、setter方法。
(2)類中其他方法可自由發揮,比如打印菜譜信息的方法(如print()或toString())
(3)自己定義包含main方法的類,類中定義4個static方法,分別用來實現要求中規定的4個方法
package www.wy.ch01; import java.util.Arrays; public class Recipe {private String name;//名稱private String style;//菜系private int time;//時長private String[] materials;//食材private String step;//步驟public String getName() {return name;}public void setName(String name) {this.name = name;}public String getStyle() {return style;}public void setStyle(String style) {this.style = style;}public int getTime() {return time;}public void setTime(int time) {this.time = time;}public String[] getMaterials() {return materials;}public void setMaterials(String[] materials) {this.materials = materials;}public String getStep() {return step;}public void setStep(String step) {this.step = step;}public void print() {System.out.println("菜譜名稱:" + name);System.out.println("菜系:" + style);System.out.println("時長:" + time);System.out.print("所需食材:");for(String material : materials) {System.out.print(material + " ");}System.out.println();System.out.println("操作步驟:" + step);}} package www.wy.ch01; public class Test {public static void main(String[] args) {Recipe[] recipes = new Recipe[5];Recipe recipe1 = new Recipe();recipe1.setName("醬牛肉");recipe1.setStyle("家常菜");recipe1.setTime(120);String[] materials1 = {"牛腱子","黃豆醬油","黃酒","冰糖"};recipe1.setMaterials(materials1);recipe1.setStep("1.準備好主要食材;2.加入食材慢燉兩至三小時");recipes[0] = recipe1;Recipe recipe2 = new Recipe();recipe2.setName("紅燒牛肉");recipe2.setStyle("家常菜");recipe2.setTime(120);String[] materials2 = {"牛腩","牛筋","生抽","冰糖"};recipe2.setMaterials(materials2);recipe2.setStep("1.準備好主要食材;2.加入食材慢燉兩至三小時");recipes[1] = recipe2;Recipe recipe3 = new Recipe();recipe3.setName("農家小炒肉");recipe3.setStyle("湘菜");recipe3.setTime(10);String[] materials3 = {"青椒","紅椒","醬油肉","蔥"};recipe3.setMaterials(materials3);recipe3.setStep("1.準備好主要食材并切塊;2.鍋內倒少許的油后放入蔥花爆香,然后加入食材翻炒");recipes[2] = recipe3;Recipe recipe4 = new Recipe();recipe4.setName("西紅柿炒雞蛋");recipe4.setStyle("家常菜");recipe4.setTime(10);String[] materials4 = {"西紅柿","雞蛋"};recipe4.setMaterials(materials4);recipe4.setStep("1.西紅柿切塊,雞蛋打散;2.先炒雞蛋,再加入西紅柿");recipes[3] = recipe4;Recipe recipe5 = new Recipe();recipe5.setName("水煮魚");recipe5.setStyle("川菜");recipe5.setTime(30);String[] materials5 = {"鯉魚","黃豆芽"};recipe5.setMaterials(materials5);recipe5.setStep("1.處理鯉魚;2.加入食材燉5分鐘即可");recipes[4] = recipe5;searchRecipesContainName(recipes, "魚");//根據名稱模糊查詢 // searchRecipes(recipes, "湘菜");//根據菜系查詢 // searchRecipeLessThan(recipes, 30);//根據做飯的時間查詢 // searchRecipeContainsFood(recipes,"西紅柿");//根據做飯所需食材查詢}public static void searchRecipesContainName(Recipe[] recipes,String name) {for(int i = 0; i < recipes.length; i++) {if(recipes[i].getName().contains(name)) {recipes[i].print();}}}public static void searchRecipes(Recipe[] recipes, String style) {for(int i = 0; i < recipes.length; i++) {if(recipes[i].getStyle().equals(style)) {recipes[i].print();}}}public static void searchRecipeLessThan(Recipe[] recipes, int time) {for(int i = 0; i < recipes.length; i++) {if(recipes[i].getTime() < time) {recipes[i].print();}}}public static void searchRecipeContainsFood(Recipe[] recipes, String food) {for(int i = 0; i < recipes.length; i++) {String[] foods = recipes[i].getMaterials();for(String f : foods) {if(f.equals(food)) {recipes[i].print();}}}} }在該類中除了屬性的getter、setter方法之外,還需要實現以下方法:
(1)一個Complex add(Complex anotherComplex)方法,將當前復數對象與形參復數對象相加,所得的結果仍然是一個復數值。
(2)一個Complex addAnther(int anotherReal, int anotherImaginary)方法,將當前復數對象與形參的實數和虛數部分表示的復數對象相加,所得結果仍然是一個復數。
(3)編寫一個測試類,在main方法中創建兩個復數1+2i和3+4i,并顯示它們的和。
package com.homework0202;public class Complex {private int realPart;private int imaginaryPart;public int getRealPart() {return realPart;}public void setRealPart(int realPart) {this.realPart = realPart;}public int getImaginaryPart() {return imaginaryPart;}public void setImaginaryPart(int imaginaryPart) {this.imaginaryPart = imaginaryPart;}public Complex add(Complex a) {int r = realPart + a.getRealPart();int i = imaginaryPart + a.getImaginaryPart();Complex c = new Complex();c.setRealPart(r);c.setImaginaryPart(i);return c; }public Complex addAnther(int anotherReal, int anotherImaginary) {int r = realPart + anotherReal;int i = imaginaryPart + anotherImaginary;Complex c = new Complex();c.setRealPart(r);c.setImaginaryPart(i);return c; }public String print() {return realPart + "+" + imaginaryPart + "i";} } package com.homework0202;public class Test {public static void main(String[] args) {Complex c1 = new Complex();c1.setRealPart(1);c1.setImaginaryPart(2);Complex c2 = new Complex();c2.setRealPart(3);c2.setImaginaryPart(4);Complex c3 = c1.add(c2);System.out.println(c1.print() + "加上" + c2.print());System.out.println("結果是:" + c3.print());Complex c4 = c1.addAnther(4, 6);System.out.println(c4.print());} }總結
以上是生活随笔為你收集整理的面向对象程序设计之类和对象初级试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Swift获取当前网络状态Wifi/5G
- 下一篇: SAP中记账汇率和预算汇率的应用配置分析