|
|
|
Работа с объектами(понимание материала)
|
|||
|---|---|---|---|
|
#18+
Друзья, начал изучать java и столкнулся с вопросом. Изучаю книгу Герберта Шилдта, там есть пример где мы можем в качестве аргументов передавать объекты. Я не совсем понимаю как это происходит Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. test2 ob = new test2(15,20); - создается экземпляр класса test2 Вот как он выглядит? То есть объект ob имеет переменные a=15 и b=20 , а метод meth никак не задействован, при создании объекта класса ob , под него просто память выделяется? Создал я получается объект ob и конструктором будут инициализированы мои переменные a=15 и b=20 , далее вызываю метод ob.meth(ob2); получается ему передается ссылка на мой созданный объект ob2 и будут использоваться уже переменные этого объекта, а его метод, объекта ob2 получается никак не задействован. Я вот не пойму как инициализация происходит, то есть я создал объект в котором есть переменные и метод, объект принимает значения конструктора и все. А методы получается служат просто для управления этими переменными и при создании объекта они никак не задействованы, при создании объекта инициализируются только переменные? В книге размыто написано, хочу понять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2016, 23:12 |
|
||
|
Работа с объектами(понимание материала)
|
|||
|---|---|---|---|
|
#18+
reddspvСоздал я получается объект ob и конструктором будут инициализированы мои переменные a=15 и b=20 , далее вызываю метод ob.meth(ob2); получается ему передается ссылка на мой созданный объект ob2 и будут использоваться уже переменные этого объекта, а его метод, объекта ob2 получается никак не задействован. Я вот не пойму как инициализация происходит, то есть я создал объект в котором есть переменные и метод, объект принимает значения конструктора и все. А методы получается служат просто для управления этими переменными и при создании объекта они никак не задействованы, при создании объекта инициализируются только переменные? В книге размыто написано, хочу понять Всё верно. Данные отдельно - методы отдельно. Поля (не статические) это свойства объекта. При создании нового экземпляра "выделяется" память под все поля. Методы это свойства класса, они загружаются тогда когда загружается сам класс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 07:45 |
|
||
|
Работа с объектами(понимание материала)
|
|||
|---|---|---|---|
|
#18+
reddspvА методы получается служат просто для управления этими переменными и при создании объекта они никак не задействованы, при создании объекта инициализируются только переменные? В книге размыто написано, хочу понять Как вы себе представляете инициализацию метода? Выделение памяти под что? Под код? Это и так выделяется при создании объекта класса конструктором. При передаче объектов в качестве аргументов лучше использовать не сами объекты, а ссылки на них! Данный же пример мне кажется некорректным. Во-первых по умолчанию в С область видимости объектов определена как private. Не уверен (но могу ошибаться) что объект test2 даст вам доступ к своим приватным переменным. Может имеет смысл объявить в классе test2 Код: plaintext 1. Во-вторых результат действия meth не проявляется никак, так как передан объект (фактически копия через стек)! Это точно пример из Шилдта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 09:47 |
|
||
|
Работа с объектами(понимание материала)
|
|||
|---|---|---|---|
|
#18+
Если уж на то пошло, то наверно правильнее так Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 09:50 |
|
||
|
Работа с объектами(понимание материала)
|
|||
|---|---|---|---|
|
#18+
SQL2008Как вы себе представляете инициализацию метода? Выделение памяти под что? Под код? Представьте себе код тоже надо где-то хранить. И байт-код и результаты JIT компиляции. SQL2008Это и так выделяется при создании объекта класса конструктором. "Это"? Объекта класса конструктором? SQL2008При передаче объектов в качестве аргументов лучше использовать не сами объекты, а ссылки на них! А что в Java уже можно и так и так? SQL2008Во-первых по умолчанию в С область видимости объектов определена как private. О как. А почему не в C#, например? SQL2008Это точно пример из Шилдта? А это автор одной единственной книги? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 10:08 |
|
||
|
Работа с объектами(понимание материала)
|
|||
|---|---|---|---|
|
#18+
BlazkowiczSQL2008Во-первых по умолчанию в С область видимости объектов определена как private. О как. А почему не в C#, например? Сорри... лажанулся Не понял о каком языке идёт речь. Прошу все вышесказанное мной считать утренним бредом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 10:11 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39347648&tid=2123491]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
116ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 402ms |

| 0 / 0 |
