类和对象-封装-封装设计案例3(点和圆的关系)

简介: 类和对象-封装-封装设计
#include <iostream>
using namespace std;
//封装设计案例-点和圆的关系
//因为圆的属性-圆心 和 点都是坐标,所以设计一个坐标类 
class coordinate{
private:
  float x;//坐标x 
  float y;//坐标y 
public:
  void setx(float X)//设置坐标x 
  {
    x=X;
  }
  void sety(float Y)//设置坐标y 
  {
    y=Y;
  }
  float getx()//获取坐标x 
  {
    return x;
  }
  float gety()//获取坐标y 
  {
    return y;
  }
}; 
//设计圆类
class circle{
private:
  float r;//半径 
  coordinate c1;//圆心 
public:
  void setr(float R)//设置半径 
  {
    r=R;
  }
  void setc(coordinate &C) //设置圆心 
  {
    c1=C;//c1.x=C.x
       //c1.y=C.y 
  }
  float getr()//获取半径 
  {
    return r;
  }
  coordinate getc1()//获取圆心 
  {
    return c1;
  }
}; 
//全局函数判断点和元的关系 
void is_incircle(coordinate &m,circle &c)
{
  float d=(m.getx()-c.getc1().getx())*(m.getx()-c.getc1().getx())+(m.gety()-c.getc1().gety())*(m.gety()-c.getc1().gety());
  if(d==c.getr()*c.getr())
  {
    cout<<"点在圆上"<<endl; 
  }
  else if(d>c.getr()*c.getr())
  {
    cout<<"点在圆外"<<endl;
  }
  else
  {
    cout<<"点在圆内"<<endl;
  }
}
int main(int argc, char** argv) {
  coordinate m;//创建点对象 
  m.setx(10);//设置x坐标 
  m.sety(9);//设置y坐标
  coordinate M;//创建圆心的点 
  M.setx(10);//圆心x坐标 
  M.sety(0); //圆心y坐标
  circle c;//创建圆对象 
  c.setr(10);//设置半径
  c.setc(M);//创建圆心 
  //调用判断函数
  is_incircle(m,c);
  return 0;
}
目录
相关文章
|
6月前
|
安全
面向对象特征(抽象、封装、继承、多态)的具体用法
面向对象特征(抽象、封装、继承、多态)的具体用法
25 0
|
6月前
面向对象三大特征——封装,继承
面向对象三大特征——封装,继承
|
7月前
|
Serverless PHP
当谈论面向对象编程时,这四个概念是非常重要的。以下是对接口、继承、封装和多态的简要说明
本文介绍了面向对象编程的四个核心概念:接口、继承、封装和多态。接口定义对象的行为规范,类通过实现接口确保符合所需行为。继承允许在已有类基础上创建新类,实现代码重用。封装是将数据和操作捆绑并隐藏内部细节,提高安全性和可维护性。多态使对象在运行时能表现出不同行为,增加代码灵活性和可扩展性。文中还提供了代码示例来说明这些概念。
53 0
|
7月前
|
Java
Java面向对象编程,解释封装、继承和多态的概念。
Java面向对象编程,解释封装、继承和多态的概念。
82 2
|
设计模式
设计模式中的六种关系以及代码之间的对应
设计模式中的六种关系以及代码之间的对应
168 0
设计模式中的六种关系以及代码之间的对应
|
存储 安全 Java
Java面向对象编程三大特征 - 封装
Java面向对象编程三大特征 - 封装
80 0
|
前端开发
前端学习案例8-寄生组合继承1
前端学习案例8-寄生组合继承1
64 0
前端学习案例8-寄生组合继承1
|
前端开发
前端学习案例9-寄生组合继承2
前端学习案例9-寄生组合继承2
52 0
前端学习案例9-寄生组合继承2
下一篇
DataWorks