OC1_类与对象

//
//  main.m
//  OC1_类与对象
//
//  Created by zhangxueming on 15/6/9.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>

//面向过程与面向对象

//C语言偏向面向过程
//面向过程强调业务的逻辑
//五子棋
//1.显示棋盘 2.黑子先走 3.判断输赢 4.绘制棋盘 5.白子下棋 6.判断输赢 7.绘制棋盘 8.返回第二步 9.下棋结束
//用函数把逻辑过程中的每一步实现, 通过函数调用加上控制结构实现整个项目

//面向对象强调的是对象
//1.黑白双方 2.棋盘系统 3.下棋规则

//黑白双方负责接收用户输入, 告知棋盘系统显示棋盘, 通过棋盘规则判断输赢

//类与对象
//从生活上:
//对象             类
//章子怡 奥巴马     人类
//小黑             狗类
//小飞的macbook    computer

//官方定义
//类: 具有相同特征事物的统称(抽象的概念)
//对象: 类的实例化(形象)

//从编程的角度来看
//结构体: 封装了数据结构
//函数: 封装了处理数据的方法
//类: 既封装数据结构, 又封装了处理数据的方法 (升级版的结构体)
//对象: 用类定义的实例(类类型的对象)

//类: Car     对象: Car *mycar
//Person    Person *xiaoHua

//实例方法(对象方法)与实例变量
//[window earse];
//[text write];
//[text read];
//[view show];
//[xiaoHua age];

//Person
//{
//  NSString *name;
//  int age;
//}

//@interface: 定义类的关键字
//@end: 表示结束
//Student : 类名(类名的首字母要大写)

//系统类的命名 NS+每个单词的首字母大写
//NSObject
//Next Step
//NSObject
//NSString
//NSArray
//NSData
//NSNumber
//NSMutableArray

@interface Student : NSObject   //NSObject类是一个根类(基类)
{
    NSString *_name;//实例变量的命名通常用_开头(习惯使然),以后每个单词的首字母大写;
    int _age;
}

//构造(初始化)方法

//- 表示对象(实例)方法,给类的对象调用  + 表示类方法,给当前类调用,通常用类名来调用
//id : 泛型对象指针 类似void *
//无形式参数, 返回值为 id类型  方法名: init
- (id)init;
//有一个形式参数 name , 返回值为 id类型  方法名: initWithName:
- (id)initWithName:(NSString *)name;
//有两个形式参数 name age, 返回值为 id 类型 方法名: initWithName:andAge:
- (id)initWithName:(NSString *)name andAge:(int)age;

//OC中的命名规范:第一个单词的首字母小写,以后每个单词的首字母大写 "驼峰规则"

//匿名方法, 方法名: initWithName::
//- (id)initWithName:(NSString *)name :(int)age;

//getter方法
//读取实例变量的方法
- (NSString *)getName;
- (int)getAge;

//setter方法
//修改实例变量的方法
- (void)setName:(NSString *)name;
- (void)setAge:(int)age;
- (void)setName:(NSString *)name andAge:(int)age;

//类方法
//给当前类调用, 通过类名调用

+ (void)testStudent;

@end

//@implementation + 类名 //实现类的关键字
@implementation Student

//initWithXXX
- (id)initWithName:(NSString *)name andAge:(int)age
{
    self = [super init];//super是调用父类方法的关键字(编译器符号)
    //先用父类的构造初始化自己, 然后再初始化自定义的实例变量
    //self 指向调用者的对象指针
    if (self) {
        _name = name;
        _age = age;
    }
    return self;
}

//getter方法实现
- (int)getAge
{
    return _age;
}

- (NSString *)getName
{
    return _name;
}

//setter方法的实现

- (void)setName:(NSString *)name
{
    _name = name;
}

- (void)setAge:(int)age
{
    _age = age;
}

- (void)setName:(NSString *)name andAge:(int)age
{
    _name = name;
    _age = age;
}

//测试当前类是否可用
+ (void)testStudent
{
    Student *xiaoHua = [Student alloc];//alloc 类方法 创建对象

    xiaoHua = [xiaoHua initWithName:@"小华" andAge:12];

    NSLog(@"name = %@, age = %i", [xiaoHua getName], [xiaoHua getAge]);

    Student *xiaoFei = [[Student alloc] initWithName:@"小飞" andAge:20];
    [xiaoFei setName:@"小小飞" andAge:22];

    NSLog(@"name = %@, age = %d",[xiaoFei getName], [xiaoFei getAge]);
}

@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {

        [Student testStudent];

    }
    return 0;
}
时间: 2024-08-06 00:59:03

OC1_类与对象的相关文章

Java 第七章 类和对象 笔记

