OC基础--OC中的类方法和对象方法

PS:个人感觉跟C#的静态方法和非静态方法有点类似,仅仅是有点类似。明杰老师说过不要总跟之前学过的语言做比较,但是个人觉得,比较一下可以加深印象吧。重点是自己真的能够区分开!

一、OC中的对象方法

  1.以减号“-”开头

  2.只能让对象调用,没有对象,这个方法根本不可能被执行

  3.对象方法能访问实例变量(也就是成员变量)

二、OC中的类方法

  1.以加号“+”开头

  2.只能用类名调用,对象不能调用

  3.类方法中不能访问实例变量(也就是成员变量)

  4.适用场合:当不需要访问成员变量的时候,尽量用类方法

值得注意的是类方法和对象方法可以同名,但是慎用啊!

三、代码示例:

 1 /*
 2  设计一个计算器类
 3  1.类名:Caculator
 4  2.方法:
 5    * 返回PI:3.14
 6    * 计算某个数值的平方
 7    * 计算两个数值的和
 8  */
 9 
10 #import <Foundation/Foundation.h>
11 
12 // 计算器的声明
13 @interface Caculator : NSObject
14 // 方法的声明
15 + (double)pi;
16 + (double)pingfang:(double)number;
17 + (double)sumOfNum1:(double)num1 andNum2:(double)num2;
18 @end
19 
20 // 计算器的实现
21 @implementation Caculator
22 
23 // 实现@interface中声明的方法
24 + (double)pi
25 {
26     return 3.14;
27 }
28 
29 + (double)pingfang:(double)number
30 {
31     return number * number;
32 }
33 
34 + (double)sumOfNum1:(double)num1 andNum2:(double)num2
35 {
36     return num1 + num2;
37 }
38 @end
39 
40 
41 int main()
42 {
43     [Caculator pi];
44     
45     [Caculator pingfang:10];
46     
47     [Caculator sumOfNum1:10 andNum2:5];
48     return 0;
49 }

 

转载于:https://www.cnblogs.com/gchlcc/p/5165910.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux vnc 改端口号,RHEL6下配置vncserver服务(包括修改vnc端口)

RHEL6下配置vncserver服务(包括修改vnc端口)(2012-04-13 23:36:07)标签&#xff1a;it配置完vsftpd后&#xff0c;还必须要开的服务就是vnc啦&#xff0c;首先&#xff0c;在root用户下利用yum源安装vncserver:yum list | grep vncyum install tigervnc-server.i686安装完成后&…

简单Linq笔记

Linq是.net 3.5才引入的 要引入命名空间System.Linq. Linq to XML要引入System.Xml.Linq Linq to ADO.NET要引入System.Data.Linq 每个Linq查询都是以from子句开始,Linq查询中,select子句和select子句都是必备子句.Linq查询表达式 必须以select或group子句结束 from字句包括两…

Groovy在Spring中的简单使用实例

2019独角兽企业重金招聘Python工程师标准>>> 步骤一&#xff1a; 如果你使用的是Eclipse,则需先添加groovy插件&#xff0c;以便操作groovy文件。 可参&#xff1a;http://blog.csdn.net/haigenwong/article/details/22947075 步骤二&#xff1a; 步骤三&#xff1a…

linux6个服务级别,RHEL 6 和 RHEL 7 的一些有关运行级别,服务管理,服务启动等方面的区别介绍...

systemd是7中的新命令组&#xff0c;集成了service和chkconfig的功能。system命令可参考&#xff1a;https://www.cnblogs.com/ray-bk/p/10415173.html运行级别概念的区分System V init 运行级别 systemd 目标名称 作用0 …

.net core 2.0学习记录(一):搭建一个.Net Core网站项目

