进击的Objective-C--------Objective-C基础(-)

1.面向过程和面向对象
(面向对象三大特性:封装 继承 多态)
面向对象编程:分析解决问题组成的对象,从中抽象出类,调用方法(协调对象间的联系与通信),解决问题.
面向过程编程:分析解决问题的步骤,实现函数,一次调用
2类和对象:类和对象是面向对象的核心
类:具有相同特征和行为的事物的抽象
定义类包含两个部分:接口部分和实现部分.
1.接口部分:对外声明类的特征和行为
#import <Foundation/Foundation.h>
// 接口部分 新建的类继承于NSObject
@interface Grilfriend : NSObject{
// NSObject 是所有类的基类或父类
// 特征:实例变量
@public// 实例变量的可见度
NSString *_name;
NSString *_gender;// 实例变量起名字是加上_
NSInteger _age;// 基本数据类型或标量OC 别加*}
/***********行为*************/
- (void)eat;
- (void)spendMoney;
- (void)watchMovies;
- (instancetype)init;//(instancetype)=(id)
@end
2.实现部分:对内实现行为
#import "Grilfriend.h"
@implementation Grilfriend
//类的实现部分
-(void)eat
{
NSLog(@"你就知道吃,吃了100块的麻辣烫了");
}
-(void)spendMoney{
NSLog(@"你就知道花钱,都花了100块了");
}
-(void)watchMovies{
NSLog(@"你就知道看电影,都看了100部电影了");
}
@end
对象:对象是类的实例,类是对象的类型.
// 对象
Grilfriend *g1 = [[Grilfriend alloc]init];
// 第一步 开辟空间
// 第二步 初始化 在发送消息的时候使用方括号
Grilfriend *g2 = [[Grilfriend alloc]init];
// +号开头是类方法 只能用类调用 -号开头是实例方法 由实例调用
// 调用
[g1 eat];
[g2 spendMoney];
[g1 watchMovies];
// 实例变量的访问
   
