文档章节

第04天OC语言(02):property基本使用

lyh2017iOS
 lyh2017iOS
发布于 2017/07/14 09:23
字数 669
阅读 0
收藏 0
点赞 0
评论 0
  • 不要等到明天,明天太遥远,今天就行动。

#####须读:看完该文章你能做什么?

property的使用

#####学习前:你必须会什么?(在这里我已经默认你具备C语言的基础了)

什么是setter、getter方法


#####一、本章笔记

 @property 是一个编译器指令
 在Xcode4.4之前, 可以使用@property 来代替 getter / setter方法的声明
 也就是说我们 只需要写上@property 就不用写getter / setter方法的声明
 编译器只要看到 @property, 就知道我们要生成某一个属性的 getter/setter方法的声明
 
 @property int age;
 等同于👇
 1.定义变量
 {
 int _age;
 }
 2.声明setter 和 getter方法
 - (void)setAge:(int)age;
 - (int)age;

#####二、code ######main.m

######main.m
#pragma mark 02-property基本使用
#pragma mark - 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#import "Person.h"
#pragma mark - main函数
int main(int argc, const char * argv[])
{
    Person *p = [Person new];
    [p setAge:22];
    [p age];
    
    [p set_age:22];
    [p _age];
    return 0;
}

######Person

>>>.h
#import <Foundation/Foundation.h>

@interface Person : NSObject
{
//    int _age;
    double _height;
    double _weight;
    NSString *_name;
}
@property int age;
@property int _age; // 这样格式不符合规范 并且证明 系统是如何生成setter和getter方法的
/*
 - (void)set_age:(int)age;
 - (int)_age
 */


#pragma mark @property
/*
 @property 是一个编译器指令
 在Xcode4.4之前, 可以使用@property 来代替 getter / setter方法的声明
 也就是说我们 只需要写上@property 就不用写getter / setter方法的声明
 编译器只要看到 @property, 就知道我们要生成某一个属性的 getter/setter方法的声明
 
 @property int age;
 等同于👇
 1.定义变量
 {
    int _age;
 }
 2.声明setter 和 getter方法
 - (void)setAge:(int)age;
 - (int)age;
 */



#pragma mark getter - setter
/*
 setter:
 作用 : 用于给成员变量赋值
 1. 一定是对象方法
 2. 一定没有返回值
 3. 方法名称以set开头, 后面跟上需要赋值成员变量名称,并且去掉下划线,然后首字母大写
 4.一定有参数,参数类型 和 需要赋值的成员变量一致, 参数名称 就是 需要赋值的成员变量名称去掉下滑线
 */
//- (void)setAge:(int)age;
- (void)setHeight:(double)height;
- (void)setWeight:(double)weight;
- (void)setName:(NSString *)name;
/*
getter:
 作用: 用于获取成员变量的值
 1.一定是对象方法
 2.一定有返回值,返回值类型 和 需要获取的成员变量的类型 一致
 3.方法名称 就是 需要获取的成员变量的名称 去掉下划线
 4.一定没有参数
 */
//- (int)age;
- (double)height;
- (double)weight;
- (NSString *)name;


@end

>>>.m
#import "Person.h"

@implementation Person


//- (void)setAge:(int)age
//{
//    _age = age;
//}
- (void)setHeight:(double)height
{
    _height = height;
}
- (void)setWeight:(double)weight
{
    _weight = weight;
}
- (void)setName:(NSString *)name
{
    _name = name;
}

//- (int)age
//{
//    return _age;
//}
- (double)height
{
    return _height;
}
- (double)weight
{
    return _weight;
}
- (NSString *)name
{
    return _name;
}

@end

© 著作权归作者所有

共有 人打赏支持
lyh2017iOS
粉丝 1
博文 354
码字总数 137380
作品 0
朝阳
Objective-C基础语法规则教程

Objective-C基础语法规则教程 简介 Objective-C是一种简单的面向对象的计算机语言。Oobjective-C扩展了标准的ANSI C语言。类的语法和设计主要是基于Smalltalk,最早的面向对象编程语言之一。...

FelixSmile ⋅ 2016/09/18 ⋅ 0

IOS,objective_C中用@interface和 @property 方式声明变量的区别

转自http://www.cnblogs.com/letmefly/archive/2012/07/20/2601338.html 一直有疑问,在objective_C中声明变量会有 2种方式,今天有空和网友讨论了下,并且自己查了stackoverflew后算是稍微弄...

AAAAdler ⋅ 2012/12/28 ⋅ 0

iOS中的内存管理(下)

