c++基础学习第二天

#面向对象的程序设计
知识点:
类和对象
类是对具有共通属性和行为的事物进行抽象之后得到的概念。
当把类这个抽象概念具体化就得到了对象。

##面向对象编程
面向对象三大特性:封装,继承,多态
1、封装
意义(隐藏性):将属性和与其对应的行为放在一起,作为一个整体。对属性和行为的使用加以限制。
语法:
class 类
{
访问控制符:
成员变量;
成员函数;
}
设计一个圆类

#include <iostream>
using namespace std;//使用命名空间
void main()
{
	Circle c1;//实例化,创建了圆类的具体实例
	c1.r=20;//设置圆的半径
	cout<<"圆的周长是"<<c1.calculate()<<endl;
	Circle c2;
	c2.r=10;
	cout<<"圆的周长是"<<c2.calculate()<<endl;

}
const double PI=3.14;
class Circle//类名首字母大写
{
	pubilc://访问控制符,public表示共有权限
	int r;//属性在代码中表现为成员变量
	double calculate()//行为在代码中变现为成员函数
	{
		return 2*PI*r;
	};
}

1、设计一个学生类
2、包括学生的学号,姓名,可以显示学生类的学号和姓名。
3、再增加一个设置学生姓名的函数。

#include <iostream>
using namespace std;//使用命名空间
#include <string>
class Student
{
	public:
		int id;
		string name;/*string是c++中的字符串类,用来取代c中的char*,要包含string头文件*/
	public:
		void showname()
		{	
			cout<<name<<endl;
		}
		void showid()
		{
			cout<<id<<endl;
		}
		void setname(string n)
		{
			name=n;
		}
};
void main()
{
	Student s1;
	s1.id=1001;
	s1.setname("jack");
	s1.showname;
	s1.showid;
}

在c++中通过访问控制符来对属性和行为进行限制:
public 公有权限,类内可以访问,类外也可以
protected 保护权限,类内可以访问,类外不可以
private 私有权限,类内可以访问,类外不可以
(以上是现阶段的理解,在后续学习继承时,会有拓展)

设计一人类

#include <iostream>
using namespace std;//使用命名空间
#include <string>
class Person
{
	public:
		string m_name;//姓名,公有权限
	protected:
		string m_car;//汽车,保护权限
	private;
		int m_cardID;//银行卡密码,私有权限
	
	public:
		void showInfor()
		{
			cout<<m_name<<endl;//类内访问共有成员变量
			cout<<m_car<<endl;//类内访问保护成员变量
			cout<<m_cardID<<endl;//类内访问私有成员变量
		}
	
};
void main()
{
	Person p;//初始化对象
	p.m_name="jack";//在类外访问共有成员变量
	p.m_car="audio";//在类外访问保护成员变量,运行不可执行
	p.m_cardID="123456";//在类外访问私有成员变量,运行不可执行
}

PS:将成员变量设置为私有的优点
1、可以控制读写权限
2、可以对数据有效性进行检测
在这里插入图片描述
设计两个类,分别表示怪兽(抽象为一个圆)和子弹(抽象为一个点)。
设计思路:
1、使用坐标来表示原和点
2、判断是否击中
##公式:子弹到圆心的距离
D=L1-R=?0

#include <iostream>
using namespace std;//使用命名空间
#include <string>
//Boss类的创建
class Boss
{
	private:
		double b_x;
		double b_y;
		double b_r;
	public:
		//用get方法来获取设定的参数
		double getX()
		{
			return b_x;
		}
		double getY()
		{
			return b_y;
		}
		double getR()
		{
			return b_r;
		}
		//利用set方法来设定参数
		void setX(double x)
		{	
			b_x=x;
		}
		void setY(double y)
		{	
			b_y=y;
		}
		void setR(double r)
		{	
			b_r=r;
		}
	//子弹类的创建
	class bullet
	{
		private:
		double b_x;
		double b_y;
		
	public:
		//用get方法来获取设定的参数
		double getX()
		{
			return b_x;
		}
		double getY()
		{
			return b_y;
		}
		
		//利用set方法来设定参数
		void setX(double x)
		{	
			b_x=x;
		}
		void setY(double y)
		{	
			b_y=y;
		}
	};

void main()
{
	Boss b1;
	b1.setX(160);
	b1.setY(240);
	b1.setR(50);
	bullet b1;
	b1.setX(320);
	b1.setY(160);
	double a=b1.setY(240)-b1.setY(160);
	double b=b1.setX(320)-b1.setX(160);
	double L1;
	L1=a^2+b^2-r^2;
	if(L1<=0)
		cout<<"击中!"<<endl;
	else
		cout<<"让子弹飞一会!"<<endl;
}
		
		
}

代码中double定义函数与void定义函数的区别

总结:了解学习了c++中面向对象编程时创建类和方法,学习了c++编程中常用的get/set方法,学习了通过访问控制符来对属性和行为进行限制(一般在编程中,访问控制符用private,并且在c++中,默认的访问控制符为private)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值