一.对象的特征--类的属性 每个对象的每个属性都有特定的值 对象的操作--类的方法 二.封装:对象同时具有属性和方法两项特性.     对象的属性和方法通常被封装在一起,共同体现事物的特性,     二者相辅相成,不能分割. 三.类和对象的区别:     类:抽象的概念,是一个模子,确定了对象的属性和方法.    对象:能够看得见摸得着的实物.具有静态和动态特征. 四.定义类的步骤:     1.定义类名      2.定义类的属性 访问修饰符 属性类型 属性名称=默认值:     3.定义类的

类与对象

1.1 类和对象的关系   为什么要采用面向对象思想进行程序设计与开发 1.可以实现代码的复用 2.符合人思考的方式   类和对象的定义 1.类的定义:用class关键修饰的叫做类 2.对象的定义:类名定义的数据类型   类和对象之间关系 1.由对象归纳为类,是归纳对象共性的过程 2.在类的基础上,将状态和行为实体化为对象的过程为实例化   1.2 定义类   定义类的语法,类主要由成员变量和成员方法构成(暂不提构造函数) eg: publicclassStudent { //成员变量 intn

【编程语言】Java中的类和对象learn by Imooc

 一.什么是类和对象 * 类是模子,确定对象将会拥有的特征(属性)和方法 * 类的特点: *     类是对象的类型 *     具有相同属性和方法的一组对象的集合 * 对象的属性 *     属性-对象具有的各种特征 *     每个对象的每个属性都有用的特定值 * 对象的方法 *     方法-对象执行的操作(能干什么) * 类和对象的关系 *     类是抽象的概念,仅仅是模板 *     对象是一个你能够看得到,摸得着的具体实体 二. 如何定义Java的类 * 1.类的重要性:所有Jav

C++ 成员变量是别的类的对象

?在成员函数中,可以将this指针当参数传递,也可以返回this指针,或返回通过this指针拿到的对象 /* 成员变量是别的类的对象 */ #include <iostream> using namespace std; //日期类 class Date { int year,month,day; public: //构造方法 Date(){ cout << "Date() " << endl; } //有参 Date(int _y,int _m,i

l类与对象课后作业

java 的初始化规律 执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”. 执行类的构造函数. 类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行.因此,适合于封装那些“对象创建时必须执行的代码” 当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行. 请自行编写示例代码验证以上结论. public class InitializeBlockDemo { /**   * @param args   */ public static vo

第五节 类和对象

面向对象怎么理解? 1.1 面向对象是相对面向过程而言 1.2 面向对象和面向过程都是一种思想 1.3 面向过程:强调的是功能行为 1.4 面向对象:将功能封装进对象,强调具备了功能的对象 1.5 面向对象是基于面向过程的 特点: 三个特征:封装.继承.多态 我们在开发过程中,就是在找对象进行使用,没有对象就new一个对象. 找对象:建立对象,使用对象,维护对象的关系 封装: (1)是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. (2)好处:将变化隔离:便于使用:提供重用性:提高安全性

C++笔记二:类和对象

类和对象 1:面向对象基础 2: 定义类和对象 3: 类和对象的使用 4: 构造函数和析构函数 5: this指针和复制构造函数 6: static静态成员 7: const对象和const成员 8: friend友元 ---------------------------------------------------------------------------------------------------------------------- (1)面向对象基础 一.什么是面向对象程序

类、对象和包

相关概念: 对象: 对象是存在的具体实体,具有明确定义的特征和行为. 类:是具有相同属性和行为的一组对象的集合.类是对象的抽象,对象是类的实例. 包:包就是文件夹.利用包可以可以组织相关的类,同时可以做到信息的隐藏. 属性:属性用于描述对象的特征.由于属性是属于一个对象的组成,所以属性也叫成员变量.属性跟随对象放在堆空间中,书写在类中,在方法之外,随对象产生而产生,随对象销毁而销毁.特点:属性用于描述对象的特征,对象之间彼此独立,一个对象属性的变化不会影响其他对象属性的变化.属性通过对象. 的方

8.python之面相对象part.1(初识类与对象)

一.类和对象的概念. 什么是类 类就是把一类事物相同的特征和动作整合到一起就是类比如说"人"就是一个类. 什么是对象 对象就是基于类创建出来的一个具体存在的事物这个事物包含了将其创造出来的类的特征和动作. 类与对象有什么关系一切的对象都是由类产生的假如说造一支笔首先要有一个造笔的模版上帝制造人也是一样制造一个人也需要一个造人的模版这个模板就是人的"类"然后根据类的定义来产生一支支笔和一个个的人. 什么是实例化 由类产生对象的过程就是实例化类实例化的结果就是一个对象对