#2【面向对象思想】

01.面向对象

  1. 面向对象的程序设计是对面向过程的继承和发展
  2. 面向对象可以理解为:现实世界是由对象组成的
  3. 对象在程序中抽象为两个部分:属性(数据)、行为(函数)
  4. 三大特点:封装、继承、多态、(四大:抽象)
  5. 重用:代码重复使用;多线程;低耦合(耦合--内聚),内部互相影响小;组件编程

02.类与对象

  1. 类是一种用户自定义的数据类型(函数、数据)结构体中不包含函数
  2. 类是具有相同属性和行为的对象的集合
  3. 类是对象的抽象,对象是类的具体
  4. 对象:通过使用类类型定义的变量
  5. //语法
    class 类名
    {
    	//默认是私有类型(实现封装)
    		//成员:1 数据  2 函数
    
    	//访问权限修饰关键字
    public:	//公有的
    	//成员:1 数据  2 函数
    private:	//私有的(当前类可访问)
    	//成员:1 数据  2 函数
    protected://被保护的----继承相关(当前类和子类可访问)
    	//成员:1 数据  2 函数
    };
  6. #include <iostream>
    using namespace std;
    
    class Sheep//构建一个类
    {
    public:
    	char name[32];
    private:
    	int age;
    public:
    	void setAge(int n)//通过一个公有的函数访问私有属性
    	{
    		age = n;
    	}
    
    public:
    	void eat()
    	{
    		cout << "eat" << endl;
    	}
    	void speak()
    	{
    		cout << "我叫" << name << ",我" << age << "岁了。" << endl;
    	}
    private:
    	void speakEnglish()
    	{
    		cout << "My name is " << name << ",I'm " << age << " years old." << endl;
    	}
    };
    
    int main()
    {
    	Sheep Xi_Yangyang;//定义一个对象
    	Xi_Yangyang.eat();//eat()是公有属性可以直接访问
    	strcpy(Xi_Yangyang.name, "喜羊羊");
    	Xi_Yangyang.setAge(12);
    	Xi_Yangyang.speak();
    
    	Sheep* pY;
    	//pY->eat();//这个指针没有指向任何对象,不允许
    	pY = &Xi_Yangyang;
    	pY->eat();//指针要有指向后才可以访问成员
    	pY->speak();
    
    	return 0;
    
    }
  7. 类是类(C++),结构体是结构体(C/C++),二者不同,结构体中不能有函数

在C++中,class和struct的区别与联系(关键字!=类与结构体)

  1. C++里面,可以用class定义一个类,也可以用struct定义一个类
  2. C++里面,可以用struct声明一个结构体
  3. 一般情况下用class定义类,用struct定义结构体。(class定义的类访问权限默认是私有的,struct 定义的类访问权限默认是公有的)

03.String类

  1. String是C++中的字符串
  2. 类似于C语言中的字符数组
  3. 其中包括许多方法,使用时需要额外包含<string>头文件
  4. C语言中使用include<string.h>,C++中使用include<string>
  5. #include <iostream>
    using namespace std;
    #include<string>
    
    int main()
    {
    	string str;
    	str = "abc123";//直接赋值字符串
    	char ch = str[2];//用字符接收字符串对应下标的字符
    	str.length();//得到字符串长度
    	str.clear();//清除字符串内容
    	str.empty();//判断返回字符串是否为空
    	str == str;//字符串比较
    
    	return 0;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值