在JAVA中实例化的确切含义是什么?

时间:2017-06-01 19:31:01

标签: java

我是JAVA的新手,这个名字叫做。 "在方法内创建的类在java中称为本地内部类。如果要调用本地内部类的方法,则必须在方法"中实例化此类。 这个词用粗体。 任何人都可以帮我解决这个问题。我知道它很尴尬,我应该研究更多,但我无法理解。 感谢。

7 个答案:

答案 0 :(得分:4)

实例化类意味着创建类的实例。换句话说,如果你有这样一个类:

public class Dog {
    public void bark() {
        System.out.println("woof");
    }
}

你会像这样实例化它:

Dog myDog = new Dog();

实例化是指您使用new关键字实际创建类的对象。

答案 1 :(得分:4)

首先声明意味着

ClassName obj;

实例化的简单含义是从类创建对象。

ClassName obj = new ClassName();

什么是对象?

  • 班级的一个实例。从一个类我们可以创建许多实例。
  • 它们是我们程序中的基本运行时实体。
  • 它们也可以表示用户定义的数据类型,例如列表和 载体
  • 根据对象和性质分析任何编程问题 他们之间的沟通。

作为一个例子:

//Define a reference(a variable) which can hold a `Person` obect.
Person p;
//Create a Person object(instantiate).
//new - use to allocate memory space for the new object
p = new Person();

什么是嵌套类?

在类中定义的类称为嵌套类。有两类嵌套类。

  1. inner classes
  2. local classes
  3. annonymous classes
  4. 内部课程:

    • 内部类只能由外部类访问。不是任何其他人 类。
    • 内部类是外部类的成员。
    • 外类可以在不导入的情况下访问内部类。
    • 内部类可以访问属于外部的任何属性或方法 直接
    • 外类无法直接访问内部类。

    内部类的示例:

    class Outer{
       int i = 10;
       void main(){
          //instantiate inner class.
          Inner in = new Inner();
          in.show();
       }
    
       class Inner{
          void show(){
             System.out.print(i);
          }
       }
    }
    

    什么是本地课程?

    哪些是在块中定义的类。

    示例:

    public class{
      int i = 10;
    
      public main(){
         class A{
            void show(){
              System.out.println(i);
            }
         }
    
         //inside the method instantiate local class.
         A obj = new obj();
         obj.show();
      }
      //outside the main() -block(method)
      //inside another method instantiate local class.
      public test(){
        A obj = new A();
        obj.show();
      }
    }
    

答案 2 :(得分:3)

Instantiate正在创建一个类的实例。我想如果不知道实例是什么就没用。

假设您有类定义,如:

public class Person
{
    private String name;
    public Person(String name) 
    {
        this.name = name;
    }
    public String getName()
    {
        return name;
    }
}

您创建此类的实例我调用其构造函数并使用关键字new

Person p = new Person("Hugh Laurie");

类的实例是内存中的一个位置,它包含给定对象的状态(例如Person::name),该对象用作模板的类定义。

我想进一步扩展:

  

如果要调用本地内部类的方法,则必须实例化此类

这意味着,您需要实例化该类才能使用上面的示例getName()方法。毕竟,它试图访问内存中给定对象的状态(name);没有那个对象,就没有国家。

答案 3 :(得分:2)

实例化==创建实例==创建类的对象。

答案 4 :(得分:2)

在Java中实例化意味着调用类的构造函数,该类创建该类型的实例或对象。实例化为对象分配初始内存并返回引用。非静态方法需要一个实例,因为它们可以对构造函数创建的非静态字段进行操作。

静态方法不需要实例,也不应该是有状态的,即不应该依赖于更改数据。它们本质上是与类型相关联的自由函数,而不是特定实例。当您想要处理更改数据时,将该数据封装为由实例方法操作的成员字段是可行的方法。

例如,Car类可能具有静态numbeOfWheels(),它始终返回4,但实例numberOfFlatTires()可能返回0-4,具体取决于特定Car的状态。

内部类没有什么不同,静态和非静态内部类之间的唯一区别是非静态可以使用父实例的成员。这可用于降低复杂性。您可能有一个循环操作,该操作具有列表的公共参数和项目的单个参数。您可以使用非静态内部类来封装项目上的操作,同时引用父类中的common参数。

枚举的特殊之处在于每个值都是单个类型的单个实例,它们都是从Enum类主体中定义的公共抽象基类扩展而来的。 Enum值在第一次使用时被实例化,但每个值只有一个实例。

答案 5 :(得分:1)

使用“new”word

创建类的实例

例如Car car = new Car();

答案 6 :(得分:1)

在创建类的实例或简单地称为对象时

例如:Bike abc = new Bike();

使用new关键字创建此对象后,将创建一个新的内存块,并且对象“ abc”现在将指向该新的内存块,在Java中称为实例化。