先有对象 然后再有类的。。。
面向对象编程的核心:创建自己定义的类型。
类和对象有什么关系
类 是对某一些具有相同的对象的抽象
对象是这一类中的具体
//导入头文件 避免重复导入 如果是在C语言中 用预编译语法
//Foundation 这是一个很大的库 内部包含了很多的数据类型 里面的前缀都是NS...
//NS的由来 :乔布斯在NetStep(音译)公司的开发的一套语言
#import "Student.h"//导入.m会导致各种各样的异常
Student *s1;//声明Student类型对象1
s1=[Student alloc];//开辟学生对象空间
s1=[s1 init];//初始化内部的数据 BOOL 初始化成NO
[s1 SayHi:"张三" andParasDescription:@"李四"];//lisi对和李四打招呼 张三丢失 因为char不能存中文
@autoreleasepool {//自动释放内存池 @符号 OC关键字带@ 是为了与C和C++的关键字的区分
//
// insert code here...
NSLog(@"Hello,World!");//NSLog带时间戳 带换行
//2015-04-13 09:57:14.751iOS01[1148:57427] Hello, World! 1148进程ID57427线程ID
.h文件里面不能写成员变量初始值 会出错
@interface Student : NSObject//单根继承
//@interface 定义类的关键字(我们这里不称为接口) 看见这个关键字 就可以知道接下来的是类名称,:代表继承自
//父类最大的好处 继承
//成员变量
{
@public//以下的所有的变量都是公共的 公共修饰符 在人以其他类中可以访问
int sid;//学号
char name[10];//学生姓名
NSString *mobile;//电话号码
}
//访问权限
/*
protected 受保护的,默认:父子类继承关系时,受保护的可被继承
public 公开,不推荐
private 私有 特殊情况使用
*/
/*成员方法
1.方法类型 加号(+)减号(-)
特殊方法 +(类方法)
一般方法 -(实例方法)
2.语法
所有的返回值类型要加上()
-(void) SayHi;
-(int) GetAge:(NSString *)name :(BOOL) sex;
返回值类型 参数类型1 空格: 参数类型2
语法格式
返回值类型+方法名+参数描述+形参
*/
//成员方法
//方法名称SayHi:andParasDescription:
//形参:name1,name2
//无返回值
-(void) SayHi:(char*)name1andParasDescription:(NSString*)name2;
//@interface @end就相当于{}
/*
实例(-)方法(默认)
1.对象指针调用方法
2.在方法内可以访问成员变量
类方法
1.类名调用的方法
2.在方法内不可以访问成员变量
3.只有在以下三种
1.便利构造器
2.单例中的share方法
3.纯过程的封装
*/
/*
方法访问
setter //通过方法访问获得的数据有可能是通过 修饰之后的数据 这样的数据只是修改后的值 不暴露真实的数据
getter
*/