Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/55: Рейтинг темы: голосов - 55, средняя оценка - 4.65
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496

Одинаковые переменные в одном методе, классе или функции

25.07.2018, 02:11. Показов 12126. Ответов 50
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Читаю JavaRush.

Написано -

- Нельзя создать две переменных с одинаковыми именами в одном методе. А в разных методах – можно.

Читаю дальше.

И на другой странице встречаю такое -

- Мы не можем объявить другую переменную с таким же именем в этой же функции или классе.

Я что то не улавливаю, в чем тут разница или подвох.

Объясните пожалуйста простым доступным языком.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.07.2018, 02:11
Ответы с готовыми решениями:

Почему в локальном классе доступны финальные переменные или переменные инициализированные при объявлении
Добрый вечер. Объясните пожалуйста, почему в локальном классе могут использоваться только финальные переменные или переменные которые были...

Глобальная переменная получает данные в одном методе но при запуске второго ,остается равна нулю или null
Здравствуйте, недавно познакомился с ASP.NET ,пишу по курсовому проекту сайт-магазин, у меня появилась проблема с реализацией корзиной...

Осветить переменные на одном графике с помощью функции subplot
осветить переменные на одном графике с помощю функции subplot. Помогите))

50
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
08.08.2018, 00:05
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от ViktorFX Посмотреть сообщение
никто ее извне не видит
Не понятно что подразумевается под никто не видит.
Цитата Сообщение от ViktorFX Посмотреть сообщение
почти как инстанс
Только без "почти как". Лямбды по сути чтоб меньше писать и сделать код чище.
Java
1
Runnable r = () -> System.out.println("Howdy, world!");
И передавайте лямбду куда угодно.
1
08.08.2018, 00:24

Не по теме:

Цитата Сообщение от JIeIIIa Посмотреть сообщение
Троли, троли... не те вопросы они в темах задают :D
Мой знакомый видел Билла Гейтса в реале. У меня нет оснований ему не верить.
Однако я привожу свой код, как некоторое доказательство моей уверенности.
Вы же приводите мне ... вы даете ссылки на документацию, которую сами внимательно не прочитали.
Вот, iSmokeJC, мне понятна его аргументация...
JIeIIIa, Покажите

Вы получатся сами себе противоречите:
Из вашей ссылки "Всякий раз, когда создается объект, он всегда хранится в куче, а в памяти стека содержится ссылка на него. "
То есть ссылка, она все таки есть. Но передать её нельзя? Понятно что ссылку нельзя передать по ссылке,
хотя и так можно. Мы передаем ссылку по значению адреса. Спор ни о чем.

0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
08.08.2018, 00:33
vvm28, Вы знаете определение понятий pass-by-value и pass-by-reference? Вы все время объясняете pass reference, а это не то же самое, что pass-by-reference.
Ссылки на документацию Вам мало. Примеров кода - мало. Объяснений - мало.

Повторю еще раз. Запустите код и посмотрите какой ответ получите:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Foo {
  public static void bar(Object o) {
      o = new Object();
  }
  public static void main(String... args) {
      Object object = null;
      bar(object);
      if(object == null) {
         System.out.println("Параметр был передан как by value");
      } else {
         System.out.println("Параметр был передан как by reference");
      }
  }
}
1
 Аватар для vvm28
773 / 541 / 67
Регистрация: 22.12.2013
Сообщений: 2,500
Записей в блоге: 26
08.08.2018, 01:30
JIeIIIa, Что вы мне тулите ссылку на null.

Вот мой ответ:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
 
 */
package jIeIIIa;
 
/**
 *
 * @author vvm
 */
public class FooPr {
 
    public Object o;
 
    FooPr() {
        o = new Object();
 
    }
    public Object k;
 
    public void bar(Object o) {
 
        k = o;
    }
 
