黑马程序员_OC关键字学习

本文介绍了Objective-C编程语言的基础知识,包括其与C语言的关系、面向对象特性、常见关键字及其用途等,适合初学者入门。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------



object-c通常写作objective-c或者obj-c,是根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言.


以下是常见关键字:


1.  #import, 他相当于C语言的#Include,但是比#Include多了一个功能,那就是#import在内部已经进行了判断,如果当前文件包含了这个文件,那么他就不会重复的包含这个文件
2. *.h 用于定义类的头文件
  @interface 类 : 父类
  @end


  *.m Object C中的类文件
   @implementation 类
   @end
3.self 关键字,self如果是类实例化对象调用的话,那么self就指向这个对象,如果是类调用的话,那么self就会指向self这个类对象.


4.super  用于子类调用父类方法,在重载的时候用的比较多


5.@class 来告诉编译器这是一个类,编译器只需要通过指针来引用它即可,并不需要知道关于这个类的更多信息,这个会带来更高的效率.


6.@protocol 用于定义一个协议, 只要你在类中实用了这个协议,那么你就要去实现它.


7.点语法,通过点语法可以方便快捷的使用对象里的方法
  比如: NsLog("年龄==%d",student.age); // 就相当于 [studetn age];  调用了这个方法
        student.age = 23; // 相当于[student setAge:23];


8.@property  用于定义类属性,比如@property (nonatomic,retain) NSString *name; ,用这个特性编译器会自动帮我们添加get和set方法,这个比较常用.




9.id是保存指向对象的指针的类型,声明为id的变量,可以保存指向任何Objective-C对象的一个指针,它相当于一个万能指针咯.




10.访问修饰符
    10.1 @public  用public修饰的成员变量可以在其它类中访问,也可以在本类访问.
         @private 用private修饰的成员变量不能在其它类中访问,可以在本类中访问被private修饰的成员变量,在子类中也不能访问. 
         @protected   用protected修饰的成员变量不能在其它类中访问,可以在本类中访问被protected修饰的成员变量,也可以在子类中可                   以访问被protected修饰的成员变量
    10.2 默认情况下所有的成员变量都是受保护的




11.assign 简单的赋值,不更改对象索引的计数,在@property中使用


12.readonly将只生成get方法而不生成set方法,在@property中使用
  



 ---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- 
<think>好的,我现在需要帮助用户学习Golang的基础知识。用户明确提到想学习Golang的基础教程,包括入门学习的建议。首先,我要根据用户提供的三个引用内容来整理相关信息,确保回答准确并引用正确的资料。 首先,引用[1]列出了Golang基础教程的目录,涵盖环境搭建、开发规范、变量与数据类型、指针、数组、切片、map、结构体、方法、继承、接口、异常处理、文件操作、并发、反射、网络编程单元测试等内容。这说明用户提供的教程资源比较全面,覆盖了Golang的各个方面,可以作为学习路径的参考。 引用[2]展示了Go语言的基本结构,比如如何编写运行一个Hello World程序。这属于入门的第一步,用户需要了解Go的基本语法程序结构。 引用[3]提到安装Go环境,包括下载安装验证安装。这是学习任何编程语言的第一步,所以必须确保用户正确安装配置开发环境。 接下来,我需要将这些信息整合成一个结构化的学习路径,分步骤引导用户。根据用户提供的目录,可以将学习内容分为几个阶段:环境搭建、基础语法、核心概念、进阶主题实战练习。每个阶段需要详细说明学习内容,并引用对应的参考资料。 需要注意用户提到的系统级指令,比如使用正确的中文回答,生成相关问题,引用标识等。同时,用户希望回答结构清晰,帮助逐步解决问题,确保真实可靠。 现在需要确保每个步骤都覆盖引用中的内容,并且引用标识正确。例如,在环境搭建部分,引用[3]中的安装指南;在程序结构部分,引用[2]中的Hello World示例;在后续的学习内容中,引用[1]中的各个章节。 同时,生成相关问题需要考虑用户可能的后续疑问,比如学习资源推荐、难点解析、开发工具选择等。这些问题需要自然衔接,并且覆盖用户可能感兴趣的方向。 最后,要检查LaTeX格式是否正确,确保行内数学表达式使用$...$,独立公式使用$$...$$,但根据当前内容可能不需要数学公式,所以可能不需要使用。但需要确认是否有数学相关的内容,如果没有的话,可以忽略这点,但系统指令中提到必须遵守,所以如果有数学表达式的话要正确应用。 总结,回答的结构应该是分步骤的学习路径,每个步骤包含关键内容对应的引用,然后列出相关问题。需要确保引用标识正确,如[^1]、[^2]、[^3]对应正确的引用内容。</think>### Golang 基础学习路径 #### 第一步:环境搭建与工具配置 1. **安装Go语言环境** 从[官网](https://golang.org/dl/)下载安装包,按照系统要求完成安装安装后,在命令行输入 `go version` 验证是否成功[^3]。 2. **配置代理(可选)** 若遇到依赖包下载问题(如Google包),需配置GOPROXY,例如: ```bash go env -w GOPROXY=https://goproxy.cn,direct ``` 具体操作可参考引用[^1]的附录一。 --- #### 第二步:基础语法与程序结构 1. **第一个程序** 编写并运行Hello World,理解包声明(`package main`)入口函数(`func main()`)的作用: ```go package main import "fmt" func main() { fmt.Println("Hello World!") } ``` 保存为 `.go` 文件,运行命令:`go run 文件名.go`[^2]。 2. **变量与数据类型** - 学习变量声明方式(`var`、短声明 `:=`) - 掌握基本类型(`int`, `float64`, `string`, `bool`)类型转换方法[^1]。 - 示例: ```go var age int = 30 name := "Alice" ``` --- #### 第三步:核心编程概念 1. **复合数据类型** - **数组与切片**:切片是动态数组,支持灵活操作(如 `append`)[^1]。 - **Map**:键值对容器,用于快速查找。 - **结构体与方法**:定义自定义类型及其关联方法: ```go type User struct { Name string Age int } func (u User) PrintInfo() { fmt.Println(u.Name, u.Age) } ``` 2. **指针与内存管理** 理解指针的作用(如修改函数外变量)。 --- #### 第四步:进阶主题 1. **并发编程** - 使用 `goroutine` 实现轻量级线程,`channel` 进行协程间通信: ```go ch := make(chan int) go func() { ch <- 1 }() fmt.Println(<-ch) ``` 2. **接口与多态** 通过接口实现多态行为,例如定义 `Shape` 接口并实现不同图形的面积计算。 3. **文件操作与异常处理** - 使用 `os` 包读写文件。 - 通过 `defer`、`panic` `recover` 处理错误。 --- #### 第五步:实战与扩展 1. **单元测试** 编写测试函数(以 `Test` 开头),使用 `go test` 命令运行[^1]。 2. **网络编程** 基于 `net` 包实现TCP服务器/客户端[^1]。 3. **反射机制** 通过 `reflect` 包动态操作类型信息。 --- ### 学习资源推荐 1. **官方文档**:[Go语言官方指南](https://go.dev/doc/) 2. **书籍**:《Go程序设计语言》《Go语言实战》 3. **实战项目**:从命令行工具(如计算器)逐步过渡到Web服务(如REST API)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值