Как использовать переменную из другого класса java
Если переменная объявлена public , то мы можем получить к ней доступ напрямую, указав имя через точку после имени объекта класса.
Если переменная объявлена private , то необходимо вызвать геттер этой переменной.
class Friend public String name; private String mail; public Friend(String name, String mail) this.name = name; this.mail = mail; > public String getMail() return mail; > > public class App public static void main(String[] args) Friend friend = new Friend("Ivan", "Ivan@mail.ru"); System.out.println(friend.name); // => Ivan System.out.println(friend.getMail()); // => Ivan@mail.ru > >
Как вызвать переменную или метод другого класса через строку?
У меня есть множество классов (Страны) с одинаковыми названиями переменных. И есть другой класс который выводит информацию об этих классах. Сейчас пользуюсь таким методом: При вызове инфо класса страна передает ему свое имя через строку а в инфо классе уже делаю.
void Info(string Country) < if(Country == "Italy")< Text.text = Italy.NameOfVariable; >else if(Country == "Russia") < Text.text = Russia.NameOfVariable; >>
Но так как классов много будет очень много лишнего кода, скажите как можно использовать универсальный метод чтобы брать переменную, если это возможно, может быть и не через строку.
- Вопрос задан более трёх лет назад
- 2670 просмотров
Комментировать
Решения вопроса 1

Denis Gaydak @MrMureno Куратор тега Unity
VR for all
ответьте почему у вас множество классов, а не один класс Country, на основе которого сделали себе объект для России и Италии и так далее?
у них у всех будет одинаковые переменные..
public class Country < public string Name; //и другие нужные поля под страну >/////////// //создаем себе объект класса Country russia = new Country(); russia.Name = "Russia"; ////////// //и вот собственно во все инфо и подобное отдаете объект класса Country //в котором все содержиться void Info(Country currentCountry)
конечно еще есть struct вместо класса. и про наследование можно поговорить если будет что то уникальное для каких-то стран.
но вам еще видимо рано такое..
но в общем то, если сильно все упростить, вы просто не использовали ООП — создав на каждую страну свой собственный класс.
Почему функция не видит public переменную из другого класса?
Всем доброго дня! Скажите пожалуйста почему функция не видит public переменную из другого класса?
//все нужные include тут прописаны просто я их скрыл class Window < private: int windowWidth, windowHeight; float windowWidthPROJ, windowHeightPROJ; void setContextCurrent(); public: GLFWwindow* mWindow; Window(const std::string& title, int width, int height); glm::mat4 view; void loop(); ~Window(); >;
#include #include #include #include #include #include #include "Camera.h" #include "Window.h" void Camera::moveCamera() < if ( glfwGetKey(mWindow, GLFW_KEY_W)) < //тут выскаивает что идентификатор mWindow не определен position += cameraFront * 0.01f; >view = glm::lookAt(position, position + cameraFront, cameraUp); return glm::mat4(view); >
- Вопрос задан более двух лет назад
- 426 просмотров
Комментировать
Решения вопроса 1
Николай @romancelover
программист C++ под Linux
mWindow определён в классе Window, а обращаются к нему в другом классе Camera, в котором члена mWindow нет. Как компилятор узнает о связи между классами Camera и Window, чтобы один использовал члены другого?
Можно обратиться к нему в том случае, если Camera будет наследником Window (но в данной ситуации это скорее всего не нужно), или в Camera будет член типа Window или указатель на него (Window* _window) тогда _window->mWindow будет допустимо.
Ответ написан более двух лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 3

Философы древности собирали своих учеников и беседовали, позволяя им задавать вопросы и тем приобретать мудрость.
Но С++ учится не так.
Вызвать переменную из другого класса
Всем доброго. Пытаюсь программировать на С#, но уперся уже несколько дней — не могу вызвать переменную из другого («а») из другого класса («Class1′).
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 < class Program < static void Main(string[] args) < new Class1(); double b = Class1.a; Console.WriteLine("a = ", b); while (true) < try < string command = Console.ReadLine(); if (command == "stop") < break; >> catch (System.Runtime.InteropServices.COMException) < >> > > >
Класс, от которого надо взять значение переменной «а» максимально упрощен
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 < public class Class1 < public double a = 179; >>
Пробовал гуглить, яндексить и т. д. — не помогло.