PhpPythonC++圆类的实现(OOP)

哎......被投诉了 😭😭😭😭😭

其实也不是小编不更,这不是期末了吗(zhaojiekou~~),而且最近学的信息收集和ctf感觉好像没找到啥能更的(不过最经还是在考虑更一下CTF的密码学的)然后就被催更了  @_# 蒽

                                                        

但是天还是无绝人之路的,他丢了一道面向对象的题目给我,好家伙还要用c艹来写

好险网安还是教了php和python的,那就来这两个版本都来试一下吧

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

题目:

先是Python_Version:

import math
pi = math.pi
class circle():def __init__(self,r,x,y):self.r=rself.x=xself.y=ydef __del__(self):print("This object is gonna destruct")def circuference(self):print("circuference = ",2*pi*self.r)def area(self):print("area = ",pi*(self.r)**2)outprint=circle(4,0,0)
outprint.circuference()
outprint.area()
del outprint

以下就来逐行讲解吧:

1.构造函数,用来初始化对象的属性,这里是将传入的r赋给类中的属性

 def __init__(self,r,x,y):self.r=rself.x=xself.y=y

2.析构函数,用于在对象被销毁时执行一些清理工作

def __del__(self):print("This object is gonna destruct")

3.然后就是写输出周长和面积的两个函数

def circuference(self):print("circuference = ",2*pi*self.r)def area(self):print("area = ",pi*(self.r)**2)

(当然了,这里也可以写成return的形式,然后print,这里我就偷个懒啦,嘻嘻)

4.最后就是创建对象,调用,销毁了

outprint=circle(4,0,0)
outprint.circuference()
outprint.area()
del outprint

(这里我取得半径是4,当然你们可以任意取)

这样就完成了一个圆类得目标,以下是输出:

接下来就是PHP_Version啦

<?php
class circle{public $r,$x,$y;function __construct(int $r,int $x,int $y){$this->r=$r;$this->x=$x;$this->y=$y;} function __destruct(){echo "</br>";echo "this object is gonna destruct";}function circumference(){echo  "circumference = ";print 2*pi()*$this->r;} function area(){echo "area = ";print (pi()*($this->r)**2);}
}$outprint=new circle(4,0,0);
$outprint->circumference();
echo "</br>";
$outprint->area();
unset($outprint);?>

开始之前不得不感叹一下还是python好用,简单又简洁

1.先是构造,和析构函数了,和上面的python类似 (记得echo “</br>”哦,php可不会自动换行)

 public $r,$x,$y;function __construct(int $r,int $x,int $y){$this->r=$r;$this->x=$x;$this->y=$y;} function __destruct(){echo "</br>";echo "this object is gonna destruct";}

2.然后就是写周长和面积得的计算了

function circumference(){echo  "circumference = ";print 2*pi()*$this->r;} function area(){echo "area = ";print (pi()*($this->r)**2);}
}

这里的pi是有()的哦,而且属性的调用php是$this->   而python是self.    这个可不要记混!!

3.然后就是创建,调用,销毁,和上面一样:

$outprint=new circle(4,0,0);
$outprint->circumference();
echo "</br>";
$outprint->area();
unset($outprint);

这样就完成了php的圆类实现了

以上就是两种编程语言对圆类的实现,当然了我的朋友是用c艹写的 (她写的太强啦,我看不懂wuuwu~~~)

#include <iostream>
using namespace std;
class Circle
{
private:int r;int x;int y;float c;float s;public:Circle(int a, int b, int c) : r(a), x(b), y(c) {}~Circle() { cout << "析构函数的调用" << endl; }void Getc(){c = 3.14 * r * 2;}void Gets(){s = 3.14 * r * r;}void show(){cout << "周长:" << c << endl<< "面积:" << s << endl;}
};
int main()
{Circle c1(1, 0, 0);c1.Getc();c1.Gets();c1.show();system("pause");return 0;
}

等到寒假时候学了c艹应该就能看懂了(笑死寒假想摆烂)以上就是对圆类的三种语言的实现啦

