黑马程序员--OC--OC中的类

------Java培训、Android培训、iOS培训、.Net培训期待与您交流! ------- 

OC程序的运行过程

1.编写OC程序:.m源文件

2.编译.m文件为.o目标文件:cc -c xxxx.m

3.链接.o文件为a.out可执行文件:cc xxxx.o -frameworkFoundation

4.执行a.out文件:./a.out

·      #import 的功能跟#include一样,只是更好用,他避免了头文件的多次包含

·      为了能使用OC的特性, 一定要引入#import <Foundation/Foundation.h>

设计(定义)一个类

// 设计(定义)一个车类

//@implementation @end

// :NSObject :让Car这个类具备创建对象的能力(继承)

@implementation Car :NSObject

// 这个大括号里面只能写所有的属性

{

    //@public:让对象的属性可以被外面的指针访问,默认是私有的

@public

    int wheels;//默认基本数据类型的初始值都是0

}

 

// @end的前面,大括号{}外面写行为

// Car对象增加一个行为(方法)

// 给对象增加一个行为,必须以减号 -开头,给类增加一个对象是+

// OC方法中的小括号()只是主要扩住类型

- (void) run

{

    // 访问车子对象内部的属性,直接用属性名就可以

    NSLog(@"%i个轮子,%f时速的车子跑起来了!",wheels, speed);

}

+ (void) test

{

    // 这是类方法。上面那个-号的是对象方法。

}

类的调用

// OC中想执行一些行为,首先写个 [行为执行者 行为名称]

 

// new这个行为执行完毕后,会返回这个对象的地址

Car *c =[Car new];

// c指向的车子对象的wheels属性赋值

c->wheels= 4; // 等价于(*c).wheels = 4

 

// 给指针变量c指向的对象发送一条run消息,让这个对象执行run这个行为

[c run];

类的声明和实现

// 声明一个类

/*

 1.类名

 2.继承了NSObject

 3.声明属性

 4.声明方法(仅仅是声明,不需要实现)

 5.实现和声明中的成员变量不能同名

 */

@interface Book : NSObject

{

@public

    double price;//这些属性称为对象的成员变量

}

 

// 声明一个方法(行为)

-  (void)reng;

 

 

 

 

// 定义(实现)一个类

/*

 只用来实现@interface中声明的方法

 */

@implementation Book

 

- (void)reng

{

    NSLog(@"%f的书被扔了!",price);

}

多参数的声明

- (void) fly

{

    NSLog(@"ican fly, my age is %d", age);

}

 

// 一个参数对应一个冒号

// 冒号也是方法名的一部分

- (void)fly:(int)howHeight

{

    NSLog(@"ican fly, my age is %d, my height %d", age,howHeight);

}

 

// 多个参数的情况。  withTime是方法名的一部分.times是参数名称

- (void)fly:(int)howHeight:WithTime(int)times

{

}

 

OC对象方法和函数的区别

1. 函数属于整个文件,在文件的任意地方都能调用;对象的方法只属于这个对象,只有对象才能调用

2. 对象的方法只能声明在@infterface 和@end 之间,对象方法只能实现在@implementation 和@end之间。

函数的声明和定义可以写在任意地方,函数不能归某个类所有,只属于某个文件。

 

 


AI实战-学生生活方式模式数据集分析预测实例(含24个源代码+69.54 KB完整的数据集) 代码手工整理,无语法错误,可运行。 包括:24个代码,共149.89 KB;数据大小:1个文件共69.54 KB。 使用到的模块: pandas os matplotlib.pyplot seaborn plotly.express warnings sklearn.model_selection.StratifiedShuffleSplit sklearn.pipeline.Pipeline sklearn.compose.ColumnTransformer sklearn.impute.SimpleImputer sklearn.preprocessing.OrdinalEncoder numpy sklearn.model_selection.cross_val_score sklearn.linear_model.LinearRegression sklearn.metrics.mean_squared_error sklearn.tree.DecisionTreeRegressor sklearn.ensemble.RandomForestRegressor sklearn.model_selection.train_test_split sklearn.preprocessing.PowerTransformer imblearn.pipeline.Pipeline imblearn.over_sampling.SMOTE sklearn.ensemble.AdaBoostClassifier sklearn.metrics.accuracy_score sklearn.metrics.precision_score sklearn.metrics.recall_score sklearn.metrics.f1_score optuna scipy.stats torch torch.nn torchvision.transforms torchvision.models torch.optim cv2 glob glob.glob torch.utils.data.DataLoader torch.utils.data.Dataset random.shuffle torch.utils.data.random_split torchsummary.summary matplotlib.ticker pyspark.sql.SparkSession pyspark.sql.functions.count pyspark.sql.functions.max pyspark.sql.functions.min pyspark.sql.functions.avg pyspark.sql.functions.stddev_samp pyspark.sql.functions.skewness pyspark.sql.functions.kurtosis pyspark.sql.functions pyspark.ml.feature.Tokenizer pyspark.ml.feature.VectorAssembler sklearn.preprocessing.LabelEncoder keras.models.Sequential keras.layers.Dense keras.utils.to_categorical ptitprince statsmodels.distributions.empirical_distribution.ECDF statsmodels.stats.outliers_influence.variance_inflation_factor ppscore sklearn.feature_selection.mutual_info_classif sklearn.decomposition.PCA sklearn.model_selection.StratifiedKFold sklearn.tree.DecisionTreeClassifier sklearn.metrics.balanced_accuracy_score sklearn.metrics.confusion_matrix mlxtend.plotting.plot_confusion_matrix scipy.stats.pearsonr scipy.stats.f_oneway sklearn.feature_selection.mutual_info_regression sklearn.feature_selecti
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值