java что такое неявная ссылка this

Конструкторы, ключевое слово this, инициализаторы

На предыдущем занятии мы увидели как объявляются классы и создаются их экземпляры с помощью оператора:

ссылка = new имя_класса();

В частности, вот такой строчкой:

создавали объект класса Point:

В действительности, в момент создания объекта всегда происходит вызов специального метода (функции) класса, который называется конструктор:

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Но у нас в классе Point нет никаких методов, там объявлены только две переменные x, y. Все так, но в Java в любой класс автоматически добавляет конструктор по умолчанию, если явно не записаны никакие другие конструкторы. Именно этот конструктор по умолчанию и вызывался при создании объектов класса Point.

Чтобы все было понятнее, давайте объявим свой конструктор в этом классе. Для этого используется такой синтаксис:

имя_класса([аргументы]) <
// тело конструктора (набор операторов)
>

И в нашем случае его можно прописать так:

А что если мы захотим прописать два конструктора и к существующему добавить еще один:

Так тоже можно делать. Теперь наш класс содержит оба конструктора и мы можем вызывать любой из них при создании объектов:

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

Ключевое слово this

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

Очевидно, что здесь x, y будут восприниматься как локальные аргументы и никакого отношения к переменным класса x, y они не будут иметь. Но, можно ли как то явно указать, что мы хотим обратиться именно к полям объекта, а не к аргументам конструктора? Да, можно, и делается это с помощью специального ключевого слова this:

По смыслу this – это ссылка на текущий экземпляр объекта. То есть, если нам внутри самого объекта требуется оперировать ссылкой на него, то для этого используется ключевое слово this. Мало того, через this можно вызывать один конструктор из другого. Например, добавим в класс Point еще одно поле color – цвет точки. И будем по умолчанию инициализировать его нулем:

Смотрите что получается. У нас конструкторах происходит дублирование кода. Это плохой стиль программирования. Чтобы этого избежать, можно во втором конструкторе вызвать сначала первый для начальной инициализации полей, а затем, изменить значения координат x, y:

Вот эта строчка this(); как раз выполняет вызов первого конструктора перед изменением полей x, y. В результате, никакого дублирования не происходит. Вот так двояко можно применять ссылку this: и для доступа к полям текущего объекта, и для вызова конструкторов.

Инициализаторы

Давайте еще раз внимательно посмотрим на пример нашего класса и зададимся вопросом: что делает первый конструктор без аргументов? Фактически, он выполняет начальную инициализацию полей класса Point. Именно поэтому мы его отдельно вызываем во втором конструкторе. Но это не лучший ход. В классах языка Java можно создавать специальный блок, который так и называется – инициализатор. Он автоматически выполняется один раз при создании объекта до вызова конструкторов. Записывается инициализатор следующим образом:

Смотрите, здесь в отдельном блоке задаются начальные значения всех переменных класса, а затем, отдельно вызываются конструкторы. При этом, вызывать первый конструктор из второго уже нет необходимости – данные уже инициализированы указанными значениями. Это очень удобно.

Глядя на первый конструктор, в котором нет никакой реализации, возникает соблазн его попросту убрать из класса Point. Давайте попробуем это сделать и посмотрим к чему это приведет:

При запуске программы компилятор выдал ошибку, что невозможно создать объект при вызове конструктора без аргументов. Вместе с тем, нам бы хотелось иметь такую функциональность – создавать экземпляры без указания конкретных координат. Именно для этого следует иметь первый конструктор без аргументов.

Подвиг 1. Объявить класс Rect для представления прямоугольника, в котором хранятся две координаты: верхнего левого и правого нижнего углов. Реализовать три конструктора: первый – без аргументов; второй с четырьмя аргументами для двух координат; третий – с четырьмя аргументами (координата левого верхнего угла, ширина и высота). Создать несколько экземпляров с вызовом разных конструкторов и выводом значений полей в консоль.

Подвиг 2. Объявить класс Triangle, хранящий три координаты вершин. Координаты представить в виде ссылок на класс Point, который рассмотрен на этом занятии. Реализовать два конструктора: без аргументов и с шестью аргументами (по два на каждую координату). Создать два объекта, вывести координаты вершин по каждому объекту в консоль.

Подвиг 3. Объявить класс Line для представления линии на плоскости, хранящий две координаты: начало и конец линии. Создать два объекта этого класса и в функции main() определить: пересекаются ли эти две линии.

Видео по теме

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#11 Концепция объектно-ориентированного программирования (ООП)

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#12 Классы и создание объектов классов

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#13 Конструкторы, ключевое слово this, инициализаторы

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#14 Методы класса, сеттеры и геттеры, public, private, protected

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#15 Пакеты, модификаторы конструкторов и классов

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#16 Ключевые слова static и final

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#17 Внутренние и вложенные классы

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#18 Как делается наследование классов

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#19 Ключевое слово super, оператор instanceof

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#20 Модификаторы private и protected, переопределение методов, полиморфизм

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#21 Абстрактные классы и методы

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#24 Анонимные внутренние классы

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#25 Перечисления (enum)

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#26 Обобщения классов (Generics)

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#27 Ограничения типов, метасимвольные аргументы, обобщенные методы и конструкторы

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

