有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

import com.app.Be.BeUser;

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

   {

    ...

   }

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


共 (3) 个答案

  1. # 1 楼答案

    这些被称为助手类实用程序类,尽管这些方法通常声明为静态的。例子包括^{}^{}。通常,它们可能具有复数名称(例如,与Widget对象一起工作的助手类可能被称为Widgets

  2. # 2 楼答案

    What is a class without fields called?

    1没有通用的名称:

    • 没有字段的类没有显式状态,但严格来说,每个Java对象都有与其互斥体关联的状态。因此,将它们称为“无状态类”有点牵强

    • 没有字段的类可以是帮助类,但没有字段既不是必要的,也不是充分的先决条件

    • 没有状态的实例也是不可变的,所以您可以将没有字段的类称为“不可变类”。。。尽管锁定用例在这里也适用

    助手类和无状态类之间的另一个区别是类是否被设计为实例化。助手类(在正常使用中)由static方法组成,并且没有实例化。(一个实例毫无用处)。无状态类通常被设计为实例化,并传递给其他类,这些类将实际对实例进行方法调用;e、 g.作为“政策对象”

    然后是“基类”用例的子用例,其中基类中没有字段。(在这种情况下,将类称为“无状态”会产生误导,因为子类中通常存在状态。)

    简言之,您需要检查该类以及如何实际使用它来确定哪个(或多个)标签最适合应用于该类


    在您的特定示例中,最好将代码描述为无状态类。这是因为它被设计成在不同的上下文中被实例化和传递,但是功能并不依赖于对象本身的任何状态


    这里有一些其他的例子来说明为什么没有简单的答案

    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类”怎么样。Villeins没有任何田地

  3. # 3 楼答案

    没有任何内部字段的类是无状态的从具有内部状态(字段)的类派生的类在超类中仍然具有字段。因此,这样的类不会被认为是无状态的

    根据类的用途,类通常会有更具体的名称。上面的示例似乎是一个验证器类