Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2016, 16:37   #131
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

звучит это все странно но может быть.

как уже говорилось

обьект внутреннего класса не может существовать без внешнего

следовательно внешний обьект будет всегда, потому-что он и пораждает

внутренний. естественно они взаимосвязаны. поэтому и работает это.
RAFA91 вне форума Ответить с цитированием
Старый 27.06.2016, 16:52   #132
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
звучит это все странно
да ничего странного если подумать, данные то как-то надо привязать.
вот и нужна ссылка.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.06.2016, 16:56   #133
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

обратите внимание на эту строку

Код:
System.out.println("x = " + A.this.x);
может теперь поймете что в данном случае обьекты взаимосвязаны.

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

Код:
class A {
      int x = 200;
    public B returnb() {
        B b = new B();
        return b;
    }
    class B {
    	
    	void hfhj()
    	{
    		System.out.println("x = " + A.this.x);
    		x++;
    	}
 
    }
}

class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		A a = new A();
	A.B b = a.returnb();
        b.hfhj();
        System.out.println(a.x);
	 }
RAFA91 вне форума Ответить с цитированием
Старый 27.06.2016, 16:58   #134
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

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

и при желании я могу получить зыс внешнего класса. но не наоборот.
А теперь перечитайте 130 пост
p51x вне форума Ответить с цитированием
Старый 27.06.2016, 17:02   #135
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
обратите внимание на эту строку
эта строчка только подтвердила мои слова о неявной передаче ссылки.
Цитата:
может теперь поймете что в данном случае обьекты взаимосвязаны.
ровно так же как если передать ссылку явно.(но они связаны, это беспорно)
Цитата:
и при желании я могу получить зыс внешнего класса. но не наоборот.
вы можете к нему обратиться, потому что вам его передали.
но внешний this, та же ссылка, и разницы в обращении к нему, или к обычной ссылке(например аргумент) ноль.

просто иной синтаксис только и всего.

единственная разница между двумя внешними классами и внешним-внутренним это в отношении к модификаторам доступа.
вот это реальная разница.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.06.2016, 17:08   #136
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
эта строчка только подтвердила мои слова о неявной передаче ссылки.

.
перед class B поставьте статик и это уже работает как в ++.

так первую реализация в ++ привести сможете ?
RAFA91 вне форума Ответить с цитированием
Старый 27.06.2016, 17:10   #137
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
так первую реализация в ++ привести сможете ?
Цитата:
как я говорил в С++ никто не будет делать это за вас, С++ не подтирает зад как Java.
что непонятного?

сам принцип в С++ повторим, но не синтаксис.
Java просто делает все за вас.
это не то, в чем нуждается С++, и явно не то, за что надо хвалить Java.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.06.2016, 17:12   #138
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

ну сделайте это с подтиранием зада.

какой блин зад ?

есть две реализации со статиком и без.

почему со статиком тогда не подтирает зад.
RAFA91 вне форума Ответить с цитированием
Старый 27.06.2016, 17:14   #139
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
почему со статиком тогда не подтирает зад.
потому статик не передает ссылки за вас, а требует сделать это явно.
это разница между ними.(static nested и nested)

повторю еще раз, чистого nested по синтаксису в C++ нету.
но весь результат повторим и без сахара.(и в принципе он почти аналогичен тому что идет с static nested)
как я сказал, отсутствие сахара нельзя приписать в минусы С++.
все таки С++ язык низко-высокого уровня.(а то это как говорить что я пью хреновый чай, потому что я люблю без сахара, а вы с ним)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 27.06.2016 в 17:18.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.06.2016, 17:18   #140
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

это можно повторить , если в параметр ф передать зыс внешнего класса.
RAFA91 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изучение C++/CLI после С++ RAFA91 Общие вопросы .NET 226 05.04.2016 17:17
С чего начать изучение Java Mkhabenko Свободное общение 9 05.07.2014 19:26
Изучение ООП. Java или C++? Sna1L Помощь студентам 8 21.12.2011 15:22
Изучение языка Java Linel Свободное общение 2 15.12.2011 21:59
c++/cli danzel1 Общие вопросы C/C++ 3 25.07.2011 17:11