没有字段的类是否有特殊名称?

时间:2015-06-19 21:50:14

标签: java class

什么是没有字段的类?我是编程Java的初学者,我正在尝试理解和学习类,所以我有以下类“DalUser”,它没有字段,只有方法,比如名为Dal的文件夹中的validateSession:

import com.app.Be.BeUser;

public class DalUser{    
  public BeUser validateSession(String user, String password)

   {

    ...

   }

我有一个BeUser类,它有字段user和password,位于另一个名为Be的文件夹或包中。这是一个特殊类型的类,或者是一个普通的类,尽管没有任何字段?

3 个答案:

答案 0 :(得分:6)

这些被称为帮助类实用程序类,尽管这些方法通常被声明为静态。示例包括java.util.Arraysjava.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)

没有任何内部字段的类是无状态。从具有内部状态(字段)的类派生的类仍然会在超类中包含字段。所以这样的课程不会被视为无国籍。

类通常具有更具体的名称,具体取决于它们的用途。您上面的示例似乎是验证器类。