Nano Hash - криптовалюты, майнинг, программирование

что означает this() в Java

что означает this() в Java?

Похоже, это действительно только при установке

this();

в области переменных класса.

Кто-нибудь имеет представление об этом?

Спасибо.

11.11.2010


Ответы:


1

Это означает, что вы вызываете конструктор по умолчанию из другого конструктора. Это должен быть первый оператор, и вы не можете использовать super(), если он у вас есть. Довольно редко можно увидеть его использование.

11.11.2010

2

Это вызов конструктора без аргументов, который вы можете вызвать в качестве первого оператора в другом конструкторе, чтобы избежать дублирования кода.

public class Test {

        public Test() {
        }

        public Test(int i) {
          this();
          // Do something with i
        }

}
11.11.2010

3

Это означает "вызов конструктора без аргументов". Пример:

public class X {
    public X() {
        // Something.
    }
    public X(int a) {
        this();   // X() will be called.
        // Something other.
    }
}
11.11.2010

4

Это вызов конструктора содержащего класса. См.: http://download.oracle.com/javase/tutorial/java/javaOO/thiskey.html

11.11.2010

5

Вызов this() вызовет конструктор класса без аргументов.

Вы бы использовали это так:

public MyObj() { this.name = "Me!"; }
public MyObj(int age) { this(); this.age = age; }
11.11.2010
  • о боже... не делай этого! public MyObj() {this(Me!);} public MyObj(String nm) { this(name, 0);} MyObj(String nm, int a) { name = nm; возраст = а; } 11.11.2010
  • function не является ключевым словом Java 12.11.2010
  • @barrow: Снова смешиваю мои языки, спасибо. 12.11.2010
  • @Tufu: я привел пример того, как вы будете его использовать, а не правильное использование. 12.11.2010

  • 6

    См. пример здесь: http://leepoint.net/notes-java/oop/constructors/constructor.html

    Вы можете вызвать конструктор явно с помощью this()

    11.11.2010

    7

    класс, вызывающий собственный конструктор по умолчанию. Чаще всего это можно увидеть с аргументами.

    11.11.2010
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..