вы также можете использовать это:
.dropdown {
height: 0px;
width: 0px;
opacity: .0;
color: white;
}
.dropdown:hover {
height: 20px;
width: 50px;
opacity: 1;
transition: opacity 200ms;
/* Safari */
-webkit-transition: opacity 200ms;
}
Java (и любой другой язык программирования) моделируется в терминах типов и значений . На теоретическом уровне значение является представлением для некоторого кванта информации, а тип представляет собой набор значений. Когда мы говорим, что значение X является экземпляром типа Y, мы просто говорим, что X является членом набора значений, который является типом Y.
Так вот что термин «экземпляр» на самом деле означает: он описывает отношения не вещь.
Система типов языка программирования Java поддерживает два типа типов: примитивные типы и reference типы . Типы ссылок далее подразделяются на типы массивов и . Объект Java является экземпляром ссылочного типа.
Объект - это экземпляр класса или массив. ( JLS 4.3.1 )
blockquote>Это теоретический тип.
На практике большинство разработчиков Java обрабатывают слова «экземпляр» и «объект» как синонимы. (И это включает меня, затем я пытаюсь что-то объяснить быстро.) И большинство разработчиков используют слово «значение», а не «экземпляр», чтобы ссылаться на экземпляр примитивного типа.
В java объекты генерируются в кучевой памяти. Для этого требуется, чтобы ссылка была указана и использована в нашем приложении. Ссылка имеет расположение памяти объекта, с помощью которого мы можем использовать объекты в нашем приложении. Ссылка вкратце - это не что иное, как имя переменной, в которой хранится адрес объекта, созданного в ячейке памяти.
instance
- общий термин для object
. FYI, Object
является классом.
Например,
Class A{
}
A ref = new A();
Для приведенного выше фрагмента кода ref является ссылкой для объекта класса A, сгенерированного в куче.
Честно говоря, я чувствую себя более комфортно с определениями блога Альфреда :
Объект: объекты реального мира разделяют две основные характеристики, состояние и поведение. У человека есть состояние (имя, возраст) и поведение (бег, сон). Автомобиль имеет состояние (текущая скорость, токовая передача) и состояние (тормоз, сменное снаряжение). Программные объекты концептуально похожи на объекты реального мира: они также состоят из состояния и связанного с ним поведения. Объект сохраняет свое состояние в полях и раскрывает его поведение с помощью методов.
Класс: это «шаблон» / «чертеж», который используется для создания объектов. В принципе, класс будет состоять из поля, статического поля, метода, статического метода и конструктора. Поле используется для хранения состояния класса (например: имя объекта Student). Метод используется для представления поведения класса (например: как объект Student собирается стоять). Конструктор используется для создания нового экземпляра класса.
Экземпляр: экземпляр является уникальной копией класса, представляющего объект. Когда создается новый экземпляр класса, JVM будет выделять комнату памяти для этого экземпляра класса.
Учитывая следующий пример:
public class Person {
private int id;
private String name;
private int age;
public Person (int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (id != other.id)
return false;
return true;
}
public static void main(String[] args) {
//case 1
Person p1 = new Person(1, "Carlos", 20);
Person p2 = new Person(1, "Carlos", 20);
//case 2
Person p3 = new Person(2, "John", 15);
Person p4 = new Person(3, "Mary", 17);
}
}
В случае 1, там являются двумя экземплярами класса Person, но оба экземпляра представляют один и тот же объект.
В случае 2 есть два экземпляра класса Person, но каждый экземпляр представляет другой объект.
Таким образом, класс, объект и экземпляр - это разные вещи. Объект и экземпляр не являются синонимами, как это предлагается в ответе, выбранном в качестве правильного ответа.
Класс в основном является определением и содержит код объекта. Объект является экземпляром класса
, например, если вы говорите
String word = new String();
, класс является классом String, который описывает слово объекта (экземпляра).
Когда класс объявлен, память не выделяется, поэтому класс является просто шаблоном.
Когда объект класса объявлен, выделяется память.
Концепция классов и объектов заключается в инкапсуляции логики в единый блок программирования. Классы - это чертежи, из которых создаются объекты.
Вот пример класса, представляющего Car:
public class Car {
int currentSpeed;
String name;
public void accelerate() {
}
public void park() {
}
public void printCurrentSpeed() {
}
}
Вы можете создать экземпляры объекта Car следующим образом:
Car audi = new Car();
Car toyota = new Car();
Я взял пример из этого учебника
Определение «Объект является экземпляром класса», концептуально неверно, но верно в соответствии с реализацией. На самом деле объектно-ориентированные функции взяты из реальной жизни, для того, чтобы сосредоточить ум программиста от большего до меньшего. В реальной жизни классы предназначены для управления объектом. Например, у нас есть каста, религия, национальность и многое другое. Эти касты, религия, национальность являются классами и не имеют существования без людей. Но в реализации нет существования объектов без классов. Объект-Объект - это дискретный объект, имеющий некоторый четко определенный атрибут. Здесь дискретный означает нечто, что делает его уникальным от другого. Хорошо определенный атрибут имеет смысл в некотором контексте. Класс - классификация объекта, имеющего некоторое общее поведение или объекты некоторого общего типа.
Класс - это проект, который вы используете для создания объектов. Объект - это экземпляр класса - это конкретная вещь, которую вы создали с помощью определенного класса. Итак, «объект» и «экземпляр» - это одно и то же, но слово «экземпляр» указывает на отношение объекта к его классу.
Это легко понять, если вы посмотрите на пример. Например, предположим, что у вас есть класс House
. Ваш собственный дом является объектом и является экземпляром класса House
.
// Class House describes what a house is
class House {
// ...
}
// You can use class House to create objects (instances of class House)
House myHouse = new House();
House sistersHouse = new House();
Класс House
описывает концепцию того, что такое дом, и есть конкретные, конкретные дома, которые являются объектами и экземпляры класса House
.
Примечание. Это то же самое в Java, что и во всех объектно-ориентированных языках программирования.
Класс - это шаблон или тип. Объект - это экземпляр класса.
Например:
public class Tweet {
}
Tweet newTweet = new Tweet();
Tweet - это класс, а newTweet - объект класса.
Любые данные, хранящиеся в вашем компьютере, и процессы в самом базовом представлении представляют собой строку бит. То, как эти биты интерпретируются, осуществляется через типы данных. Типы данных могут быть примитивными или сложными. Примитивные типы данных - например, int или double. Они имеют определенную длину и конкретный способ интерпретации. В случае целого числа обычно используется первый бит для знака, остальные используются для значения.
Сложные типы данных могут быть комбинациями примитивных и других сложных типов данных и называются «Class "в Java.
Вы можете определить сложный тип данных PeopleName, состоящий из двух строк, называемых именем и фамилией. Каждая строка в Java является еще одним сложным типом данных. Строки в обратном порядке (возможно) реализованы с использованием примитивного типа данных char, для которого Java знает, сколько бит они берут для хранения и как их интерпретировать.
Когда вы создаете экземпляр типа данных, вы получаете объект и ваши компьютеры резервируют для него некоторую память и запоминают его местоположение и имя этого экземпляра. Экземпляр PeopleName в памяти займет пространство двух переменных String плюс немного больше для бухгалтерии. Целое число занимает 32 бита в Java.
Сложные типы данных могут иметь назначенные им методы. Методы могут выполнять действия по своим аргументам или по экземпляру типа данных, вызываемого этим методом. Если у вас есть два экземпляра PeopleName, называемых p1 и p2, и вы вызываете метод p1.getFirstName (), он обычно возвращает первое имя первого человека, но не второго человека.
Хотя приведенные выше ответы верны, другим способом мышления о классах и объектах было бы использование примеров реального мира: в классе с именем Animal могут содержаться такие объекты, как Cat, Dog или Fish. Объект с названием Библии будет иметь классную книгу и т. Д. Классы являются общими, объекты специфичны. Этот мысленный пример помог мне, когда я изучал Java.
Класс - это тип данных. Этот тип используется для создания объекта.
Синтаксис объекта:
Classname var=new Classname();
Но, например, создание возвращает только указатель, ссылающийся на синтаксис объекта:
Classname varname;
Если у вас есть программа, которая моделирует автомобили, у вас есть класс для представления автомобилей, поэтому в коде вы можете сказать:
Car someCar = new Car();
someCar теперь является экземпляром класса Car. Если программа используется на ремонтной мастерской, а someCar представляет ваш автомобиль в своей системе, то ваш автомобиль является объектом.
Итак, автомобиль - это класс, который может представлять любой автомобиль реального мира. SomeCar - это пример Класс автомобиля и someCare представляют один объект реальной жизни (ваш автомобиль)
, однако экземпляр и объект очень часто используются взаимозаменяемо, когда дело доходит до обсуждения кодирования
Мне нравится объяснение Джеспера в неспециалистических терминах
. Импровизируя примеры из ответа Йеспера,
class House {
// blue print for House Objects
}
class Car {
// blue print for Instances of Class Car
}
House myHouse = House new();
Car myCar = Car new();
myHouse и myCar являются объектами
myHouse - это экземпляр of House (связывает Object-myHouse с его классом) myCar является экземпляром Car
коротким
«myHouse - это экземпляр класса House», который аналогичен сказанному « myHouse - это объект типа House "