NSString *str2 = [[NSString alloc] initWithString:@”adf”]等同于1)
4)NSString *str3 = [NSString stringWithFormat:@”name is %@”,@”小小”] int i = [str intValue];
从结构上看,所有的数据(data)最终都可以分解成三种类型:
1: 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词。
第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)
第三种类型是映射(mapping),也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作散列(hash)或字典(dictionary),比如"首都:北京"。
2:
21世纪初,Douglas Crockford寻找一种简便的数据交换格式,能够在服务器之间交换数据 XML的生成和解析都太麻烦
上面四条规则,就是Json格式的所有内容。
1)并列的数据之间用逗号(", ")分隔。
2)映射用冒号(": ")表示。
3)并列数据的集合(数组)用方括号("[]")表示。
4)映射的集合(对象)用大括号("{}")表示。
"北京市的面积为16800平方公里,常住人口1600万人。上海市的面积为6400平方公里,常住人口1800万。"
protocol MyProtocolName <NSObject> 没有变量;
3: @end 1.2使用协议: 1: @interface CustomView:UIView<MyProtocolName>
id 类型在iOS中是一个通用类型,有点类似C语言的void*类型
1.3用协议修饰变量: id<MyProtocolName>myNewVariable; 委托对象的实现
person.age = 10;//点语法,等效与[person setAge:10];注意,这里并不是给person的属性赋值,而是调用person的setAge方法
1. 类目:
2. 有时我们需要在一个已经定义好的类中增加一些方法,而不想去重写该类。比如,当工程已经很大,代码量比较多,或者类中已经包住很多方法,已经有其他代码调用了该类创建对象并使用该类的方法时,可以使用类别对该类扩充新的方法。
3. 注意:类别只能扩充方法,而不能扩充成员变量。
4.
5. 延展:
6. 1.延展是一种特殊形式的类目
7. 2.延展中定义的方法在类本身中实现
8.
9. 协议:
10. 协议(protocol)类似于java语言里的接口(interface),定义了一组方法,而不提供具体实现, 只有那些“遵守”(conform to)或“采用”(adopt)了这些Protocol的类来给出自己的实现。协议不是类本身,它们仅定义了其它对象有责任实现的接口。当在自己的类中实现协议的方法时,用户的类就是遵守这个协议的,协议声明的方法可以被任何一个类实现。
//类目
@interface NSString(CSayHi)
-(void)sayHi;//类目的方法
.延展可以为类添加私有方法,不能添加变量 因此外部访问不到
tcp协议和udp协议的差别 是否连接面向连接面向非连接 传输可靠性可靠不可靠 应用场合传输大量数据少量数据 速度慢
1、Class类的访问权限: 即如果写了一个类没有写访问权限修饰符,那么就是默认的访问权限,同一个包下的类都可以访问到,即使可以实例化该类 2、类成员变量的访问权限: (3). java的“访问权限修饰符”赋予
Java牛角尖【011】: Java中只支持单继承吗? 又是一个牛角尖,只是语言不够严谨而已,Java中只支持类的单继承,接口之间的继承同样也是使用extends关键字,但是接口之间是支持多继承的,如下面的例子:
严格的说应该是Java中类的继承只支持单继承。
java中接口的定义与实现