iOS面试问题:基础知识
是的,许多伟大的作者已经讨论了这个话题,他们有很多的问题和答案。 在我的这篇文章中,我没有做任何不同的事情,尽管我认为分享我的采访经历会很棒。
那么从哪里开始呢?
诚实的答案将来自“ 基础知识 ”。 而且基础是Oops概念。即面向对象的编程概念。 如果面试官是有经验的人,他或她肯定会从此开始。 因此,在本文中,我们将介绍Oops概念。 对于与此相关的问题,我们应该准备好至少一个衬纸答案,并在需要时提供示例。
问:什么是面向对象编程?
面向对象编程是一个概念,它涉及现实世界中的对象以及操作这些对象的方法。
目标C / Swift中的基本概念:
- 类 :类是一组属性和方法。
//迅速
类Person:NSObject {
var firstName:字符串?
var lastName:字符串?
var age:整数? func printFullName(){
//一些要打印的代码
}
} // Objective-C
@interface Person:NSObject @ property(强原子)NSString * firstName;
@property(强原子)NSString * lastName;
@property(assign,atomic)int age;-(void)printFullName;
@结束
- 对象 :对象是类的实例。
//迅速
var person1 = Person()//目标C
人* person1 = [[Person alloc] init]
- 继承 :继承是一种从另一个类派生一个类以具有相似属性和方法的机制。 从子类或子类调用派生类,从其派生的类称为超类或父类 。
// Swift class Employee:Person {
var employeeID:整数
}班级学生:人{
var studentID:整数
} // Objective C @interface雇员:人员
@property(赋值,原子)int employeeID;
@ end @ interface学生:人
@property(赋值,原子)int studentID;
@结束
- 多态性 :多态性是一种具有多种实现的能力,适用于实例变量,对象和方法。 方法重载和方法重载是多态的形式。
方法重载 : 它允许使用具有不同数量的参数或不同数据类型的参数的相同方法名称。
***不支持方法重载 目标C.
//迅速
类Person:NSObject {func printPerson(name:String){
print(“我的名字是\(名字)”)
} func printPerson(age:Int){
打印(“我的年龄是\(年龄)”)
}
}
方法重写 :在这种情况下,子类可以更改父类继承方法的实现。
//迅速
员工类别:Person {func printPerson(name:String){
打印(“我的名字是\(名称)&员工ID:\(self.employeeID)”)
}}
- 抽象 :这是一种使其他类具有自己的实现的抽象类方法的方法。 在Objective C和Swift中,我们没有抽象类,但是可以通过Interfaces / Protocols实现相同的功能。
协议忙{
func goTo :(地点:任何)
}班级员工:忙碌{func goTo:(place:Any){
打印(“去办公室”)
}
}班级学生:忙碌{func goTo:(place:Any){
打印(“进入大学”)
}
}
这些是oops的核心概念,通常在面试中被要求检查您是否有足够的基础。
我试图使内容保持简单。 希望对大家有帮助。
在下一个教程中,我将介绍与Objective C相关的面试问题。
谢谢您阅读此篇…!! 🙂