powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / ошибки начинающих java-программистов
19 сообщений из 69, страница 3 из 3
ошибки начинающих java-программистов
    #33354840
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
именно причем. я ж привел пример, из которого видно, что не с
immutable объектами такое не пройдет.

я имею ввиду, что :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
  public static void setDate(String line) {
     line.setText("qwerty");//(Предположим, что такой метод есть) не сработает! так как String - immutable.
  }
  public static void setDate(String line) {
     line = "qwerty";//сработает! так как создается новый объект. line указывает на него. Но глобальная переменная не изменилась!
  }
  public static void setAge(Person line) {
     line.setAge( 20 );//сработает! так как Person - НЕ! immutable.
  }
  

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354853
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
...// (Предположим, что такой метод есть) не сработает! так как String - immutable.

:))
ок, давай теперь разбираться, что же такое иммутабле объекты???
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354867
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
че предполагать то?
метода String.setText() нет, так как действительно String реализует паттерн immutable, но к передаче параметров это не имеет отношения.
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354870
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessen
> автор
> ...//(Предположим, что такой метод есть) не сработает! так как String - immutable.

> :))
> ок, давай теперь разбираться, что же такое иммутабле объекты???




immutable - читай final.

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354875
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timm...но к передаче параметров это не имеет отношения.
вот и про то же
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354879
Naug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторприм. редактора: верно - ВСЕ ПАРАМЕТРЫ В JAVA ПЕРЕДАЮТСЯ ПО ЗНАЧЕНИЮ. Если параметр - ссылка на объект, то ЗНАЧЕНИЕМ является ЗНАЧЕНИЕ самой ссылки, а не значение разнообразных полей в объекте, коих может быть великое множество, как по количеству, так и по разнообразию типов
:(
1)все параметры передаются по значению
2)если параметр-ссылка смотри пункт первый?
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354881
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessen Timm...но к передаче параметров это не имеет отношения.
вот и про то же
т.е.
вот и я про то же
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354885
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Naug
> :(
> 1)все параметры передаются по значению
> 2)если параметр-ссылка смотри пункт первый?Тема==Ответить



жжешь :-))))

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354889
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
короче - при передаче в метод объектов, реализующих паттерн immutable, значение объекта не может измениться ни при каких обстоятельствах (впрочем, оно никогда не может измениться ).
в противном случае - может измениться, если вызываются методы этого объекта. вот и все. при этом если попытаться присвоить переданный параметр другому объекту, то влияния на значение переданного объекта (на его поля, в метод то передастся значение ссылки ) это никакого не окажет.
типа вот :-)
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354892
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deady Naug
> :(
> 1)все параметры передаются по значению
> 2)если параметр-ссылка смотри пункт первый?Тема==Ответить



жжешь :-))))

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3

это правда
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354896
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timm
> короче - при передаче в метод объектов, реализующих паттерн
> immutable, значение объекта не может измениться ни при каких
> обстоятельствах (впрочем, оно никогда не может измениться ).
> в противном случае - может измениться, если вызываются методы
> этого объекта. вот и все. при этом если попытаться присвоить
> переданный параметр другому объекту, то влияния на значение
> переданного объекта (на его поля, в метод то передастся значение
> ссылки ) это никакого не окажет.
> типа вот :-)




я это и толдычу уже несколько постов.

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354903
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты чета талдычишь про иимьютабл объекты, которые передаются в метод. а что про них говорить то??
ну не могут они в принципе измениться, нигде. а я пытался понять что происходит при передаче объекта вообще.
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354932
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может вот так было бы понятней:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 public   class  Test {

         public   static   void  main(String[] args) {
                Person person =  null ;
                System.out.println("Person before: "+person);
                setNewAge(person);
                System.out.println("Person after: "+person);
        }

         public   static   void  setNewAge(Person person) {
                person =  new  Person();
                person.setAge( 10 );
        }
}

глобальная пременная person, все равно останется null;
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354936
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
че в топик-то так нагадили?
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354940
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessenможет вот так было бы понятней:
Код: plaintext
\n public   class  Test {\n\n         public   static   void  main(String[] args) {\n                Person person =  null ;\n                System.out.println("Person before: "+person);\n                setNewAge(person);\n                System.out.println("Person after: "+person);\n        }\n\n         public   static   void  setNewAge(Person person) {\n                person =  new  Person();\n                person.setAge( 10 );\n        }\n}\n

глобальная пременная person, все равно останется null;

было
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354944
Naug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timm Deady Naug
> :(
> 1)все параметры передаются по значению
> 2)если параметр-ссылка смотри пункт первый?Тема==Ответить



жжешь :-))))

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3

это правда
а что такое значение ссылки? Если ВСЁ ПЕРЕДАЁТСЯ ПО ЗНАЧЕНИЮ то откуда термин ссылки вообще в яве взялся?

вот есть объект, отправляем его как параметр. Соответственно метод получает ссылку на объект и всё что происходит с переменной внутри метода изменяет изначальный объект.
Однако если если переменной внутри метода присваивается новое значение то получается что эта ссылка указывает на новый объект все изменения с которым идут лесом после закрытия метода.
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354945
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timm wessenможет вот так было бы понятней:
Код: plaintext
\n public   class  Test {\n\n         public   static   void  main(String[] args) {\n                Person person =  null ;\n                System.out.println("Person before: "+person);\n                setNewAge(person);\n                System.out.println("Person after: "+person);\n        }\n\n         public   static   void  setNewAge(Person person) {\n                person =  new  Person();\n                person.setAge( 10 );\n        }\n}\n

глобальная пременная person, все равно останется null;

было

я оттуда и взял, но немного переделал.
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33354954
Liner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно почитать тынц
...
Рейтинг: 0 / 0
ошибки начинающих java-программистов
    #33356608
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
19 сообщений из 69, страница 3 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / ошибки начинающих java-программистов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]