最近在学CTF那么下一篇就来更CTF的Crypto吧   ~~!!!~~~

        ​​​​​​​        ​​​​​​​        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/336842.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建网格(Grid/GridItem)

目录 1、概述 2、布局与约束 3、设置排列方式 3.1设置行列数量与占比 3.2、设置子组件所占行列数 3.3、设置主轴方向 3.4、在网格布局中显示数据 3.5、设置行列间距 4、构建可滚动的网格布局 5、实现简单的日历功能 6、性能优化 1、概述 网格布局是由“行”和“列”分…

【算法分析与设计】三数之和

题目 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 示例…

【LeetCode:49. 字母异位词分组 | 哈希表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

python 基础 面向对象

类 class Student:name Nonegender Nonenationality Nonenative_place Noneage Nonedef say_hi(self):print(self.name)def dowork(self,work):print(f"{self.name} {work}") student1 Student() student1.name "xxx" student1.gender "男&qu…

数据库开发工具Navicat Premium 15 mac软件特色

Navicat Premium 15 mac版是一款数据库开发工具&#xff0c;Navicat Premium 15 Mac版可以让你以单一程序同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。 Navicat Premium mac软件特色 无缝数据迁移 数据传输&#xff0c;数据同步和结构同步…

华为云AI:轻松实现图像识别调用

文章目录 前言一、环境配置关键步骤 二、图像识别实例媒资图像标签名人识别 总结 前言 基于华为云AI服务和java使用SDK实现图像识别&#xff0c;主要以媒资图像标签和名人识别为例。 一、环境配置 Maven&#xff08;没有直接下载华为的SDK包&#xff0c;而是使用Maven安装依赖…

cpolar 内网穿透 使用

cpolar 内网穿透 使用 官网地址&#xff1a;https://www.cpolar.com/ 官网文档&#xff1a;https://www.cpolar.com/blog/cpolar-quick-start-tutorial-centos-series 获取隧道Authtoken&#xff1a;https://dashboard.cpolar.com/auth 步骤 1、先去注册 在这个地方注册&…

[ 机器学习 ] 关于Jupyter Notebook中pytorch模块import失败的问题

0x01、问题描述 在使用WSL搭建Jupyter进行代码测试的时候 发现Miniconda&#xff08;虚拟环境均适用&#xff09;中安装的pytorch在Jupyter里面import失败 但在python解释器的命令模式里可以测试import成功 并且torch.cuda_available()打印True 以前用的是IDEA没怎么用Jup…

模仿Activiti工作流自动建表机制,实现Springboot项目启动后自动创建多表关联的数据库与表的方案

文/朱季谦 熬夜写完&#xff0c;尚有不足&#xff0c;但仍在努力学习与总结中&#xff0c;而您的点赞与关注&#xff0c;是对我最大的鼓励&#xff01; 在一些本地化项目开发当中&#xff0c;存在这样一种需求&#xff0c;即开发完成的项目&#xff0c;在第一次部署启动时&…

Qt之有趣的数字钟

一.效果 基于网络代码修改,支持时、分、秒;支持滑动、翻页和旋转。 二.实现 #include <QtCore> #include <QPainter> #include <QAction> #include <QWidget> #include <QMainWindow> #include <QTimer> #include <QKeyEvent> #…

【一竞技DOTA2】MinD_ContRoL加盟Tundra

1、近日Tundra战队正式官宣MinD_ContRoL加入队伍。他此前效力于Nigma战队,在离队不久后他便做出了加入Tundra战队的选择,借此他也成为了Tundra Esports战队已官宣了的阵容中的第四名选手。 2、Bleed战队正式官宣Mikoto和poloson加入战队。 Mikoto曾效力于东南亚赛区的Talon战队…

深度解析高防产品---高防CDN

高防CDN是一种基于云计算技术的网络安全防御系统&#xff0c;通过在全球范围内部署多个节点&#xff0c;实现对网站内容的加速和保护。其主要作用和功能包括安全防护、加速访问、跨运营商、跨地域的全网覆盖、提高网站的稳定性以及节约成本。高防CDN可以有效地解决不同地区的网…