Obj-C中没有包得概念,使用前缀进行区分

自带类用NS开头命名
关键字使用@开头
 
A. 第一个OC程序
1. 导入Foundation框架的主头文件
#import <Foundation/Foundation.h>
自动过滤重复引入的文件
 
2. 源代码和头文件
(1) .h : 类的声明文件
(2) .m : 类的实现文件

3.使用终端编译链接OC程序
例如:编译链接 02OC.m
 cc 02OC.m -framework Foundation
系统默认带的是C函数库,必须加上 framework 参数,引入Foundation框架
 

B.OC和C的差异
1.BOOL类型

BOOL只有YES 和 NO 两个值,实际是 1 和 0
 
2.面向对象
(1)面向过程:关心步骤
(2)面向对象:只关心结果
 
 
C. OC中的类
1.在同一个.m文件中入门体验:
#import <Foundation/Foundation.h>

//类的声明
@interface Car : NSObject
{
    //@public 可以让外部指针访问内部的成员变量
    @public
    int wheels;
    int speed;
}

//OC方法中任何数据类型都必须用()括起来
- (void) run;

@end

//类的实现

 @implementation Car
- (void) run
{
NSLog(@"车子跑起来");
} @end int main()
{
Car *c = [Car new];//创建对象,分配内存空间
c->wheels = ;
c->speed = ;
NSLog(@"车子有%i个轮子,时速是%i", c->wheels, c->speed);
[c run]; return ;
}
2.常见错误
(1)声明中不能赋初值,不能使用static等C语言中得修饰符
(2)不能嵌套声明、定义
(3)方法和函数要分辨开,C语言中的是函数,类中的是方法,方法也不能使用static等修饰符
(4)使用类之前,要先声明,类似于函数
 
 
ps:继承NSOject 让类具有实现对象的功能
 
在声明中定义的方法全是公共方法
数据类型都要小括号括起来 
 
1.声明:
 @interface Student : NSObject
{
int age;
}
//'-' is used to define dynamic method, '+' is used to define static method
- (int) getAge;
- (void) setAge:(int)age;
@end
 
2.定义
类的实现使用关键字@implementation, @end
xx.m
 #import "Student.h"

 @implementation Student
- (int) getAge
{
return age;
}
- (void) setAge:(int)newAge
{
age = newAge;
}
@end
3.创建对象
所有OC对象都是指针
(1)分配空间
        //allocate the memory by static method, accept the obj by pointer
        Student *stu = [Student alloc];
ps:OC中只能用指针间接操作对象
 
 

[Objective-c 基础 - 1.1] OC类的更多相关文章

  1. 【IOS学习基础】OC类的相关

    几天前突然在别人的类的.m文件中看到这么一句代码:@synthesize xxxx = _xxxx; 当时愣是没理解啥意思,过后才缓过神来发现原来是把一些类的基础知识忘记了,虽然不用过多去深究以前的一 ...

  2. OC 类的本质和分类

    一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件结构图: 在分类中添加一 ...

  3. OC 类簇与复合

    OC 类簇与复合 类簇: 类簇是Foundation框架中广泛使用的设计模式.类簇将一些私有的.具体的子类组合在一个公共的.抽象的超类下面,以这种方法来组织类可以简化一个面向对象框架的公开架构,而又不 ...

  4. Yaf零基础学习总结5-Yaf类的自动加载

    Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...

  5. python基础——实例属性和类属性

    python基础——实例属性和类属性 由于Python是动态语言,根据类创建的实例可以任意绑定属性. 给实例绑定属性的方法是通过实例变量,或者通过self变量: class Student(objec ...

  6. IOS基础之 (十二) 类的扩展

    对OC类的扩展总结如下,共有4个: 1.子类 subClass 作用:可以使用类的继承来增添父类的变量和方法. 写法:在.h文件中 @interface Student : Person 2.分类 C ...

  7. 第一个OC类、解析第一个OC程序

    01第一个OC 类 本文目录 • 一.语法简介 • 二.用Xcode创建第一个OC的类 • 三.第一个类的代码解析 • 四.添加成员变量 • 五.添加方法 • 六.跟Java的比较 • 七.创建对象 ...

  8. Objective-c 总结(一):OC类的设计

    (一)学习目标: 1.面向对象基本概念: OOP的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在整个解决问题步骤中的行为. 2.熟悉OC类的定 ...

  9. C#_02.15_基础六_.NET类

    C#_02.15_基础六_.NET类 一.类继承是一个类在另一个类的基础上进行的扩展. 继承的子类拥有父类的全部成员.索引子类拥有本身的全部成员以及父类的全部成员. 可以对基类成员进行隐藏,如果必须的 ...

随机推荐

  1. 【转】windows c++获取文件信息——_stat函数的使用

    _stat函数的功能 _stat函数用来获取指定路径的文件或者文件夹的信息. 函数声明 int _stat( const char *path, struct _stat *buffer ); 参数: ...

  2. CentOS SSH安装与配置

    SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议. 传 统的网络服务程序, ...

  3. 使用intellij idea搭建MAVEN+springmvc+mybatis框架

    原文:使用intellij idea搭建MAVEN+springmvc+mybatis框架 1.首先使用idea创建一个maven项目 2.接着配置pom.xml,以下为我的配置 <projec ...

  4. MapReduce编程系列 — 3:数据去重

    1.项目名称: 2.程序代码: package com.dedup; import java.io.IOException; import org.apache.hadoop.conf.Configu ...

  5. node.js模块值formidable

    模块地址:https://github.com/felixge/node-formidable var formidable = require('formidable'), http = requi ...

  6. 浩顺AC671指纹考勤机二次开发(demo)

    关于考勤机 AC671,是新换的机器,以前的那部机器,通过网络死活连接不上,换了AC671网络连接是好用了.但是,我要吐槽 浩顺的考勤机应该是卖了很多了吧,可是自带的软件太不给力,最后分析出来的数据一 ...

  7. Java实现文件复制

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /** * & ...

  8. 深入理解Java虚拟机 - 虚拟机内存划分

    在内存管理方面,Java相对于C和C++的区别在于Java具有内存动态分配以及垃圾收集技术,但平时我们很少去关注JVM的内存结构以及GC,在出现内存泄露或溢出方面的问题,排查工作将变得异常艰难.   ...

  9. 5个难以置信的VS 2015预览版新特性

    Visual Studio 2015 Preview包含了很多强大的新特性,无论你是从事WEB应用程序开发,还是桌面应用程序开发,甚至是移动应用开发,VS 2015都将大大提高你的开发效率.有几个特性 ...

  10. UVa 1606 (极角排序) Amphiphilic Carbon Molecules

    如果,没有紫书上的翻译的话,我觉得我可能读不懂这道题.=_=|| 题意: 平面上有n个点,不是白点就是黑点.现在要放一条直线,使得直线一侧的白点与另一侧的黑点加起来数目最多.直线上的点可以看作位于直线 ...