首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Java -将类方法分离为不同的文件

Java -将类方法分离为不同的文件
EN

Stack Overflow用户
提问于 2015-03-11 14:58:54
回答 4查看 3.6K关注 0票数 2

我正在用Java编写一个代码,一个专门用于创建矩阵的代码,我使用了许多不同的方法。我试图将类似的方法分离到不同的文件中,这样它们就更容易修改了,但是我无法想出一种在没有可怕继承的情况下这样做的方法。我想要做的事情是可能的吗,还是我应该咬紧牙关,把它们都放在一个文件里?例如,我有4个单独的文件。我唯一能想到的不需要导入许多不同类的方法是:

MatrixBase -> MatrixSort --> MatrixMethods -->矩阵

当我只想将类似的方法存储在同一个文件中时,我会感觉到一个类的继承是不必要的。我最好的解决办法是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-03-11 18:45:57

Strategy是OOP设计模式之一,它允许将方法与对象分开。虽然它的主要目的是提供一种在运行时提供替代算法实现的机制,但您可能需要检查它是否适合您的情况。

票数 2
EN

Stack Overflow用户

发布于 2015-03-11 19:00:49

如果单个类中有太多代码,则可能不会使用最佳的面向对象设计方法。此外,在Java中导入许多类也很好。不过,我会在你的问题范围内给你一个合理的选择。希望能帮上忙。

尝试使用组合,以便使函数在单个位置可用,同时仍然在逻辑上将它们分解为单独的类。..。因此,让我们假设您将MatrixMath作为根类来访问所有矩阵操作。让我们假设您希望有一个代数集合和一个排序集合。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// container that has all of your matrix math objects
public class MatrixMath {
    MatrixMath(){};
    public final MatrixAlgebra algebra = new MatrixAlgebra();
    public final MatrixSort sort = new MatrixSort();
}

// put all of the algebra type functions here
public class MatrixAlgebra {
    MatrixMultiply(){};
    public static Matrix multiply(final Matrix a, final Matrix b) {
        Matrix result;
         // do something
        return result;
    }
}

// and your sorting functions here...
public class MatrixSort {
    ...
}

现在,要访问矩阵乘法,可以使用以下方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// create a reference to your MatrixMath class so that you 
// can use your function.   
public class Matrix {
   final MatrixMath math = new MatrixMath();

   Matrix times(Matrix other) {
       return math.algebra.multiply(this,other);
   }
}

如果您真的只是在创建函数,并且使一切都是静态的,那么您可以在任何地方使用静态引用。

票数 0
EN

Stack Overflow用户

发布于 2015-03-11 19:13:56

你不应该创建这么大的班级--这是个非常糟糕的主意。

您需要开始评估如何将部分功能提取到其他小类中。其他类不需要公开给用户,如果您愿意,它们可以是包私有的(如果您不提供访问级别,这就是您得到的)。

您可以很容易地拥有一个单独的类,它是一个“矩阵”,但也可以是大量其他类的外观。

我不确定这是否与您正在做的事情相同,但我花了一段时间开发了一个带有可替换数字实现的矩阵类,该类可以处理特殊类型,如矩阵可以操作的rational和复杂类型。

Java在这种工作中很痛苦(我可能是您遇到的最强大的java支持者,所以这说明了很多!)主要的问题是,数字类型没有有用的基类型,但是要完成这类工作,它确实有助于重载操作符(我通常认为这只不过是一个吸引人的麻烦)。

如果这是您所要做的事情,我强烈建议您查看最顶层的groovy (使用类)。如果这不是你正在做的事情,那就为你的咆哮感到抱歉,但你可能在此之前就停止了阅读:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28998979

复制
相关文章
OpenJDK 提案将提供 Java 类文件 API
出品 | OSC开源社区(ID:oschina2013) Java 社区正在酝酿一项 Classfile API 提案,旨在提供一个用于解析、生成和转换 Java 类文件的 API;最初将作为 JDK 中 ASM 的内部替代品,之后再作为公共 API 开放。根据计划,ASM 最终将被完全从 JDK 中删除。 提案内容指出,类文件生成、解析和检测在 Java 生态系统中无处不在;许多工具和库需要能够处理类文件,并且框架通常会执行 on-the-fly bytecode instrumentation、tran
程序猿DD
2022/06/29
2710
OpenJDK 提案将提供 Java 类文件 API
Java中不同包下类与类之间的访问
Java中不同包下类与类之间的访问 (1)我们多次使用一个带包的类,都需要加包的全路径,非常的麻烦,这个时候,Java就提供了导包的功能,提供了一个关键字import。 (2)格式: import 包名.包名. ...包名.类名;       这种方式导入的是:到类的名称。     另一种: import 包名.包名. ... .*;(不建议) (3) package、import、class有没有顺序关系呢?     有。     package > import > class     package:只能有一个     import:可以有多个     class:可以有多个,以后建议是一个。(因为每一个类是一个独立的单元)
黑泽君
2018/10/11
3.6K0
Java ArrayList的不同排序方法
由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一。ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在添加和移除元素的时候进行动态的扩展和缩减。你可能已经使用过 ArrayList,因此我将略过基础部分。如果你对 ArrayList 还不熟悉,你可以参考它的 API 文档,可以很容易理解在 ArrayList 上执行基本的操作。 In this post, I will discuss one of the most important operation on ArrayList that you will most likely require implementing during enterprise application development. It’s sorting the elements of an ArrayList. 在这篇文章中,我将讨论 ArrayList 中一种极其重要的操作,你很有可能需要在企业应用开发中实现它。它就是 ArrayList 元素的排序。
哲洛不闹
2018/09/19
1.7K0
Java ArrayList的不同排序方法
Java ArrayList 的不同排序方法
由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一。ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在添加和移除元素的时候进行动态的扩展和缩减。你可能已经使用过 ArrayList,因此我将略过基础部分。如果你对 ArrayList 还不熟悉,你可以参考它的 API 文档,可以很容易理解在 ArrayList 上执行基本的操作。
田维常
2019/08/08
1.2K0
Java类文件的结构
 Class文件是以8位字节为基础单位的二进制流,各部分中间没有分隔符。遇到8位字节以上的空间数据项时,则会按照高位在前的方式分割成若干个8位字节进行存储。