首先来看一个参数:@property(详见:http://my.oschina.net/aofe/blog/265789) @property在内存管理中的作用: 1、可以控制set方法的内存管理; 1> retain:release旧值,retain1新值(用于...

傲风凌寒 ⋅ 2014/05/21 ⋅ 0

OC学习之旅 (一) 内存管理及OC常用方法

最近学习OC,所以在博客写下自己的笔记. OC的基本: 1 id 相当于java的Object 代表任何对象. 所以id是关键字,不能用作变量!! 2 oc中使用"."符号是调用 int a =object.a 是调用的是 [object ge...

Jonson ⋅ 2013/04/13 ⋅ 2

Swift笔记字符串

1.字符串的基本使用 OC与Swift中字符串的区别 OC中字符串类型是NSString,Swift中字符串类型是String OC字符串用@"",Swift用"" 使用String的原因 String 是一个结构体,性能更高(保存的直接是值...

大基本功 ⋅ 2017/12/17 ⋅ 0

Swift4.0基础知识回顾

简单介绍一下Swift Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序,Swift语言让应用开发更简单、更快、更稳定,确保最终应用有着更好的质量更多了解Swift可以去《The...

博行天下 ⋅ 2017/12/06 ⋅ 0

iOS 简单的使用UIBezierPath绘制

UIBezierPath这个类呢主要用于绘图。 之前的项目中需要绘图的部分都是用Core Graphics来绘制,OC是我的第一门语言,所以对于Core Graphics的C语言API不太适应,最近发现原来苹果的UIKit中已经...

沉恋 ⋅ 2015/03/20 ⋅ 0

OC语言自学《十一》---- OC(内存管理知识总结)

一、retain、release retain方法给对象的引用计数器+1 release方法给对象的引用计数器-1 retain方法会返回对象本身,release方法没有返回值 dealloc方法 当一个对象要被回收的时候会被调用 ...

罗眯眯 ⋅ 2014/04/06 ⋅ 0

一、Objective-C概述

说明:这个Objective-C专题,是学习iOS开发的前奏,也为了让有面向对象语言开发经验的程序员,能够快速上手Objective-C。如果你还没有编程经验,或者对Objective-C、iOS开发不感兴趣,请忽略...

长平狐 ⋅ 2013/03/28 ⋅ 0

【OC】一、适应OC

之前写的有点乱 - - 全删了 --------------------------------------------------- 大概了解 第一次看见oc语言的时候 有点头大 完全和java C++ 不一样 入门之后就感觉简单了 举个例子 我们来...

包灬子 ⋅ 2014/03/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Boost库编译应用

版本:Boost 1.66.0 Windows库编译 官网指南:直接执行bootstrap.bat处理文件即可,可以我却遇到一堆的问题。 环境:Windows 10 + Visual Studio 2017 Boost编译出来库命名 boost库生成文件命...

水海云 ⋅ 7分钟前 ⋅ 0

解决Eclipse发布到Tomcat丢失依赖jar包的问题

如果jar文件是以外部依赖的形式导入的。Eclipse将web项目发布到Tomcat时,是不会自动发布这些依赖的。 可以通过Eclipse在项目上右击 - Propertics - Deployment Assembly,添加“Java Build ...

ArlenXu ⋅ 7分钟前 ⋅ 0

iview tree组件层级过多时可左右滚动

使用vue+iview的tree组件,iview官网iview的tree树形控件 问题描述:tree层级过多时左右不可滚动 问题解决:修改overflow属性值 .el-tree-node>.el-tree-node_children { overflow: vi...

YXMBetter ⋅ 9分钟前 ⋅ 0

分布式锁

通过数据库实现 http://www.weizijun.cn/2016/03/17/%E8%81%8A%E4%B8%80%E8%81%8A%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81%E7%9A%84%E8%AE%BE%E8%AE%A1/ ZK实现:curator-recipes分布式锁的使用......

素雷 ⋅ 18分钟前 ⋅ 0

Sublime Text3 快捷键

选择类 Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本。 Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑。举个栗子:快速选中并更改所有相同的变量名...

AndyZhouX ⋅ 24分钟前 ⋅ 0

XamarinAndroid组件教程RecylerView自定义适配器动画

XamarinAndroid组件教程RecylerView自定义适配器动画 如果RecyclerViewAnimators.Adapters命名空间中没有所需要的适配器动画,开发者可以自定义动画。此时,需要让自定义的动画继承Animation...

大学霸 ⋅ 25分钟前 ⋅ 0

eureka 基础(二)

使用Eureka服务器进行身份验证 如果其中一个eureka.client.serviceUrl.defaultZone网址中包含一个凭据(如http://user:password@localhost:8761/eureka)),HTTP基本身份验证将自动添加到您...

明理萝 ⋅ 28分钟前 ⋅ 1

Kubernetes(五) - Service

Kubernetes解决的另外一个痛点就是服务发现,服务发现机制和容器开放访问都是通过Service来实现的,把Deployment和Service关联起来只需要Label标签相同就可以关联起来形成负载均衡,基于kuberne...

喵了_个咪 ⋅ 28分钟前 ⋅ 0

更新队友POM文件后报错

打开报错的地方的pom及其引用方法所在文件的pom,观察其版本号是否一致,不一致进行更改

森火 ⋅ 41分钟前 ⋅ 0

IDEA使用sonarLint

一、IDEA如何安装SonarLint插件 1.打开 Idea 2.点击【File】 3.点击【Settings】 4.点击【Plugins】 5.在搜索栏中输入“sonarlint”关键字 6.点击【Install】进行安装 7.重启Idea 二、IDEA如...

开源中国成都区源花 ⋅ 46分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部