Чем переменная отличается от объекта java

Переменные в Java

Невозможно представить программу в Java без переменных. О том, какие они бывают, как объявляются и где применяются, поговорим в этой статье.

Java является объектно-ориентированным языком, которому свойственна абстракция, однако для прикладных задач всегда приходится оперировать известными параметрами. В программировании они называются переменными. Чем java переменная отличается от объекта?

Всё просто – переменная является ячейкой в памяти, где хранится её значение. Любое действие – прямая работа с этим участком памяти. Объект же является более комплексной величиной. Он занимает определённый диапазон памяти, взаимодействие осуществляется через некую передаточную функцию (методы), выраженную в параметрах объекта.
В данной статье мы поговорим именно о переменных, здесь это совсем не тривиальное понятие.

Объявляются переменные java так:

Здесь же при объявлении можно присвоить значение.

тип_данных имя_переменной = значение_переменной;

Также можно объявить одновременно несколько переменных, просто перечисляя их через запятую.

тип_данных имя_переменной1, имя_переменной2…;

Классификация по принадлежности

Выделяется четыре типа java переменных:

  • переменные экземпляра (instance variables);
  • переменные класса (class variables);
  • локальные переменные (local variables);
  • параметры (parameters).

Пусть у нас есть несколько объектов одного класса Automobile(). Помимо общих параметров у них есть уникальные, скажем, максимальная скорость maxSpeed(). Их можно инициировать в теле программы, а можно хранить в нестатических полях класса (объявленных без добавления слова static). Таким образом, каждый экземпляр будет обладать индивидуальным параметром, не зависящим от скоростей других объектов.

public class Automobile< public String name; private double maxSpeed; public Automobile (String autoName)< name = autoName; >>

Переменная класса, или статическая переменная java, напротив, объявляется исключительно с применением слова static. В данном случае её значение будет одинаковым для всех экземпляров. В случае того же автомобиля, введём параметр gearsNum – число передач. Для всех экземпляров оно будет равно 6.

Необязательный модификатор final позволяет присвоить значение переменной только один раз. За соблюдением этого следит компилятор.

public class Automobile< public String model; private double maxSpeed; public static final int gearsNum = 6; >

Локальные переменные и методы в java неизменно связаны. В последних часто фигурируют вспомогательные параметры, которые в дальнейшем коде не нужны. Для объявления локальной переменной нет особой формы инициализации, границы её действия зависят лишь от места объявления. В данном случае — в фигурных скобках внутри метода. При выходе из него переменная будет уничтожена, поэтому обратиться к ней будет уже нельзя.

Крайний случай локальных переменных — это параметры. В частности, классический пример «Hello, World!»:

class HelloWorld < public static void main(String[] args) < System.out.println("Hello World!"); > >

Здесь сразу два параметра. Первая — собственно, «Hello, World!», вторая — аргумент строки args в main.

Классификация по видимости

На основании описанного выше, можно проследить ещё одно деление – по видимости переменных. Существует 4 группы:

  • Public. Данный модификатор переменных доступен всем классам и объектам программы. Объявляется при помощи ключевого слова public в начале строки.
  • Protected. Области видимости java переменных в этом случае ограничены текущим пакетом и подклассами. Объявляется аналогично — ключевым словом protected.
  • Package protected. Модификатор переменных, доступных только внутри пакета. Объявления не требуется, отсутствие ключевых слов указывает на package protected.
  • Private. Переменные, доступные исключительно внутри класса. В данном случае, определить тип переменной можно по ключевому слову private.

Несмотря на то, что приватные элементы доступны внутри класса, вопрос: «как обращаться к private java переменным?» всё же имеет ответ. Для того, чтобы иметь возможность извне поменять значение приватного параметра, достаточно внутри того же класса создать публичный метод. Например так:

class Drive< private int gears; public void setGears(int val) < gears = val; > >

Таким образом, в случае необходимости вы легко сможете изменить значение private переменной.

Указатели — ещё один вариант глобальных переменных. Вспомните, для создания экземпляра объекта мы используем следующую запись:

класс_объекта имя_указателя = new класс_объекта;

Такие переменные называются ссылочными переменными.

Источник

С переменными нельзя проводить те же операции что и с объектом? Чем объект отличается от переменной?

«Все является объектом. Представляйте себе объект как усовершенствованную переменную; он хранит данные, но вы можете «обращаться с запросами» к объекту, требуя у него выполнить операции над собой. Теоретически абсолютно любой компонент решаемой задачи (собака, здание, услуга и т. п.) может быть представлен в виде объекта. «

А разве с переменными нельзя проводить такие же операции? Чем объект отличается от переменной?

Переменная — только данные. Объект обычно включает в себя, кроме собственно данных, и функции обработки данных.
На примере: переменная — мешок с зерном. Объект — самосвал с зерном, его не нужно таскать с места на место, ему можно дать команды куда-то переехать и сгрузить зерно.

В этом тексте вообще хрень какая-то написана. Переменная это просто именованная область памяти где храниться может что угодно (определенного класса или типа, если яп со статической типизацией). Операции производятся не с переменными как таковыми, а с объектами или данными на которые ардесуются эти переменные.
Тут видимо автор хотел объяснить различия между объектами-классами и типами данных. В некоторых яп есть фиксированные простейшие типы данных — числа, строки, символы, и т. п. операции с ними и между ними описаны на уровне стандартных функций и часто не могут быть переопределены. Вместо этого современных языках программирования уходят от концепции выделенных типов данных в место них используют одну единую сущность — объекты-классы, где все операции класса определены в его контексте. Эта парадигма называется «Всё — объект».

Тем же, чем завод отличается от банки с кофе.
. у объекта есть «переменныЕ», и МЕТОДЫ работы с этими переменныМИ, а также КОНСТРУКТОРЫ этих объектов и ДЕ. система их банкротства.
. а переменная, она только либо есть, либо её нет . или не рыба не мясо (

Источник

В чем разница объекта и переменной в java ?

В чем разница объекта и переменной в java? только не кидайте ссылок на какие-то статьи в них воды 90 %, коротко и ясно если можно, буду очень благодарен.

Максим Искусственный Интеллект (184719) new Human() — создание объекта. Human h; — объявление переменной. Human h = new Human(); — объявление переменной, создание объекта, помещение ссылки на объект в переменную.

Java — это простой объектно-ориентированный язык программирования. В Java всё является объектом. Объекты создаются на базе встроенных или определяемых пользователем классов.

Переменная — это основной элемент хранения информации в Java- программе. Переменная характеризуется комбинацией идентификатора, типа и области действия. В зависимости от того, где объявлена переменная, она может быть локальной, например, для кода внутри метода, либо это может быть переменная экземпляра класса, доступная всем методам данного класса.

> В Java всё является объектом.
нет, в Яве есть простые типы данных (например int), однако они автоматически превращаются в объекты, когда это нужно (boxing/unboxing).

Ali Ученик (125) Возможно это из раздела для профи, здесь же просили: «коротко и ясно если можно». Можно ли подробней про (boxing/unboxing)? Заранее спасибо.

Основное отличие — у объекта есть свои переменные (инкапсулированные),
а у переменной нет своего объекта.

Голова Робота Просветленный (36284) Вообще мимо. «у переменной нет своего объекта» А как же переменные объектного типа?

Объекты предоставляют контекст (в рамках контекста легко усвоить замыкания и генераторы) и интерфейсы с правами доступа, мутабельность и прочее. Переменные — это то, что принадлежит контексту и интерфейсу. Соответственно здесь отношение принадлежности/владения. Переменные обязаны принадлежать объектам, объекты (инстансы, сущности, экземпляры) предоставляют интерфейс для доступа к переменным. Де-факто любая переменная обязана принадлежать к объекту класса Application или к объектам, которые запрашивает экземпляр при доступе к любым ресурсам системы.

Источник

Читайте также:  Html select css example
Оцените статью