类和对象笔记

标题:类和对象笔记——封装

1.封装的意义:
1.将属性和行为作为一个整体,表现生活中的事物
2.将属性和行为加以权限控制
在下面我们将对这些概念进行讲解

意义1:
在设计类的时候我们要将属性和行为写在一起表现事物。
语法: class 类名 {访问权限:属性/行为};// ; 不能省去
举个例子:

class Cricle//(类名)
{
	//访问权限:公共权限,意义二中我们会解释
	public :
	//半径->属性->一般是定义变量
	int m_r;
	//计算周长->行为->一般是函数
	double calculate_length()
	{
		return 2*3.14*m_r;
	 }
	/*
	这里的为什么没有参数列表,在这个里面我们可以把
	m_r看作是calculate——length的“全局变量“,因为
	这个函数在m_r的作用域内部; 
	*/ 
 };//一定不要少了;

光是定义了一个类是不行的我们还必须要有这个类的对象,将这个类进行实例化:

//创建一个对象,将类实例化
Cricle c1;
//给对象赋值:
c1.m_r=10;
cout<<c1.calculate——length()<<endl;

这就是意义1,将属性和行为作为一个整体,表现生活中的事物。

意义2:
类在设计时,可以把属性和行为放在不同的权限下面加以控制。
权限一共分为三种:
首先理解几个概念:类内访问就是类里面的其它成员直接使用成员名进行访问。类外访问,意思是通过形如对象名.成员名的方式进行访问。此时的.可以理解为中文的“的”。当然,->也有相同的含义。

1.公共权限(public):成员类内可以访问,类外也可以访问。通俗来讲就是,当你把该类实际化后 通过实例化对象可以访问。
2.保护权限(protected):成员类内可以访问,类外不可以访问
3.私有权限(private):成员类内可以访问,类外不可以访问

那么2和3有什么区别?
我们举一个现实生活中的例子:假设银行卡里的钱是不是,丈夫和妻子都可以访问,但是其他人不可以访问这就是保护权限。私有权限就是,丈夫的私房钱妻子就不能访问。私有的意思就是除了class自己之外,任何人都不可以直接使用。

下面我们举个代码实例:

class Person 
	{
		//公共权限属性 
		public:
		string name;
		//保护权限属性 
		protected:
		string m_car;
		//私有权限属性 
		private:
		int qq_password;
		
		//下面代码就是我们所说的类内访问 
		public:
		void func()
		{
			name="张三";
			m_car="红旗";
			qq_password=1212123123; 
		 } 
	};

如果我们把类内访问那个位置的public改成private,那么则无法在类外调用,而public可以。
我们看看下面这张图片:

看吧,我们想访问实例化的对象中根本没有m_car和qq_password这两个个选项,因为他们的权限不允许
看吧,我们想访问实例化的对象中根本没有m_car和qq_password这两个个选项,因为他们的权限不允许。

看了简单的类和对象介绍,那么学了c的同学就要问,这和struct有什么区别
1.struct默认权限为公共权限,而class的默认权限为私有权限。

struct c1
{
	int a;//默认是公共权限等价于public:int a; 
};
struct c2
{
	int a;//默认是私有权限等价于private:int a; 
};

2.class 可以使用模板,而 struct 不能。(后面文章会解释)

将成员属性设置为私有:
优点:
1.将所有成员的属性设置为私有可以控制自己的读写权限

class Person 
{
;
	//公共权限属性 
	public:
		
	    void Set_name(string name)
	    {
		    m_name=name;
	    }
	//私有属性    
	private:
		string m_name;
};
int main()
{
	Person s1; 
	s1.Set_name("张三"); 
}

普通情况下private是私有权限对吧,无法访问,但是我们通过公共权限下的函数修改了私有权限的值

2.对于读写权限我们可以解释数据的有效性。
在这里插入图片描述
这个位置我们输入的年龄不符合条件,所以输出不符合条件,应证了这个好处。

以上就是这一章节的部分学习笔记,其中掺杂一些本人观点如有错误欢迎指正。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值