#28 Обобщенные интерфейсы, наследование обобщенных классов

© 2021 Частичное или полное копирование информации с данного сайта для распространения на других ресурсах, в том числе и бумажных, строго запрещено. Все тексты и изображения являются собственностью сайта

Источник

Ключевое слово this в JavaScript для начинающих

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Что такое this?

Причина, по которой this вызывает столько путаницы у новичков, заключается в том, что контекст this меняется в зависимости от его использования.

Ситуации, когда this указывает на объект window

Если вы попытаетесь обратиться к ключевому слову this в глобальной области видимости, оно будет привязано к глобальному контексту, то есть — к объекту window в браузере.

Попробуйте выполнить этот код, например, в консоли браузера:

Использование this внутри объекта

This и вложенные объекты

Применение this во вложенных объектах может создать некоторую путаницу. В подобных ситуациях стоит помнить о том, что ключевое слово this относиться к тому объекту, в методе которого оно используется. Рассмотрим пример.

Особенности стрелочных функций

Стрелочные функции ведут себя не так, как обычные функции. Вспомните: при обращении к this в методе объекта, этому ключевому слову соответствует объект, которому принадлежит метод. Однако это не относится к стрелочным функциям. Вместо этого, this в таких функциях относится к глобальному контексту (к объекту window ). Рассмотрим следующий код, который можно запустить в консоли браузера.

Прислушаемся к MDN и не будем использовать стрелочные функции в качестве методов объектов.

Использование this в обычных функциях

Обращение к this из функции, которая была объявлена за пределами объекта, а потом назначена в качестве его метода

Ключевое слово new и this

Вот как можно работать со стандартными конструкторами JavaScript.

Вот ещё один пример использования функций-конструкторов.

О важности ключевого слова new

При вызове функции-конструктора с использованием ключевого слова new ключевое слово this указывает на новый объект, который, после некоторой работы над ним, будет возвращён из этой функции. Ключевое слово this в данной ситуации весьма важно. Почему? Всё дело в том, что с его помощью можно, используя единственную функцию-конструктор, создавать множество однотипных объектов.

Итоги

Уважаемые читатели! Возникали ли у вас сложности с пониманием ключевого слова this в JavaScript?

Источник

Java ключевое слово this, как работает?

Всем привет!
Просьба пояснить для начинающего

Я знаю разные ситуации в которых можно использовать ключевое слово this в Java. Но одно определение мне до сих пор непонятно «ссылка на текущий обьект», на какой текущий?
Что если в классе не создано обьектов?
И самое главное, что если в классе несколько обьектов?
Какой из них «текущий»?

Я читал в одной статье что при создании класса неявно создаётся обьект класса, именно this на него и ссылается. Но тогда слово this не может заменять обьект при вызове переменной обьекта, по типу object.variable тоже самое что this.variable, но как это возможно? Ведь this указывает на некий обьект который мы не создавали. Кароче это определение совсем не ясное «текущий обьект».

Простой 2 комментария

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Также не совсем понятно его использование (this и super) для вызова из одного конструктора другого, ни разу в жизни не пригодилось, и даже не могу представить ситуацию в которой такое может пригодится.

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Так вот. this в ЭКЗЕМПЛЯРЕ указывает НА ЭТОТ САМЫЙ экземпляр.

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

е имеет смысла, если у класса 10000000 обьектов зданий,

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

GavriKos, Вы не понимаете очём я, я не про поля класса, про поля класса всё понятно.
he various usage of keyword Java ‘THIS’ in Java is as per the below,

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

КОд не на джаве, но принцип тот же

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Похоже тут никто из комментаторов понятия не имеют, как на самом деле работает их код.

Вы пишите такой код:

Компилятор же сгенерирует байткод, который примерно соответствует такому коду:

Так что по сути this это не обычное ключевое слово, это просто имя параметра в методе.

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Артём Петренков,
he various usage of keyword Java ‘THIS’ in Java is as per the below,

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Если всеравно непонятно то могу набросать примером простеньких. Также рекомендую почитать
это и примеры тут

Обобщая выше сказанное(с нюансами):
— в java ВСЁ и ВСЕГДА это инстанс какого либо класса
— исходя из пункта выше ВСЕГДА на любой класс существует хотябы один инстанс
— исходя из пункта выше часто бывают случаи когда необходимо обратиться к переменной\методу родителя через super. Также возникают необходимости обратиться к методу\переменной именно этого конкретного инстанса или передать этот инстанс куда либо дальше не имея ссылки на этот инстанс.

Источник

Ключевое слово THIS в Java

Ключевое слово THIS – это ссылочная переменная в Java, которая ссылается на текущий объект.

Ниже перечислены различные варианты использования ключевого слова «this» в Java:

Примеры

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Давайте скомпилируем и запустим код.

Наш ожидаемый результат для A и B должен быть инициализирован значениями 2 и 3 соответственно.

