Как лучше всего определить слова «класс» и «объект» для того, кто их не использовал? - PullRequest
22 голосов
/ 10 сентября 2010

Мой сосед берет «Введение в Java» и попросил меня помочь объяснить некоторые из концепций первого дня. Я понял, что, поскольку я делаю это каждый день, у меня нет ума новичка, и трудно связать некоторые из этих вещей с нуля.

То, что я на самом деле не тривиален, чтобы объяснить, это "что, черт возьми, класс?"


Лучшее, что у меня есть:

  • A переменная содержит некоторые данные; одна переменная может быть именем, другая переменная может быть вашим весом в фунтах.

  • A метод - это функция, она делает вещи и может делать вещи с этими переменными. Метод может отображать ваше имя на экране или сообщать вам, какой вес вы должны потерять, чтобы иметь хорошее соотношение ИМТ.

  • Объект содержит переменные и методы; один объект может представлять вас, второй объект может представлять меня.

  • A class является своего рода планом или шаблоном, который описывает методы и переменные, которые будут в каждом объекте. Объект является экземпляром (экземпляром) класса; объект - это что-то, а класс - это просто планы сделать что-то.

Продолжая пример, у нас есть объект Person, который создается для хранения данных Алисы, и другой объект Person для хранения данных Боба, а другой - для Кэрол и т. Д.


Как мне настроить этот пример, чтобы придать ему больше смысла, и / или какой подход лучше? Слово «созданный» кажется слишком тяжелым на данный момент.

(я думаю, что это полезный вопрос, но он явно субъективен; помечен как вики сообщества).

Ответы [ 29 ]

39 голосов
/ 11 сентября 2010
23 голосов
/ 10 сентября 2010

Класс: Объект :: Проект: Здание

13 голосов
/ 10 сентября 2010

«Авто» это класс. Моя машина, сидящая на моей дороге, является экземпляром (объектом).

3 голосов
/ 10 сентября 2010

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

3 голосов
/ 10 сентября 2010

Объект - это вещь .Класс - это категория вещей.

"Человек" - это класс;Вы - объект, экземпляр класса Person.Кроме того, слово «вы» можно рассматривать как переменную, поскольку оно относится к человеку, но не всегда к одному и тому же человеку.

3 голосов
/ 10 сентября 2010

Один из примеров, которые я использую во время моих курсов по Java, - Human класс .

Каждый, кто читает это, - Human (я надеюсь, что так!), Мыу всех есть наши различия, наши сходства, но в конце мы все Human (в конце концов).

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

Есть также общие знания, которыми человечество поделилось, такие принципы, как "теорема Пифагора".Это знание распространено, его можно интерпретировать как статическое поле (я знаю, что это преувеличение), что означает, что это знание содержится не только в одном человеке, но и в человечестве.

КаждоеHuman может делать такие вещи, как ходьба, разговор и т. Д. Это известно как метод , ходьба одинакова для всех, но когда я хожу, не все ходят.Ходьба влияет только на Human экземпляр , который делает это, но все же он определяется Human классом


Если вы хотитеуглубиться в ООП, Обучение ООП непрограммистам

3 голосов
/ 10 сентября 2010

Объектно-ориентированное программирование - это создание программ, использующих в качестве строительных блоков "вещи", которые существуют в реальном мире, эти вещи реального мира называются объектами, следовательно, объект ориентирован

Например, если вы создаете программу адресной книги, вы можете определить следующие объекты:

person, address, phone

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

Имея это в виду, вы можете начать описывать некоторые концепции.

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

Person:
   - name 
   - last name 
   - phone number 
   - address 

Etc.

Адрес может иметь:

 Address:
    - street 
    - number
    - city 
    - zip code 
    - country 

И так далее. Как вы можете заметить, класс me можно определить в терминах других классов, например, в этом контексте у человека есть один адрес.

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

 onePerson  ofType Person is (  
     - name = "Oscar"
     - last name = "Reyes" 
     - phone number = "56 58 11 11"
     - address = anAddress ofType Address (
                     - street = "Tecolotes" 
                     - number = 32
                     - city   = "D.F." 
                     - zip code = 23423
                     - country = "Mexico"
                 ) 
  )

Итак, этот объект является классом, созданным с помощью данных. Другие записи в адресной книге - это другие объекты с другими данными.

Это показывает разницу между ними.

В ООП существуют и другие соответствующие концепции, которые стоит перечислить и которые взаимосвязаны с концепцией объекта и класса:

Абстракция Вам не нужно перечислять все атрибуты человека, чтобы использовать его. например, в этом случае вас не волнует, является ли этот человек одиноким или женатым, даже если в реальной жизни люди одиноки или женаты.

Инкапсуляция Атрибуты человека скрыты от других объектов и доступны с помощью методов, что предотвращает повреждение данных.

Полиморфизм Другой тип может по-разному реагировать на одно и то же сообщение или метод.

Наследование классы могут иметь подклассы, а также атрибуты и поведение, которые наследуют характеристики суперклассов.

2 голосов
/ 10 сентября 2010

класс :: Мужчина или Женщина

объект :: я, ты ...

2 голосов
/ 08 июля 2016

A class - это чертеж / шаблон, который вы используете для создания объектов. объект является экземпляром класса.

enter image description here

2 голосов
/ 10 сентября 2010

class == cookie cookie, object == cookie.

...