    public static void main(String... args) {
 
        Object object = new Object(); // создать объект
        FooPr fooPr = new FooPr();
        // передать объект в метод
        fooPr.bar(object);
 
        if (fooPr.k.equals(object)) {
            System.out.println("Параметр был передан как by reference");
        } else {
 
            System.out.println("Параметр был передан как by value");
 
        }
 
    }
}
1
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
08.08.2018, 01:39
vvm28, верните, пожалуйста, из метода НОВЫЙ объект. Не объект с новыми значениями полей, а именно НОВЫЙ ОБЪЕКТ. Когда не сможете это сделать подумайте почему.

Добавлено через 2 минуты
И баг-репорт в Оракл напишите, а то по-вашему у них ошибка в документации)
1
 Аватар для vvm28
773 / 541 / 67
Регистрация: 22.12.2013
Сообщений: 2,500
Записей в блоге: 26
08.08.2018, 02:05
JIeIIIa, Вы не очень внимательны. Никто не говорил об ошибке в документации.
Мы передали в метод ссылку на объект. Если бы мы передали значение, то мы не смогли бы поменять никакое поле объекта.
Мы бы просто передали значение, и значение бы не изменилось в объекте.
Ну да мы передали ссылку как значение и это значение адреса ссылки.

Добавлено через 2 минуты
Цитата Сообщение от JIeIIIa Посмотреть сообщение
пожалуйста, из метода НОВЫЙ объект.
Но это уже будет новый объект. Он будет новый, просто ссылка на новый объект.
Предыдущая ссылка исчезнет. Это будет новый объект, в другой области памяти.
1
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
08.08.2018, 02:09
Цитата Сообщение от vvm28 Посмотреть сообщение
не смогли бы поменять никакое поле объекта.
Не верно.
Цитата Сообщение от vvm28 Посмотреть сообщение
Ну да мы передали ссылку как значение и это значение адреса ссылки.
Браво. И это называется передача по значению. А вот если бы мы могли передать ссылку на значение адреса ссылки - это бы уже была передача по ссылке.
В последний раз: не путайте передача ссылки и передача ПО ссылке.

Добавлено через 1 минуту
vvm28, жду от Вас перевод на русский цитаты из документации (вроде как сошлись, что в документации ошибок нет):
Reference data type parameters, such as objects, are also passed into methods by value.
1
 Аватар для vvm28
773 / 541 / 67
Регистрация: 22.12.2013
Сообщений: 2,500
Записей в блоге: 26
08.08.2018, 02:14
Цитата Сообщение от vvm28 Посмотреть сообщение
JIeIIIa,
и то о чем вы говорите тоже возможно.
Как я понимаю вы хотите передать ссылку на объект, и вернуть эту ссылку.
Вы хотите менять ссылку или объект? Вот в чем вопрос.
1
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
08.08.2018, 02:17
Цитата Сообщение от vvm28 Посмотреть сообщение
Вы хотите менять ссылку или объект?
В данный момент хочу чтоб Вы цитату из документации перевели.
1
08.08.2018, 05:38

Не по теме:

Вы все еще кипятите? тогда мы идем к вам!
Ребят, когда наконец выясните что передача идет по значению -поведайте мне какой язык программирования самый лучший
:D

0
10.08.2018, 21:20

Не по теме:

quote="Welemir1;12585358"]Вы все еще кипятите?[/quote]
Весь мир живет ненавистью. Но так хотелось отлюбить Oracle.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.08.2018, 21:20

Как обьявить переменную в одном классе и что бы ее было видно в дочернем классе
У меня есть основной класс с названием Root один из его членов наследует дочерний класс SubRoot. Скажите как объявить, что бы один из...

Переменная изменилась в одном классе, куда "воткнуть" код в другом классе
Привет всем, Достало это событийное программирование. :wall: Я не делаю событийные "калькуляторы" и "конвертеры",...

В одном классе нужно создать массив, а в классе program его вывести. "Не все ветви кода возвращают значение"
В одном классе нужно создать массив, а в классе program его вывести, помогите, как разобраться namespace con { class Array ...

Переменные в методе класса
При использовании аргумента параметра restaurant_name и cuisine_type в функции describe_restaurant() почему нельзя использовать параметры...

Глобальные переменные в методе класса
Я объявляю класс Button (в .h файле): #pragma once #include <stdio.h> #include <allegro5/allegro.h> #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
51
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru