java 使用面向对象开发设计产品管理程序代码

简介: java 使用面向对象开发设计产品管理程序代码

需求是这个样子的:

代码如下

任务1代码:
package com.hidata.hiops.paas.demo;
import java.util.ArrayList;
import java.util.List;
/**
 * 任务一、产品基本信息
 */
public class Product {
    private static List<Product> productList = new ArrayList<>();
    private String name;
    private String price;
    private String profile;
    private String score;
    static {
        productList.add(new Product("xiaomi8","2599","well-known","100"));
        productList.add(new Product("xiaomi9","3599","well-known","90"));
        productList.add(new Product("xiaomi10","5599","well-known","99"));
        productList.add(new Product("xiaomi12","7599","well-known","100"));
    }
    public Product() {}
    public Product(String name, String price, String profile, String score) {
        this.name = name;
        this.price = price;
        this.profile = profile;
        this.score = score;
    }
    public String getName() {
        return name;
    }
    public static void getProductInfo(String typeName){
        List<Product> list = Product.productList;
        list.stream().filter(obj -> obj.getName().equals(typeName)).forEach(e ->System.out.println(e));
    }
    @Override
    public String toString() {
        return "Product{" +
                "name='" + name + '\'' +
                ", price='" + price + '\'' +
                ", profile='" + profile + '\'' +
                ", score='" + score + '\'' +
                '}';
    }
    public static void main(String[] args) {
        Product.getProductInfo("xiaomi8");
        Product.getProductInfo("xiaomi9");
    }
}
运行结果
Product{name='xiaomi8', price='2599', profile='well-known', score='100'}
Product{name='xiaomi9', price='3599', profile='well-known', score='90'}
Process finished with exit code 0
任务2 代码:
package com.hidata.hiops.paas.demo;
import com.ruoyi.framework.web.domain.server.Sys;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 任务二、分类下的产品信息
 */
public class ProductCategory {
    private String categoryName;//产品分类名称
    private List<ProductItme> productList;//产品列表
    private static List<ProductCategory> categoryList = new ArrayList<>();
    static {
        List<ProductItme> productList = new ArrayList<>();
        productList.add(new ProductItme("XIAOMI"));
        productList.add(new ProductItme("HUAWEI"));
        productList.add(new ProductItme("OPPO"));
        categoryList.add(new ProductCategory("tel",productList));
        List<ProductItme> productList2 = new ArrayList<>();
        productList2.add(new ProductItme("HP"));
        productList2.add(new ProductItme("Lenovo"));
        productList2.add(new ProductItme("DELL"));
        categoryList.add(new ProductCategory("notebook",productList2));
    }
    public ProductCategory(String categoryName, List<ProductItme> productList) {
        this.categoryName = categoryName;
        this.productList = productList;
    }
    public String getCategoryName() {
        return categoryName;
    }
    @Override
    public String toString() {
        return "ProductCategory{" +
                "分类名称='" + categoryName + '\'' +
                ", productList=" + productList +
                '}';
    }
    public static void getProductItmeList(String categoryName) {
        List<ProductCategory> categories = ProductCategory.categoryList;
        categories.stream().filter(obj -> obj.getCategoryName().equals(categoryName)).forEach(e -> System.out.println(e));
    }
    public static void main(String[] args) {
        ProductCategory.getProductItmeList("notebook");
        System.out.println("================================================");
        ProductCategory.getProductItmeList("tel");
    }
}
class ProductItme{
    private String pName;
    public ProductItme(String pName) {
        this.pName = pName;
    }
    @Override
    public String toString() {
        return "产品{" +
                "pName='" + pName + '\'' +
                '}';
    }
}
运行结果
ProductCategory{分类名称='notebook', productList=[产品{pName='HP'}, 产品{pName='Lenovo'}, 产品{pName='DELL'}]}
================================================
ProductCategory{分类名称='tel', productList=[产品{pName='XIAOMI'}, 产品{pName='HUAWEI'}, 产品{pName='OPPO'}]}
Process finished with exit code 0
任务3 代码:
package com.hidata.hiops.paas.demo;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
 * 任务三:分类搜索
 */