.Net Core开发可以使用Visual Studio 2017或者Visual Studio Code,下面使用Visual Studio 2017搭建一个.net Core MVC网站项目。 一.新建项目 二.选择 Web应用程序(模型视图控制器) 三.项目结构和之前的比对还是有很大的不同,wwwroot用来存放前端的一些静态资源(css/js/image/h…

一个APP的由来

之前在站酷、UI中国、优设等网站看过不少的APP教程、规范等一些东西。自认为有些规范讲的内容过于繁琐&#xff0c;对于像我这样的大多数设计师来说看着看着就懵逼了.... 如何联系我&#xff1a;【万里虎】www.bravetiger.cn 【QQ】3396726884 &#xff08;咨询问题100元起&…

【easy】234. Palindrome Linked List

ques: 判断一个链表是否回文 Could you do it in O(n) time and O(1) space? method&#xff1a;先将链表分为两部分&#xff0c;将后半部分反转&#xff0c;最后从前往后判断是否相等。 topic: 链表&#xff0c;链表反转 /** * Definition for singly-linked list. * public …

linux qt 添加.so,Linux环境下qt/qt creator添加OpenCV的配置

第一次使用qtcreator&#xff0c;我是做图像处理的&#xff0c;想在Ubuntu下将qtcreator和opencv的环境配置起来&#xff0c;着资料和尝试配置&#xff0c;耗费了我一个上午和一个下午&#xff0c;终于最终摸出了门路&#xff0c;以供大家分享。第一步&#xff1a;下载和安装op…

算法纲要

基本 枚举、贪心、递归、分治、递推、模拟 STL&#xff08;pair、vector、set、map、queue、string、algorithm&#xff09; 构造、位运算、常数优化 数据结构 队列、堆、栈、链表 排序&#xff08;插入、冒泡、快速、归并、堆、桶、基数&#xff09; 二分查找、散列表 并查集、…

Auto Layout 和 Constraints

文章修改 2月1日&#xff1a;添加使用约束、编辑约束和iOS特性三个部分2月24日&#xff1a;根据自己的理解&#xff0c;修改iOS特性部分的内容 自动布局Auto Layout Auto Layout&#xff0c;通过设置在View上的约束&#xff0c;动态计算视图层次结构中所有的View的尺寸和位置。…

哪个linux桌面有电池显示,(求助!!!)进ubuntu后桌面只显示左上角!(已解决)...

jonathan303 于 2008-10-24 18:23:45发表:G卡 好说了 因为你们有配置你的显卡文件 你在系统里-》有一个显卡的调节程序&#xff0c; 你打开的时候里面没有显示&#xff0c; 你进行一下操作&#xff1a;sudo dpkg-reconfigure xserver-xorg一路默认cltaltbackspace重启X执行步骤…

Linux NTP时间服务器

NTP 时间服务器 ntp也是一种协议 ntp软件&#xff08;支持ntp协议&#xff09; CentOS6自带 CentOS7需要安装 chrony软件&#xff08;支持ntp协议&#xff09; CentOS7自带 安装ntp CentOS6系统自带ntp&#xff0c;CentOS7需要自己安装 [rootm02 ~]# yum -y install ntp [ro…

Host 'xxx' is not allowed to connect to this MySQL server.

mysql开启远程连接 今天在服务器安装了mysql&#xff0c;准备用mysqlguitools远程登录的时候出错&#xff0c;提示&#xff1a;Host xxx is not allowed to connect to this MySQL server。网上找了一些资料&#xff0c;是mysql未开启mysql远程访问权限导致。 记录解决方案供以…

tkinter的GUI设计:界面与逻辑分离(三)-- 多页面

知识点&#xff1a; 使用 tkinter.Frame.tkraise() 函数去提升当前 tkinter.Frame 的 z 轴顺序&#xff0c;使得多个 tkinter.Frame 的可见性得以切换 本文基于&#xff1a;win7 python34 1 2 3 4 5 import matplotlib matplotlib.use("TkAgg")from matplotlib.back…

linux软件证券,linux

1.说明在*nix环境下&#xff0c;经常通过源码安装软件。./configure make make install基本上都是定式了。本文对于configure的基本原理进行阐述&#xff0c;并借助http://concurrencykit.org/开源包的configure文件&#xff0c;对于实际的运行过程进行分析。2.configure基本背…

0x08算法设计与分析复习(二):算法设计策略-回溯法2

参考书籍&#xff1a;算法设计与分析——C语言描述&#xff08;第二版&#xff09; 算法设计策略-回溯法 子集和数 问题描述 已知n个不同的正数wi(0≤i≤n−1)的集合&#xff0c;求该集合的所有满足条件的子集&#xff0c;使得每个子集中的正数之和等于另一个给定的正数M。 回溯…

Android源码解析--SwipeMenuListView仿QQ聊天左滑

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/50612714 绪论&#xff1a; 好久没写博客了&#xff0c;最近比较懒&#xff0c;不想写博客&#xff0c;但是在看书&#xff0c;看一些Android进阶的书&#…

UVA 125 Numbering Paths

题意 给出方向&#xff08;有向&#xff09;然后判断从一个点到另一个点的方案数。如果有无数条那么对应位置置为-1 直接先dp处理出来。dp[i][j] sum(dp[i][k]*dp[k][j]) 同时如果两点之间有无限条路径。那么这两点之间必然有一环存在。有f[k][k]!0 #include <map> #…

linux 循环执行ip停止服务,java调用远程服务器的shell脚本以及停止的方法实现

最近接了个需求&#xff0c;要求远程调shell脚本&#xff0c;你没听错&#xff01;&#xff01;&#xff01;需求就一句话&#xff0c;咱是谁&#xff0c;咱是优秀的开发选手。考虑再三&#xff0c;有两种实现方式&#xff1a;方案一&#xff1a;脚本所在服务器安装一个客户端&…

mysql-防止XSS攻击

1,防止Xss攻击 数据库查询数据操作,为了防止注入,要执行参数化查询,也就是直接利用execute直接进行sql语句的执行, 因为exexute本身就有接收语句变量的参数位, execute()函数本身就有接受SQL语句变量的参数位&#xff0c;只要正确的使用&#xff08;直白一点就是&#xff1a;使…