First, object-oriented
OC language is object-oriented, the C language is process-oriented, object-oriented and process-oriented are just two ways to solve the problem, the process is concerned with the steps involved in solving the problem, object-oriented is to design a class that can achieve the functions needed to solve the problem.
Terminology: Oo Object-oriented, OOP OO programming
II. Classes and objects
(i) About class
Class is designed to focus on only three things: class names, properties, and methods
Note: General nouns are classes, objects with the same properties and behavior can be abstracted as a class, the class name is one of the identifiers, need to conform to the specification, usually the first letter of the class name is capitalized, and cannot have an underscore, if there are more than one word use hump identification. In the classification of methods, the general practice is who is most familiar with this method and then divides this method to WHO. In OC, the invocation of an object to a method is called a message mechanism, that is, what message is sent to the given object.
(b) Simple memory analysis
class to create objects, each object occupies a certain amount of storage space in memory, each object has a separate member variable belonging to its own, all of the object common class member methods, methods in the whole memory only one copy, the class itself in memory occupies a portion of storage space, the method of the class is stored here.
Within each object, there is a default ISA pointer to the class used by this object.
[P eat]; indicates that a eat message is sent to the object that P points to, calling the Eat method of the object, where the object will follow the internal ISA pointer to find the method stored in the class.
ISA is a hidden pointer in an object that points to the class that created the object.
(iii) Declaration and implementation of the class
1) class declaration: Declare a car class, which has wheels and speed two properties, a Run method
2) The implementation of the class:
3) Class Call: First in the main function created p and P2 two car types of objects, the P object's wheels and speed properties are set to 5 and 250,p and P2 respectively call the Run method, the run wheels and speed properties set to 4 and 300.
The output is:
Exercise: Designing a Person class
Output Result:
(d) Common mistakes
1. Declarations and implementations of classes cannot be nested
2. The implementation of the method must be placed in the @implementation, not in the @interface.
3. The method declaration cannot be placed in curly braces {}.
4. When declaring a new class, it cannot be nested with an existing class.
5. It is not permissible to assign a value (initialization) to a member variable in the @interface curly braces, or to use a member variable as a variable in the C language, as with static modification.
6. The declaration of the class must precede the main function.
Iii. Methods and functions
The difference between a method and a function:
(1) the declaration of the object method must be written between @interface and @end, and the implementation of the object method must be written between @implementation and @end
(2) The object method begins with the-number, and the class method starts with the + sign
(3) An object method can only be called by an object, and a class method can only be called by a class and cannot be called as a function
(4) functions can be written anywhere in the file (except between @interface and @end), and the function is owned by the file.
(5) Object method collation \ Object All
(6) The function call does not depend on the object
(7) The member variable of an object cannot be accessed directly from the member variable name within the function
Iv. design of classes and methods
Tool class: Basically there is no member variable, the method is basically the class method.
Note: You can call a class method in an object method.
Requirements: Design a tool class: A calculator class that requires (1) to return π, (2) calculates the sum of two integers, and (3) calculates the square of an integer.
Output Result:
"iOS development" "oc"02-classes and objects