什么是没有字段的类?我是编程Java的初学者,我正在尝试理解和学习类,所以我有以下类“DalUser”,它没有字段,只有方法,比如名为Dal的文件夹中的validateSession:
import com.app.Be.BeUser;
public class DalUser{
public BeUser validateSession(String user, String password)
{
...
}
我有一个BeUser类,它有字段user和password,位于另一个名为Be的文件夹或包中。这是一个特殊类型的类,或者是一个普通的类,尽管没有任何字段?
答案 0 :(得分:6)
这些被称为帮助类或实用程序类,尽管这些方法通常被声明为静态。示例包括java.util.Arrays
和java.util.stream.StreamSupport
。通常,它们可能具有复数名称(例如,与Widget
个对象一起使用的辅助类可能被称为Widgets
。
答案 1 :(得分:5)
什么是没有字段的类?
此 1 没有普遍适用的名称:
没有字段的类没有明确的状态,但严格来说,每个Java对象都有与其互斥锁相关联的状态。因此称他们为#34;无国籍课程"有点拉伸。
没有字段的类可能是"帮助类",但缺少字段既不是必要条件,也不是充分的前提条件。
没有状态的实例也是不可变的,所以你可以调用没有字段的类和不可变的类" ......虽然锁定用例也适用于此。
辅助类和无状态类之间的另一个区别是该类是否被设计为实例化。辅助类(在正常使用中)由static
方法组成,并且未实例化。 (一个实例没有用处)。无状态类通常被设计为实例化,并传递给实际在实例上进行方法调用的其他类;例如作为"政策对象"。
然后有一个"基类的子案例"用例,基类中没有字段。 (在这种情况下,调用类"无状态"会产生误导,因为子类中通常存在状态。)
简而言之,您需要检查类及其实际用途,以确定最适合它的标签(或多个标签)。
在您的具体示例中,代码最好描述为无状态类。这是因为它是设计的来实例化并在不同的上下文中传递,但功能并不依赖于对象本身的任何状态。
以下是一些其他例子来说明为什么没有简单的答案。
1)这是一个辅助类,但它有一个(静态)字段。
public class Plumbing {
private static nosTapsFixed;
private Plumbing() { }
public class fixTap(Tap t) {
// fix 't'
}
}
2)这是一个基类。它没有字段,但显然不是帮助类。
public abstract class Tradesman {
// no fields
public abstract Invoice issueInvoice();
}
3)以下是没有字段(java.lang.Object
)的类的使用方式,显然不是"帮助"。
final Object myLock = new Object();
...
synchronized (myLock) {
...
}
4)这是另一个没有字段但是不是帮助者的类的例子。
public enum Agreement {
YES, NO
}
1 - 但如果你真的想要一个名字,那么" villein课程"。维林斯没有任何领域......
答案 2 :(得分:3)
没有任何内部字段的类是无状态。从具有内部状态(字段)的类派生的类仍然会在超类中包含字段。所以这样的课程不会被视为无国籍。
类通常具有更具体的名称,具体取决于它们的用途。您上面的示例似乎是验证器类。