先定义类,再创建对象,后使用。
(1)类接口 (.h文件)
(2)类实现 (.m文件)
(3)应用程序(main)
OC是面向对象的编程!
面向过程编程:分析解决问题的步骤,实现函数,依次调用。
面向对象编程:分解问题组成的对象,具有可扩展性,可重用性协调对象之间的联系和通信。解决问题
一.类:
一批有共同特点的事物。类是对象的类型
二.对象:
对象是类的实例。
面向对象的三个特征:封装,继承,多态。
三.类和对象
1.类和对象是面向对象的核心
2.定义类,创建对象,使用对象。
3.类是具有相同特征和行为的事物的抽象
4.对象是类的实例
5.类是对象的类型
#import <Foundation/Foundation.h>//导入头文件;
int main(int argc, const char * argv[]) {
@autoreleasepool { //自动释放池;
NSLog(@"Hello, World!");//@是字符串的标志;
} //oc里打印字符串,用%@
return 0;
} //oc里打印字符串,用%@
return 0;
}
在.h文件中声明成员变量(特征),成员变量的声明,必须放在大括号里。
OC中方法(行为)的声明:
-/+(返回值类型) 方法名
在.m文件中主要做方法的实现,告诉别人,这个方法能做什么。
实现的格式:
-(返回值类型) 方法名 { }
使用一个类,需要首先导入其头文件(.h)
创建对象(实例一个对象);
类名* 变量名 = [[ 类名 alloc] init ];
例:Student *stu = [[Student alloc]init];
实例方法的调用 [对象名 方法名 ];
例:
(1)
类接口:
#import <Foundation/Foundation.h>
@interface Car : NSObject
{ //成员变量默认的权限是受保护的,也就是说,只有本类文件可以使用
@public//共有的,谁都可以访问
NSString *mark;
float price;
NSString *color;
}
-(void)car;
-(void)function;
-(void)busload;
@interface Car : NSObject
{ //成员变量默认的权限是受保护的,也就是说,只有本类文件可以使用
@public//共有的,谁都可以访问
NSString *mark;
float price;
NSString *color;
}
-(void)car;
-(void)function;
-(void)busload;
@end
类实现:
#import "Car.h"
@implementation Car
-(void)car
{
NSLog(@"我是:%@汽车我的价格是:%.2f我是%@颜色!",mark,price,color);
}
-(void)function
{
NSLog(@"我会跑!");
}
-(void)busload
{
NSLog(@"我能载7个人!");
}
@implementation Car
-(void)car
{
NSLog(@"我是:%@汽车我的价格是:%.2f我是%@颜色!",mark,price,color);
}
-(void)function
{
NSLog(@"我会跑!");
}
-(void)busload
{
NSLog(@"我能载7个人!");
}
@end
主程序:
#import <Foundation/Foundation.h>
#import "Car.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Car* car=[[Car alloc]init];//创建对象(实例一个对象)
//类名 *变量名 = [[类名 alloc] init];
car->mark=@"法拉利";//初始化(给成员变量赋值)
car->price=100000000;
car->color=@"yellow";
//实例方法(-开头)的调用:[对象名 方法名];
[car car];
[car function];
[car busload];
}
return 0;
#import "Car.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Car* car=[[Car alloc]init];//创建对象(实例一个对象)
//类名 *变量名 = [[类名 alloc] init];
car->mark=@"法拉利";//初始化(给成员变量赋值)
car->price=100000000;
car->color=@"yellow";
//实例方法(-开头)的调用:[对象名 方法名];
[car car];
[car function];
[car busload];
}
return 0;
}
运行结果:
2015-10-19 16:46:25.739 10.19 car类[1940:104456] 我是:法拉利汽车我的价格是:100000000.00我是yellow颜色
2015-10-19 16:46:25.740 10.19 car类[1940:104456] 我会跑!
2015-10-19 16:46:25.740 10.19 car类[1940:104456] 我会跑!
2015-10-19 16:46:25.740 10.19 car类[1940:104456] 我能载7个人!
(2)
类接口:
#import <Foundation/Foundation.h>
@interface Teacher : NSObject
{ //成员变量默认的权限是受保护的,也就是说,只有本类文件可以使用
//@public公有的,都可以访问;
NSString *name;
int age;
}
-(NSString*) name;
-(int) age;
-(void)setName:(NSString*)input;
-(void)setAge:(int)input;
-(void)sleep;
-(void)walk;
@interface Teacher : NSObject
{ //成员变量默认的权限是受保护的,也就是说,只有本类文件可以使用
//@public公有的,都可以访问;
NSString *name;
int age;
}
-(NSString*) name;
-(int) age;
-(void)setName:(NSString*)input;
-(void)setAge:(int)input;
-(void)sleep;
-(void)walk;
@end
类实现:
#import "Teacher.h"
@implementation Teacher
-(NSString*) name
{
return name;
}
-(int) age
{
return age;
}
-(void) setName:(NSString *)input
{
name = input;
}
-(void) setAge:(int)input
{
age = input;
}
-(void)sleep
{
NSLog(@"我不瞌睡!");
}
-(void)walk
{
NSLog(@"我坐车!");
}
@implementation Teacher
-(NSString*) name
{
return name;
}
-(int) age
{
return age;
}
-(void) setName:(NSString *)input
{
name = input;
}
-(void) setAge:(int)input
{
age = input;
}
-(void)sleep
{
NSLog(@"我不瞌睡!");
}
-(void)walk
{
NSLog(@"我坐车!");
}
@end
主程序:
#import <Foundation/Foundation.h>
#import"Teacher.h"
int main(int argc, const char * argv[])
{
@autoreleasepool
{ Teacher* teacher = [[Teacher alloc]init];
[teacher setName:@"张三"];
[teacher setAge:45];
NSLog(@"我的名字是:%@",[teacher name]);
NSLog(@"我的年龄是:%i",[teacher age]);
[teacher sleep];
[teacher walk];
};
return 0;
#import"Teacher.h"
int main(int argc, const char * argv[])
{
@autoreleasepool
{ Teacher* teacher = [[Teacher alloc]init];
[teacher setName:@"张三"];
[teacher setAge:45];
NSLog(@"我的名字是:%@",[teacher name]);
NSLog(@"我的年龄是:%i",[teacher age]);
[teacher sleep];
[teacher walk];
};
return 0;
}
运行结果:
2015-10-19 17:03:58.885 10.19 课堂练习[2115:112558] 我的名字是:张三
2015-10-19 17:03:58.887 10.19 课堂练习[2115:112558] 我的年龄是:45
2015-10-19 17:03:58.887 10.19 课堂练习[2115:112558] 我不瞌睡!
2015-10-19 17:03:58.887 10.19 课堂练习[2115:112558] 我的年龄是:45
2015-10-19 17:03:58.887 10.19 课堂练习[2115:112558] 我不瞌睡!
2015-10-19 17:03:58.887 10.19 课堂练习[2115:112558] 我坐车!