爱撸猫的杰
2019/03/28
6860
Chrome 技术篇-将程序打包为crx文件,chrome插件的打包方法。
打包方法: 在chrome的扩展程序页签,勾选开发者模式,点击打包程序,拓展程序根目录选择要打包的程序,秘钥空着就行,再点击打包拓展程序即可。
小蓝枣
2020/09/23
7.7K0
Java InetAddress类的方法
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/218
joshua317
2021/12/24
6030
Python把PDF文件中每页内容分离为独立图片文件
封面图片:《Python程序设计实验指导书》(ISBN:9787302525790),董付国,清华大学出版社
Python小屋屋主
2019/07/23
1.5K0
Python把PDF文件中每页内容分离为独立图片文件
PHP将Markdown文件解析为HTML
项目地址:https://gitee.com/JonahXie/parsedown
Chuanrui 初见之旅
2022/11/14
1.9K0
将Python的GUI程序打包为exe文件
切换到py文件所在目录,并打开cmd窗口或者Windows PowerShell窗口
冰霜
2022/03/15
1.2K0
将Python的GUI程序打包为exe文件
ASP.NET Core 将文件夹内容输出为压缩包文件方法
本文主要是告诉大家一个省内存的方法,将整个文件夹的内容作为一个压缩包输出,但是实际上没有申请那么多的内存,也不需要升级创建一个压缩包文件。原理是通过逐个读文件然后按照压缩包格式输出
林德熙
2020/08/02
1.6K0
python引入相同和不同(模块)文件夹下py文件的类
从SyncMysqlMongo中引入MongoDBUtil.py和MySQLUtil.py中的两个类(这里的类名和文件名一致)
静谧星空TEL
2022/01/05
8K0
python引入相同和不同(模块)文件夹下py文件的类
CoreOS为容器安全带来不同方法
容器安全对于CoreOS的第一个container runtime rkt的产品发布是至关重要的。这被认为比Docker更适合大规模部署。 随着安全为中心的rkt第一个产品版本在上周发布,容器市场持续升温。 开源项目首次可用的一年后,rkt container application runtime(容器应用程序运行)的1.0版本聚焦于安全性和应用部署的定制角色,它也是市场上用户可以部署Linux containers的另一种选择。 CoreOS把rkt定位于比Docker在整体应用框架中有更多模块组件。其
静一
2018/03/26
7470
git为不同的项目设置不同的邮箱
在我们使用Git开发项目的时候,可能经常会碰到个人和公司开发的项目都在一台机器上的情况。不管你们有没有,反正我是碰到了。因为公司有公司自己分配的邮箱,而我自己喜欢用自己的邮箱开发自己的项目。这样可能会导致邮箱混用的情况。
魔王卷子
2019/05/31
1.3K0
如何使用 Java 将 JSON 文件读取为字符串?这三种方法很管用!
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,它可以用来存储和传输结构化的数据。在 Java 中,有多种方法可以将 JSON 文件读取为字符串,本文将介绍其中的几种。
网络技术联盟站
2023/04/24
3.7K0
如何使用 Java 将 JSON 文件读取为字符串?这三种方法很管用!
Java 类机制(3)---- 类文件结构
​ 在上一篇文章中我们一起来看了一下 Java 虚拟机的类加载过程,包括虚拟机加载、验证、准备、解析和初始化 5 个大步骤,同时我们还讨论了 Java 虚拟机加载类时采用的双亲委派模型思想。在这篇文章中我们来一起看一下 class 文件的结构,来进一步加深我们对虚拟机的类加载机制和类机制的理解。本文参考了 《深入理解 Java 虚拟机》一书。
指点
2019/07/01
6510
Java 类机制(3)---- 类文件结构
Java 静态方法和实例方法有何不同
●在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。
赵哥窟
2020/01/02
4K0
将图片保存到XML文件的方法
一.保存图片到XML文件 /// <summary> /// 保存图片到XML文件 /// </summary> private void UploadImageToXml() { ///得到用户要上传的文件名 string strFilePathName = loFile.PostedFile.FileName; string strFileName = Path.GetFileName(strFilePathName); int FileLength = loFile.Post
跟着阿笨一起玩NET
2018/09/18
2.4K0
点击加载更多

相似问题

将代码分离为不同的类[Java]

35

将类分离为不同文件时的元类冲突

12

将步骤分离为不同的文件

22

将Swingworker函数分离为不同的类

213

如何将模板类与其好友模板类分离为不同的头文件?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文