java中有抽象变量吗?

发布于 2024-09-15 12:51:59 字数 64 浏览 3 评论 0原文

Java 中的变量可以是抽象的吗?构造函数支持抽象变量吗?我不确定,但我认为构造函数支持静态变量。请澄清我的疑问。

Can variables be abstract in Java? Do constructor support abstract variables? I am not sure but I think the constructor supports static variables. Please clarify my doubt.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

君勿笑 2024-09-22 12:52:00

Abstract是java中的非访问修饰符,适用于类、方法,但不适用于变量。它用于实现抽象,这是面向对象编程的支柱之一。

abstract is a non-access modifier in java applicable for classes, methods but not variables. It is used to achieve abstraction which is one of the pillar of Object Oriented Programming.

淤浪 2024-09-22 12:51:59

在java中只有类和方法可以是抽象的。变量声明不能。但是,您可以使用抽象类型的变量声明。参见示例:

public abstract class MyClass { // allowed
   public abstract myMethod(); // allowed
   public MyClass instance; // allowed

   public abstract MyClass instance; // NOT ALLOWED!!
}

In java only classes and methods can be abstract. Variable declarations cannot. However you can have variable declarations whose types are abstract. See example:

public abstract class MyClass { // allowed
   public abstract myMethod(); // allowed
   public MyClass instance; // allowed

   public abstract MyClass instance; // NOT ALLOWED!!
}
极致的悲 2024-09-22 12:51:59

语言规范列出了 7 种类型的变量:

  1. 类变量 - 在类声明中声明为静态
  2. 实例变量 - 在类声明中声明而不使用 static 关键字
  3. 数组组件 - 就像 i[2] 当我们创建像 int[] i= new int[5] 这样的数组时
  4. 方法参数 - 传递给方法的名称参数值
  5. 构造函数参数 - 传递给构造函数的名称参数值
  6. 异常处理程序参数 - 每次捕获异常时创建
  7. 局部变量< /strong> - 在块 ({ }) 或 for 语句中声明

您可以在构造函数中使用所有变量类型(#4 除外):

class Demo {
   static int demo1 = 0;               // class variable
   int[] demo2 = new int[5];           // instance variable
   Demo(int demo3) {                   // constructor parameter
     try {
       int demo4 =                     // local variable
                   demo2[2];           // array component
     } catch(RuntimeException demo5) { // exception-handler parameter
     }
     demo2 = new int[]{Demo.demo1};    // using class and instance variable
                                       // in a constructor
   }
   int method(int demo6) {             // method parameter
   }
}

不允许使用 abstract 关键字用于变量声明。

The language specifacation lists 7 types of variables:

  1. class variables - declared as static within a class declaration
  2. instance variables - declared within a class declaration without using the static keyword
  3. array components - like i[2] when we create an array like int[] i= new int[5]
  4. method parameters - name argument values passed to a method
  5. constructor parameters - name argument values passed to a constructor
  6. exception-handler parameter - created each time an exception is caught
  7. local variables - declared in a block ({ }) or for statement

You can use all variable types (except #4) in a constructor:

class Demo {
   static int demo1 = 0;               // class variable
   int[] demo2 = new int[5];           // instance variable
   Demo(int demo3) {                   // constructor parameter
     try {
       int demo4 =                     // local variable
                   demo2[2];           // array component
     } catch(RuntimeException demo5) { // exception-handler parameter
     }
     demo2 = new int[]{Demo.demo1};    // using class and instance variable
                                       // in a constructor
   }
   int method(int demo6) {             // method parameter
   }
}

The abstract keyword is not allowed for variable declaration.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文