public class ProductCategorySearch {
    private String categoryName;//产品分类
    private static List<ProductCategorySearch> categoryList = new ArrayList<>();
    static {
        categoryList.add(new ProductCategorySearch("A"));
        categoryList.add(new ProductCategorySearch("B"));
        categoryList.add(new ProductCategorySearch("X"));
        categoryList.add(new ProductCategorySearch("Y"));
        categoryList.add(new ProductCategorySearch("Z"));
    }
    public ProductCategorySearch(String categoryName) {
        this.categoryName = categoryName;
    }
    public String getCategoryName() {
        return categoryName;
    }
    public static void getProductItmeList(String categoryName) {
        List<ProductCategorySearch> newProductCategorys = new ArrayList<>();
        List<ProductCategorySearch> categories = ProductCategorySearch.categoryList;
        String [] arr = categoryName.split("\\s+");
        for (String name : arr) {
            for (ProductCategorySearch category : categories) {
                if(name.equals(category.getCategoryName())){
                    newProductCategorys.add(category);
                }
            }
        }
        reverse(newProductCategorys);
    }
    private static void reverse(List<ProductCategorySearch> newProductCategorys) {
        Collections.reverse(newProductCategorys);
        System.out.println(newProductCategorys);
    }
    @Override
    public String toString() {
        return "ProductCategorySearch{" +
                "categoryName='" + categoryName + '\'' +
                '}';
    }
    public static void main(String[] args) {
        ProductCategorySearch.getProductItmeList("B A");
        System.out.println("================================================");
        ProductCategorySearch.getProductItmeList("X Y Z");
        System.out.println("================================================");
        ProductCategorySearch.getProductItmeList("A B XY");
    }
}
运行结果
[ProductCategorySearch{categoryName='A'}, ProductCategorySearch{categoryName='B'}]
================================================
[ProductCategorySearch{categoryName='Z'}, ProductCategorySearch{categoryName='Y'}, ProductCategorySearch{categoryName='X'}]
================================================
[ProductCategorySearch{categoryName='B'}, ProductCategorySearch{categoryName='A'}]
Process finished with exit code 0


相关文章
|
5天前
|
Java
在 Java 中捕获和处理自定义异常的代码示例
本文提供了一个 Java 代码示例,展示了如何捕获和处理自定义异常。通过创建自定义异常类并使用 try-catch 语句,可以更灵活地处理程序中的错误情况。
|
10天前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
23 4
|
12天前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
35 4
|
16天前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
48 3
|
15天前
|
Java
Java代码解释++i和i++的五个主要区别
本文介绍了前缀递增(++i)和后缀递增(i++)的区别。两者在独立语句中无差异,但在赋值表达式中,i++ 返回原值,++i 返回新值;在复杂表达式中计算顺序不同;在循环中虽结果相同但使用方式有别。最后通过 `Counter` 类模拟了两者的内部实现原理。
Java代码解释++i和i++的五个主要区别
|
17天前
|
SQL Java 程序员
倍增 Java 程序员的开发效率
应用计算困境:Java 作为主流开发语言,在数据处理方面存在复杂度高的问题,而 SQL 虽然简洁但受限于数据库架构。SPL(Structured Process Language)是一种纯 Java 开发的数据处理语言,结合了 Java 的架构灵活性和 SQL 的简洁性。SPL 提供简洁的语法、完善的计算能力、高效的 IDE、大数据支持、与 Java 应用无缝集成以及开放性和热切换特性,能够大幅提升开发效率和性能。
|
11天前
|
安全 Java 测试技术
Java开发必读,谈谈对Spring IOC与AOP的理解
Spring的IOC和AOP机制通过依赖注入和横切关注点的分离,大大提高了代码的模块化和可维护性。IOC使得对象的创建和管理变得灵活可控,降低了对象之间的耦合度;AOP则通过动态代理机制实现了横切关注点的集中管理,减少了重复代码。理解和掌握这两个核心概念,是高效使用Spring框架的关键。希望本文对你深入理解Spring的IOC和AOP有所帮助。
24 0
|
12天前
|
Java API Android开发
kotlin和java开发优缺点
kotlin和java开发优缺点
26 0
WK
|
17天前
|
开发框架 移动开发 Java
C++和Java哪个更适合开发移动应用
本文对比了C++和Java在移动应用开发中的优劣,从市场需求、学习难度、开发效率、跨平台性和应用领域等方面进行了详细分析。Java在Android开发中占据优势,而C++则适合对性能要求较高的场景。选择应根据具体需求和个人偏好综合考虑。
WK
33 0
|
6月前
|
算法 Java 数据处理
Java程序性能优化研究
Java程序性能优化研究
59 0