    NSLog(@"%@ %@ %ld",g1->_name,g1->_gender,g1->_age);
    g1->_name = @"宋慧乔";
    g2->_age = 18;
    g1->_gender = @"女";
    NSLog(@"%@",g1->_name);
    NSLog(@"%@",g1->_gender);
NSLog(@"%ld",g2->_age);
初始化
Grilfriend *g1 = [[Grilfriend alloc]init];
-(instancetype)init{
_name = @"宋慧乔";
_gender = @"女";
_age = 16;
return self;// self就是指向自己的一个指针
}
NSLog
要输出的格式化占位:
%@ 对象
%d, %i 整数
%u   无符整形
%f 浮点/双字
%x, %X 二进制整数
%o 八进制整数
%zu size_t
%p 指针
%e   浮点/双字 (科学计算)
%g   浮点/双字
%s C 字符串
%.*s Pascal字符串
%c 字符
%C unichar
%lld 64位长整数(long long)
%llu   无符64位长整数
%Lf 64位双字
 
NSLog定义在NSObjCRuntime.h中,如下所示:
void NSLog(NSString *format, …);
 
 
NSLog (@”this is a test”);
NSLog (@”string is :%@”, string);
NSLog (@”x=%d, y=%d”, 10, 20);
 
但是下面的写法是不行的:
int i = 12345;
NSLog( @”%@”, i );
 
原因是, %@需要显示对象,而int i明显不是一个对象,要想正确显示,要写成:
int i = 12345;
NSLog( @”%d”, i );

转载于:https://www.cnblogs.com/sharkHZ/p/4984033.html

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

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

相关文章

ivy maven_将Maven与Ivy集成

ivy maven问题是&#xff1a;您在Ivy存储库中&#xff08;只有那里&#xff09;有一些资源&#xff0c;您想在基于Maven的项目中使用这些资源。 可能的解决方案&#xff1a; 由于Ivy可以轻松使用Maven样式的存储库&#xff08;因此&#xff0c;您的Ivy客户端可以继续使用Ivy并进…

video 微信 标签层级过高_什么是微信小程序二级分销系统?如何玩转?

微信二级分销系统是通过帮助企业打造微分销商城&#xff0c;从店铺、商品、会员、分销、营销、数据分析等不同功能模块&#xff0c;让一个微信店铺焕发无限可能。微分销系统基于二级分销&#xff0c;以全员开店&#xff0c;以客推客模式迅速推动销量增长&#xff0c;快速招募微…

docker搭建简单的ctf题目

0x01 docker常用命令 1.拉取镜像。 docker pull [image] 2.查看docker当前镜像。 docker image ls 或 docker images 3.新建一个docker容器&#xff0c;并映射端口号。 docker run -d -p [host port]:[docker port] [image] 4.查看运行中的docker容器。 docker ps -a 5.进入一…

使用爱思助手备份苹果手机数据的方法

背景:前段时间刚给对象买的一个紫色的苹果11,128G的那种,最近发现电池电量忽然就少很多,电池除了点问题,去苹果售后店准备换一个电池,还在保修期,区分一下售后店(回厂修十多天)及专卖店(有备用电池)。今天提前备份一下数据,防止数据丢失,一般内存不大可以使用手机…

高级Java教程

课程大纲 学习Java基础很容易。 但是&#xff0c;真正钻研该语言并研究其更高级的概念和细微差别将使您成为一名出色的Java开发人员。 网络上充斥着“软”&#xff0c;“便宜”&#xff0c;“低端” Java教程&#xff0c;但是所缺少的实际上是将您带入新的高度的材料。 本课程…

Cool!15个超炫的 CSS3 文本特效【上篇】

每一个网页设计师都希望创建出让用户能够赏识的网站。当然&#xff0c;这是不可能满足每个人的口味的。幸运的是&#xff0c;我们有最强大的工具和资源。实际上&#xff0c;我们非常多的网站模板&#xff0c;框架&#xff0c;内容管理系统&#xff0c;先进的工具和其他的资源可…

cmake 构建路径_新手必备:win10 系统下 VSCode+CMake+Clang+GCC 环境的搭建

打算用C/C把基本的数据结构与算法实现一遍, 为考研做准备, 因为只是想实现算法和数据结构, 就不太想用VisualStudio, 感觉VSCode不错, 遂在网上找了一些教程, 结合自己的需求, 配置一下开发环境。安装软件1、CMakeCMake是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists…

一文带你了解腾讯位置服务的开发与接入

背景:地图是空间信息的图形传递形式,是信息传输工具之一。编图者须充分掌握原始信息,研究制图对象,结合用图要求,合理使用地图语言,将信息准确地传递给用图者。用图者须熟悉地图语言,深入阅读分析地图信息,形成对制图对象正确而深刻的认识。 腾讯位置服务为各类应用厂商…

网络安全单兵工具 -- YAKIT

网络安全单兵工具 -- YAKIT 一、下载及安装 1、原作者及下载地址 https://github.com/yaklang/yakit2、双击下载好的exe文件&#xff0c;点击核心引擎安装与升级 3、点击意见更新Yak引擎 4、以管理员启动 5、点击连接引擎 二、使用方法 1、扫描端口/指纹 2、爆破与未授权 3、专…

Java - 文件(IO流)

Java - 文件 (IO)流的分类&#xff1a;> 文件流&#xff1a;FileInputStream | FileOutputStream | FileReader | FileWriter> 缓冲流&#xff1a;BufferedInputOutStream | BufferedOutputStream | BufferedReader | BufferedWriter> 转换流&#xff1a;InputStreamR…

windows配置samba客户端_如何搭建与Windows客户机结合使用的Samba文件服务器?

据Samba项目网站声称&#xff0c;Samba是一组开源/免费软件套件&#xff0c;它为SMB/CIFS客户机提供了无缝顺畅的文件和打印服务。不像实现SMB/CIFS网络协议的其他系统(比如面向HP-UX的LM Server、面向OS/2的LAN Server或VisionFS)&#xff0c;Samba(及其源代码)可以免费获取(最…

Apache 降权 禁用php,Windows下的apache降权

0x00 准备与目标 目标&#xff1a;apache服务降权 操作系统&#xff1a; Windows Server 2012 R2 Standard 环境&#xff1a;phpstudy2018 0x01 操作 1.安装启动服务 打开phpstudy2018&#xff0c;其他选项菜单--》服务管理器--》Apache--》安装服务。 运行模式选择系统服务&am…

孙叫兽进阶之路之压力与绩效

前言:如果我们把拉弦比作压力,把箭比作人,把箭的射程比作工作绩效,我们可以看到:压力对促进工作绩效有着一定的积极作用,但压力如果超出了人的承受范围,就会产生消极的影响。 具有挑战性能产生积极性压力最好,记住“今天工作不努力,明天努力找工作”

openjdk_从CLI监视OpenJDK

openjdk目前&#xff0c;我大部分时间都在Java虚拟机 &#xff08;JVM&#xff09;中和周围进行大量工作&#xff0c;大部分时间是在Linux上。 当事情变得不对劲并且我试图确定原因时&#xff0c;我接触了Java性能分析工具。 这些工具有两种形式&#xff0c;一种是精美的GUI&am…

Html.RenderPartial和Html.Partial在Razor视图中的区别

Html.RenderPartial和Html.Partial在Razor视图中的区别两者都可以输出一个Partial视图&#xff1b;其区别如下&#xff1a;1. Partial有返回值(MvcHtmlString)&#xff1b;RenderPartial没有返回值(Void)。  定义 1 //PartialExtensions.Partial 方法 (HtmlHelper, String) 2…

孙叫兽进阶之路之软件测试基础知识

简介:软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 从是否关心软件内部结构和具体实现的角度划分,测试方法主要有白盒测试和黑盒测试。白盒测试方法主要有代码检査法、静态结构…

交叉驰豫的影响因素_深度讲解:膝关节韧带为什么容易断裂?这5点因素影响非常大...

小科普&#xff1a;ACL 膝关节前交叉韧带 PCL后交叉韧带除了了解ACL损伤机制&#xff0c;弄清ACL损伤的风险因素对预防ACL损伤也是至关重要的。ACL损伤的风险因素也包括解剖学因素、生物力学因素、神经肌肉因素。所有的风险因素的确定有助于预防损伤。解剖学风险因素包括关节松…

CNVD-2022-10207:向日葵RCE

一&#xff1a;漏洞摘要 向日葵远程控制是一款面向企业和专业人员的远程pc管理和控制的服务软件。可以在任何有网络的情况下&#xff0c;轻松访问并控制安装了向日葵客户端的远程主机。同时还能实现远程文件传输、远程视频监控等功能&#xff0c;这不仅为用户的使用带来很多便捷…

手把手教你用Java设计并实现一个城市公交查询系统

背景:近年来, Internet推动了以互联网技术为核心的各项工作蓬勃展开,互联网的强大也大大的促进了社会的发展,整个社会信息化进程逐步加快,网络也变成了我们日常活动中越来越重要的组成成分。为了使得我国公交乘客出行及查询有关信息更方便,本文运用JAVA语言技术,Jsp技术,…

[Cogs14] [网络流24题#1] 飞行员分配方案 [网络流,最大流,二分图匹配]

经典二分图匹配&#xff0c;可以用匈牙利算法&#xff0c;也可以用最大流 代码如下&#xff08;Dinic&#xff09;&#xff1a; #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <c…