Вопрос по – Как я могу использовать классы?

3

Я довольно новичок в программировании, и есть одна вещь, которая меня смущает. Что такое класс и как его использовать? Я немного понимаю, но не могу найти полного ответа.

Кстати, если это зависит от языка, то я программирую на PHP.

Изменить: я забыл сказать кое-что еще. В частности, я хотел спросить, как определяющие функции используются в классах. Я видел примеры кода PHP, где функции определены внутри классов, но я не могу понять, почему.

Ваш Ответ

10   ответов
1

о которой вы можете подумать, например, int, string и т. Д., Что экземпляр может быть создан с использованием объектно-ориентированного языка программирования. Как шаблон или план, класс приобретает структуру. Вы пишете эту структуру с каждой ассоциацией в классе. Что-то из класса будет использоваться в качестве экземпляра объекта в методе Main (), где выполняются все этапы программирования sysync.

Вот почему вы видите, как люди пишут кодCar car = new Car();вытянуть новый объект из класса. Мне лично не нравится этот тип кода, он очень плохой и циклический и не объясняет, какая часть является синтаксисом класса (расположение). Очень жаль, что многие программисты используют этот синтаксис, и начинающим сложно понять, что они воспринимают.

Думайте об этом как,

CarClass theCar = new CarClass(); //