Но значение равно 0, почему? Давай подумаем.

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

В методе Set data аргументы объявляются как a и b, а переменные экземпляра также именуются как a и b.

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Во время выполнения компилятор запутался. Является ли «a» слева от назначенного оператора переменной экземпляра или локальной переменной. Следовательно, он не устанавливает значение ‘a’ при вызове набора данных метода.

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Решением является ключевое слово “this”

Добавьте оба «a» и «b» с ключевым словом «this», за которым следует оператор точки (.).

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Во время выполнения кода, когда объект вызывает метод ‘setdata’. Ключевое слово ‘this’ заменяется обработчиком объекта “obj.” (См. Изображение ниже).

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Итак, теперь компилятор знает,

Переменные инициализируются правильно, и отображается ожидаемый результат.

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

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

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Но на этот раз вы создаете два объекта класса, каждый из которых вызывает метод набора данных.

Как компилятор определит, должен ли он работать с переменной экземпляра объекта 1 или объекта 2.

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Что ж, компилятор неявно добавляет переменную экземпляра с ключевым словом «this» (рисунок ниже).

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Таким образом, когда объект 1 вызывает метод набора данных, к переменной экземпляра добавляется его ссылочная переменная.

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Пока объект 2 вызывает метод набора данных, переменная экземпляра объекта 2 изменяется.

java что такое неявная ссылка this. Смотреть фото java что такое неявная ссылка this. Смотреть картинку java что такое неявная ссылка this. Картинка про java что такое неявная ссылка this. Фото java что такое неявная ссылка this

Этот процесс заботится самим компилятором. Вам не нужно явно добавлять ключевое слово this, если нет исключительной ситуации, как в нашем примере.

Пример: чтобы узнать, как использовать this ключевое слово:

Шаг 1) Скопируйте следующий код в блокнот.

Шаг 2) Сохранение, компиляция Запустите код. Шаг 3) Значение ab отображается как ноль? Чтобы исправить ошибку, добавьте строку # 6 7 с ключевым словом “this”.

Шаг 4) Сохраните, скомпилируйте и запустите код. На этот раз значения ab установлены на 2 3 соответственно.

Источник

В чем разница между «явно» и «неявно» в языке программирования?

Я хотел бы иметь ясное и точное понимание разницы между ними.

Я предполагаю, что использование ключевого слова this означает неявную ссылку (являющуюся чем-то, принадлежащим классу), в то время как явно (что-то не принадлежащее самому классу), как переменная параметра, передаваемая в метод.

Конечно, мои предположения могут быть ошибочными, поэтому я прошу разъяснений.

4 ответа

Явные средства, сделанные программистом. Неявные средства, выполняемые JVM или инструментом, а не Программистом.

Например: Java неявно предоставит нам конструктор по умолчанию. Даже если программист не написал код для конструктора, он может вызвать конструктор по умолчанию.

Явное противоположно этому, т.е. программист должен писать.

Вы уже получили ответ, но я хотел бы добавить еще несколько.

Неявный: который уже доступен в вашем языке программирования, например методы, классы, типы данных и т. д.

-неявный код решает трудности программиста и экономит время разработки.

-it предоставляет оптимизированный код. и так далее.

Явный: который создается программистом (вами) в соответствии с их (вашими) требованиями, например, класс вашего приложения, такой метод, как getName (), setName () и т. д.

1: неявное приведение (расширяющее преобразование)

Тип данных меньшего размера (занимающий меньше памяти) назначается типу данных большего размера. Это делается неявно JVM. Меньший размер увеличивается до большего размера. Это также называется автоматическим преобразованием типа.

В приведенном выше коде 4-байтовому целочисленному значению присвоено 8-байтовое двойное значение.

Тип данных большего размера (занимающий больше памяти) не может быть назначен типу данных меньшего размера. JVM не делает этого неявно и требует явного приведения типов; операция приведения, которую должен выполнить программист. Более высокий размер сужается до меньшего размера.

1 2 двойных х = 10,5; // 8 байтов int y = x; // 4 байта ; вызывает ошибку компиляции. В приведенном выше коде 8-байтовое двойное значение сужено до 4-х байтового значения типа int. Это вызывает ошибку. Давайте явно введем приведение.

1 2 двойной x = 10,5;
int y = (int) x; Двойной x явно преобразуется в int y. Правило большого пальца: с обеих сторон должен существовать один и тот же тип данных.

Я попытаюсь предоставить пример аналогичной функциональности для разных языков программирования, чтобы различать неявное и явное.

Неявно : когда что-то доступно как функция / аспект используемых конструкций языка программирования. И вам ничего не нужно делать, кроме как напрямую вызывать соответствующие функции через API / интерфейс.

Явный : когда требуется вмешательство пользователя / программиста для вызова / вызова определенной функции, без которой желаемое действие не будет выполнено.

Например, в C ++ освобождение памяти (читай: версия сборки мусора) должно происходить с помощью явного вызова операторов delete и free.

Надеюсь, это поможет вам четко понять разницу.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *