文档章节

IOS学习笔记——Objective-c基础(一)

丛林迷雾
 丛林迷雾
发布于 2012/12/30 22:16
字数 532
阅读 1298
收藏 9

最近自学ios,ios的支持语言是Objective-c,所以要学习ios就需要先学习Objective-c语言。当掌握了Objective-c的基础知识之后,我们就可以入手学习iOS开发做出一些自己的应用。

我现在还是一名java程序员所以我就按照java的理解方式去理解Objective-c。最初先了解他的语法。下面 这段代码是我在学习过程中跟java对比的理解。都是一些最最基础的语法,随后会逐步深入。

代码段一:类的定义,类的定义放置在后缀为“.h”的文件中在java中是没有这一步的,这个跟c++很像。

//导入代码文件,相当于java中的导包
#import <Foundation/Foundation.h>
@interface Song : NSObject
{
//声明属性,素性的声明需要放在花括号中
NSString * name; 
NSString * artist;
int ID;
}
//相当于定义get,set方法
@property int ID;

//重初始化方法,相当于java中的构造函数
//在重写初始化方法是也可以随意命名方法名,返回值为id类型就可以
-(id)init;

//带参数的初始化方法
-(id)init:(NSString *)name artist:(NSString *)artist;

//声明实例方法,get方法,带返回值的返回值类型是NSString相当于java的String类型
-(NSString *)name;

//声明没有返回值的方法,set方法
-(void)setName:(NSString *)newName;

-(NSString *)artist;

-(void)setArtist : (NSString *)newArtist;

//重写父类中的方法
-(NSString *)description;

//声明静态方法
+(void) getString; 
@end

代码段二:类的实现,类的实现代码放置在后缀为“.m”的文件中。

#import "Song.h"

@implementation Song
-(id)init
{
    return self;
}
- (id)init:(NSString *)name artist:(NSString *)artist
{
    self = [super init];
    if (self) {
        self.name = name;
        self.artist = artist;
    }
    return self;
}
//相当于实现get,set方法 
@synthesize ID;/*
/*
 *实现实例方法
 */
-(NSString *)name //
{
    return name;
}
-(void)setName:(NSString *)newName
{
      
    name = newName;
}
-(NSString *)artist
{
    return artist;
}
-(void)setArtist:(NSString *)newArtist
{
    artist = newArtist;
}
-(NSString *)description
{
    //用self关键字使用"."方式调用本身的方法,self代表本身,相当于java中的this关键字
    return self.name;
    //用self关键字使用obj_c本身特性调用本身的方法
    //return [self name];  
}
/*
 *实现静态方法
 */
+(void)getString
{
    NSLog(@"name:chh");
}
@end



© 著作权归作者所有

共有 人打赏支持
丛林迷雾
粉丝 7
博文 24
码字总数 8093
作品 0
杭州
高级程序员
私信 提问
加载中

评论(1)

fangzhou99
fangzhou99
路过
10个优秀Objective-C和iOS开发在线视频教程

如果你自己开发iOS应用,你肯定会发现网上有很多资源。学习编程的一个最好的方法就是自己写代码,而开始写代码的最快的方式就是看其他人怎么写。我们从海量视频和学习网站中整理出了我们认为...

mingxun
2014/05/09
0
0
那些在学习iOS开发前就应该知道的事(part 1)

英文原文:Things I wish I had known before starting iOS development—Part 1 设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候,我们的app也没几天就要上线了。这个界面模...

TomatosX
2015/06/12
0
0
10步成为专业iOS开发者——从零起步

想在移动开发大餐中分一杯羹,体验最火最炫的技术?小伙子,很有眼光嘛 毫无疑问,移动开发在目前和未来几年内都会盛极一时。无数开发职位虚位以待。各大公司都在寻找各种层次的程序员——新...

hejunbinlan
2015/06/18
0
0
iOS 学习资料整理

视频教程(英文) Developing iOS 7 Apps for iPhone and iPad 斯坦福开放教程之一, 课程主要讲解了一些 iOS 开发工具和 API 以及 iOS SDK 的使用, 属于 iOS 基础视频 iPad and iPhone Applic...

拉偶有所依
2015/01/19
2.2K
4
如果只有一个月的时间学 iOS 开发,我们该做些什么?

一年前,我还是一个 Android 开发者。那时候我没有任何 iOS 编程相关的知识,我甚至没用过任何苹果的产品。然而,这已成为过去,现在我已经能同时开发 iOS 和 Android 应用了。 现在,我想给...

oschina
2017/03/09
3.3K
13

没有更多内容

加载失败,请刷新页面

加载更多

Java面试题:面向对象,类加载器,JDBC, Spring 基础概念

1. 为什么说Java是一门平台无关语言? 平台无关实际的含义是“一次编写到处运行”。Java 能够做到是因为它的字节码(byte code)可以运行在任何操作系统上,与底层系统无关。 2. 为什么 Java...

Java干货分享
14分钟前
0
0
LeetCode算法题-Range Sum Query Immutable(Java实现)

01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第70题(顺位题号是303)。给定整数数组nums,找到索引i和j(i≤j)之间的元素之和,包括端点。例如: 给定nums = [-2,0,3,-5,2,-1] s...

qwergkp
19分钟前
0
0
慎用延时初始化(71)

延迟初始化是延时到需要域的值的时候才进行初始化 如果不需要,永远不初始化 既适用于静态域、也适用于实例域 延时初始化是一种优化 除非绝对必要,请尽量不要使用 降低了初始化开销、增加了...

Java搬砖工程师
20分钟前
1
0
中介者模式 调停者 Mediator 行为型 设计模式(二十一)

  用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散      而且可以独立地改变它们之间的交互。      中介者模式又称为调停...

SEOwhywhy
30分钟前
4
0
大数据Spark优化读取Hbase--region 提高并行数过程详细解析

一. Hbase 的 region 我们先简单介绍下 Hbase 的 架构和 region : 从物理集群的角度看,Hbase 集群中,由一个 Hmaster 管理多个 HRegionServer,其中每个 HRegionServer 都对应一台物理机器...

金铭鼎IT教育
30分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部