Класс по существу принимает бесконечно много форм. Вы можете написать свойства, которые описывают CarClass, и каждый сгенерированный автомобиль будет иметь их. Чтобы получить их из свойства, которое & quot; получает & quot; что (читает) и & quot; устанавливает & quot; что (записывает) данные, вы просто используете оператор точки на экземпляре объекта, генерируемый в Main (), и устанавливаете описательное свойство к фактическому существительному. Класс - это ноумен (слово для чего-то вроде математики и чисел, вы не можете воспринимать его чувствами, но это мысль вроде # 1). Вместо того, чтобы записывать каждый элемент как переменную, класс позволяет нам написать определение объекта для использования. С возможностью писать бесконечно много вещей, есть большая ответственность! Нравится & quot; Hello World! & Quot; как это маленькое первое заявление много говорит о нашей аудитории как программистах.

Так

CarClass theCar = new CarClass(); //In a way this says this word "car" will be a car
theCar.Color = red; //Given the instance of a car we can add that color detail.

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

A field это еще один модификатор свойства. Они, как правило, пишутся на уровне частного класса, поэтому ничто извне не влияет на них и стремится сосредоточиться на самом свойстве для функциональности. Это в другом регионе, где вы объявляете это обычно с подчеркиванием перед ним. Поле добавит ограничения, необходимые для поддержания целостности данных, что означает, что вы не позволите людям писать значения, которые не имеют смысла в контексте. (Как настоящий, как измерения в отрицательном ... это просто не реально.) The Constructor Самый простой способ описать конструктор - подать заявку на некоторые значения по умолчанию в свойствах объекта, где находится область конструктора. Например, у автомобиля есть цвет, максимальная скорость, модель и компания. Но какими должны быть эти значения и должны ли они использоваться в миллионах копий из CarClass или только в нескольких? Конструктор позволяет сделать это, сгенерировать копии, установив базовое качество. Эти значения являются значениями по умолчанию, назначенными свойству в блоке конструктора. Для конструирования блока конструктора введите ctor [tab] [tab]. Внутри этого просто обратитесь к тем свойствам, которые вы пишете выше, и поместите в него назначенное значение. Цвет = & # x201C; Красный & # x201D ;; Если вы перейдете к main () и теперь используете свойство car.Color в любом компоненте записи вывода, таком как окно консоли или текстовое поле, вы должны увидеть слово & # x201C; Red & # x201D ;. Детали, таким образом, скрыты и скрыты. Вместо того, чтобы предлагать каждое слово из книги, вы просто ссылаетесь на книгу, тогда компьютер получает остальную информацию. Это делает скрипты кода компактными и простыми в использовании.

Метод уровня класса должен объяснять, как выполнять некоторые процессы снова и снова. Обычно в виде строки или некоторой записи вы можете отформатировать некоторую письменную информацию для класса и отформатировать ее с помощью заполнителей, которые находятся в записи, для отображения, которые представлены свойствами вашего класса. Это имеет смысл, когда вы создаете экземпляр объекта, а затем должны использовать объект для отображения деталей в форме .ToString (). Экземпляр объекта класса в некотором смысле может также содержать информацию, такую как книга или коробка. Когда мы пишем .ToString () с методом переопределения ToString на уровне класса, он напечатает ваш пользовательский метод ToString и то, как он должен объяснить код. Вы также можете написать свойство .ToString () и прочитать его. Это ниже строка, которая должна читаться как есть ... Console.WriteLine (theCar.Color); Как только вы получаете много объектов, по одному вы можете поместить их в список, который позволяет вам добавлять или удалять их. Просто подожди...

0

http://www.cplusplus.com/doc/tutorial/

не знаю почему, но начиная с C ++ для применения ООП может бытьnatural До любого другого языка вышеуказанная ссылка мне очень помогла, когда я начал, по крайней мере.

3

используемый в парадигме объектно-ориентированного программирования (ООП). Они обеспечивают абстракцию, модульность и многое другое для вашего кода. ООП не зависит от языка, другими примерами языков, поддерживающих его, являются C ++ и Java.

Я предлагаю YouTube, чтобы получить представление об основах. Напримерэто видео и другие связанные лекции.

1

У вас есть встроенные типы данных, такие как & quot; int & quot; или "строка" или «float», каждый из которых имеет определенное поведение и возможные операции.

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

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

Например, мы могли бы определить & quot; пароль & quot; класс, который реализует поведение, ожидаемое от пароля. То есть мы должны иметь возможность взять текстовую строку и создать из нее пароль. (Если я ввожу «secret02», это будет действительный пароль). Вероятно, он должен выполнить некоторую проверку этой входной строки, убедившись, что она имеет длину не менее N символов и, возможно, это не словарное слово. И это не должно позволять намread пароль. (Пароль обычно представляется как****** на экране). Вместо этого он должен просто позволить нам сравнить пароль с другими паролями, чтобы увидеть, идентичен ли он.

Если пароль, который я только что набрал, совпадает с тем, с которым я первоначально зарегистрировался, мне следует разрешить войти в систему. Но какой пароль на самом деле?is, это не то, что приложение, в которое я захожу, должно знать. Таким образом, наш класс паролей должен определять функцию сравнения, а не & quot; display & quot; функция.

Класс в основном содержит некоторые данные и определяет, какие операции допустимы для этих данных. Это создает абстракцию.

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

В большинстве языков члены класса могут быть частными или общедоступными. Все, что является приватным, может быть доступно только другим членам класса. Таким образом мы реализуем строку, хранящуюся в классе пароля. Это приватно, так что все еще видно операциямwe определить в классе, но код за пределами класса не может просто получить доступ к строке внутри пароля. Они могут получить доступ только к публичным членам класса.

2

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

Класс похож на план. Предположим, вы играете с домами в нем. У вас есть "Дом" учебный класс. Этот класс описывает дом и говорит, что он может сделать и что можно с ним сделать. У вас могут быть такие атрибуты, как высота, ширина, количество комнат, город, в котором он находится, и т. Д. Вы также можете использовать & quot; методы & quot; (причудливое имя для функций внутри класса). Например, у вас может быть & quot; Clean () & quot; метод, который сказал бы всем людям в доме, чтобы убрать его.

Теперь предположим, что кто-то играет в вашу игру и нажимает кнопку "Создать новый дом". кнопка. Затем вы создадите новый объект из этого класса. В PHP вы пишете & quot;$house = new House;& quot ;, и теперь $ house имеет все атрибуты и методы класса.

Вы можете построить столько домов, сколько захотите, и все они будут иметь одинаковые свойства, которые вы затем сможете изменить. Например, если люди, живущие в доме, решили добавить еще одну комнату, вы можете написать & quot;$house->numberOfRooms++;& Quot ;. Если бы по умолчанию количество комнат для дома было 4, в этом доме было бы 5 комнат, а во всех остальных - 4. Как видите, атрибуты не зависят от одного.instance другому.

Это основы; Есть много вещей о классах, таких как наследование, модификаторы доступа и т. д.

Теперь вы можете спросить себя, почему это полезно. Итак, цель объектно-ориентированного программирования (ООП) - думать о всех вещах в программе как о независимых объектах, пытаясь спроектировать их так, чтобы они могли использоваться независимо от контекста. Например, ваш дом может быть автономной переменной, может быть внутри множества домов. Если у вас есть «Лицо» класс с "местом жительства" атрибут, то ваш дом может быть этим атрибутом.

Это теория за классами и объектами. Я предлагаю вам посмотреть примеры кода. Если хотите, можете взглянуть на классы, которые я сделал для игры в понг, которую я запрограммировал. Он написан на Python и может использовать некоторые вещи, которые вы не понимаете, но вы поймете основную идею. КлассыВот.

0

Определение класса:

Abstract definition of something, an user-type, a blueprint; Has States / Fields / Properties (what an object knows) and Methods / Behaviors / Member Functions (what an object does); Defines objects behavior and default values;

Определение объекта:

Instance of a Class, Repository of data; Has a unique identity: the property of an object that distinguishes it from other objects; Has its own states: describes the data stored in the object; Exhibits some well defined behavior: follows the class’s description;

Конкретизация:

Is the way of instantiate a class to create an object; Leaves the object in a valid state; Performed by a constructor;

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

<?php
class SampleClass {
   function __construct() {
       print "In SampleClass constructor\n";
   }
}

// In SampleClass constructor
$obj = new SampleClass ();
?> 
3

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

class person
{
   $gender = null;
   $weight = null;
   $height = null;
   $age = null;
   $firstName = null;
   $lastName = null;
   function __CONSTRUCT($firstName, $lastName)
   {
      //__CONSTRUCT is a special method that is called when the class is initialized
      $this->firstName = $firstName;
      $this->lastName = $lastName;
   }
}

Это допустимый (если не идеальный) класс, когда вы используете этот код, вам сначала нужно инициализировать экземпляр класса, который похож на создание его копии в переменной:

$steve = new person('Steve', 'Jobs');

Затем, когда вы захотите изменить какое-либо свойство (не то, что это правильное слово, так как в PHP нет свойств, но просто потерпите меня в этом случае, я имею в виду переменную). Мы можем получить к ним доступ так:

$steve->age = 54;
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0
21

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

Например, у вас может быть класс, представляющий изображение. Объект этого класса будет содержать все данные, необходимые для описания изображения, а затем будет также содержать методы, такие как поворот, изменение размера, обрезка и т. Д. Он также будет иметь методы, которые можно использовать для запроса объекта о его собственных свойствах, как getColorPalette или getWidth. Это в отличие от возможности прямого доступа к цветовой палитре или ширине в сборе необработанных (необъектных) данных - имея доступ к данным через методы класса, объект может навязывать ограничения, которые поддерживают согласованность (например, вы не должны иметь возможности изменить переменную ширины без фактического изменения данных изображения на эту ширину).

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

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

Дело в том, чтобы отделить части программы друг от друга. С классом Image вы можете быть уверены, что весь код, который манипулирует данными изображения, находится внутри методов класса Image. Вы можете быть уверены, что никакой другой код не будет смешиваться с внутренностями ваших изображений неожиданными способами. С другой стороны, код за пределами вашего класса изображений может знать, что существует определенный способ манипулирования изображениями (изменение размера, обрезка, методы поворота и т. Д.), И ему не нужно беспокоиться о том, как именно хранятся данные изображения или как изображение функции реализованы.

Изменить: И еще одна вещь, которую иногда трудно понять, это взаимосвязь между терминами «класс» и "объект". «Класс» является описанием того, как создать конкретный тип «объекта». Класс Image описывает, какие переменные необходимы для хранения данных изображения, и дает код реализации для всех методов Image. Объект Image, называемый «экземпляр» класса изображения, это конкретное использование этого описания для хранения некоторых фактических данных. Например, если у вас есть пять изображений для представления, у вас будет пять разных изображений «объекты», все одно и то же изображение «класс».

Error: User Rate Limit Exceeded
0

которым программисты отмечают свою территорию в коде.
Они предположительно необходимы для написания больших проектов.
Должно быть, Линус и его команда пропустили эту записку, разрабатывая ядро Linux.

Тем не менее, я думаю, они могут быть полезны для организации и классификации кода. Это облегчает навигацию по коду в IDE, например в Visual Studio, с объектными браузерами.

Вот несколько примеров использования классов на 31 языке наrosettacode

Похожие вопросы