博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初始面向对象化编程(c++和java)
阅读量:6237 次
发布时间:2019-06-22

本文共 4661 字,大约阅读时间需要 15 分钟。

我一直从事的是PLC方面的工作,编程的概念也只有PLC专属的编程语言,如梯形图、结构化文本等,随着工业界的发展,也逐渐向IT界靠,也开始接触C、VB之类的东西,没有系统的学过C、VB,都是自己看书或是需要什么功能就去网上寻求答案,所以对C、VB的认知基本为零,随着工作的需要,逐渐也接触多了,开始对此产生了兴趣,因此在这开了博客,以记录我学习的过程。

之前有过c语言的自学,一些基本语法和规则就不再叙述,我将从零开始学C++和JAVA,希望在我入门之前这两门语言不要被淘汰。~~~^_^~~~ (为啥没有插入表情的功能呢?)

最早接触的是java,就从它开始吧。

关于java的由来,百度一下就有很多,这就不多说了,我只记录一些自己认为是重点的东西。

首先是java开发的工具:

JDK:java的开发工具,选择java se版本,安装完成后需要对系统的环境变量进行配置,方法如下:

右键“我的电脑”==》“属性”==》“高级”==》“环境变量”==》在“系统变量中”找到“Path”属性编辑,将java.exe和javac.exe所在的路径添加进去,一般它们在JDK安装目录下的“bin”目录下,最后用“;”结束。

NetBeans IDE:Sun公司提供的一个java开发平台,还没用过,先make,以后用再做记录。

 安装好软件后就开始吧!

基本的概念就不重复了,下面通过实例进行说明:

1 /* 2 创建一个圆的模型,通过模型创建2个圆,并分别计算它们的周长和面积 3 */ 4  5 class C    //定义圆的类(模型) 6 { 7     private double r;    //定义半径变量r,其中private表示该变量为私有的,除本身的类能访问,其他地方都不能访问 8     final private double PI = 3.1415926;    //定义PI常量,其中final表示该变量为最终状态,不能修改 9     10     public double perimeter()    //定义计算周长函数,其中public表示该函数是公共的,任何地方都能访问11     {12         return 2*r*PI;    //计算圆周长13     }14     15     public double area()    //定义计算面积函数16     {17         return PI*r*r;    //计算圆面积18     }19     20     public C(double r)    //定义有参构造函数,函数名与类名相同,并且没返回值21     {22         this.r = r;    //this.r指的是类的变量,而非函数的变量23     }24 25 }26 27 class Round    //定义启动类28 {29     public static void main(String[] aaa)    //static表示静态的30     {31         C a1 = new C(6.0);    //创建一个对象a132         C a2 = new C(3.5);    //创建一个对象a233         34         //printf()函数用法与c语言的一致,只是要注意调用的格式35         System.out.printf("a1的周长:%f\t", a1.perimeter());36         System.out.printf("a1的面积:%f\n", a1.area());37         System.out.printf("a2的周长:%f\t", a2.perimeter());38         System.out.printf("a2的面积:%f\n", a2.area());39         System.out.printf("两个圆的周长之和:%f\t", a1.perimeter() + a2.perimeter());40         System.out.printf("两个圆的面积之和:%f\n", a1.area() + a2.area());41     }42 }43 44 /*45 结果:46 47 a1的周长:37.699111     a1的面积:113.09733448 a2的周长:21.991148     a2的面积:38.48450949 两个圆的周长之和:59.690259     两个圆的面积之和:151.58184350 */

 

 写完以上代码后,保存为*.java的格式,然后打开“命令提示符”,也就是cmd.exe,通过dos命令进入*.java文件所在的文件夹,然后进行以下操作:

1.编译。输入:

javac Round.java

2.运行。输入:

java Round

注意,*.java文件的文件名最好与启动类的名字相同

 

那么,用c++怎么实现上述代码呢?

c++的编译器我用的是C-free,在编译的时候要把腾讯的电脑管家关闭,不然经常会出现电脑管家认为编译的程序是病毒就隔离了,不知道360会不会出现这种情况,晕啊~~

1 /* 2  创建一个圆的模型,通过模型创建2个圆,并分别计算它们的周长和面积 3 */ 4  5 #include
//为了比较,就选择使用stdio.h,而不用iostream 6 7 class Round //定义圆的类(模型) 8 { 9 private: //private表示以下定义的变量和函数为私有的,除本身的类能访问,其他地方都不能访问10 double r; ////定义半径变量r11 const static double PI = 3.1415926; //定义PI常量,其中const表示该变量为常量,static表示该变量是静态的,如果没有static,c++不允许在该类的范围内给变量赋值的,而java可以 12 public: //public表示以下定义的变量和函数是公共的,任何地方都能访问13 Round(double r) //定义有参构造函数,函数名与类名相同,并且没返回值 14 {15 this->r = r; //和java的this意义一样,注意书写方法 16 }17 const double perimeter() //定义计算周长函数,const标识 perimeter()的参数不允许改变 18 {19 return 2*PI*r; ////计算圆周长20 }21 const double area() //定义计算面积函数22 {23 return PI*r*r; //计算圆面积24 }25 26 }; //注意这里需要加分号,java不加分号 27 28 int main(void) //主函数 29 {30 Round a1(6.0); //创建一个对象a1 31 Round a2(3.5); //创建一个对象a232 33 printf("a1的周长:%f\t", a1.perimeter());34 printf("a1的面积:%f\n", a1.area());35 printf("a2的周长:%f\t", a2.perimeter());36 printf("a2的面积:%f\n", a2.area());37 printf("两个圆的周长之和:%f\t", a1.perimeter() + a2.perimeter());38 printf("两个圆的面积之和:%f\n", a1.area() + a2.area());39 40 return 0;41 }42 /*43 结果:44 47 a1的周长:37.699111 a1的面积:113.09733445 a2的周长:21.991148 a2的面积:38.48450946 两个圆的周长之和:59.690259 两个圆的面积之和:151.58184347 */

 

那么,c又是怎么写呢?

1 /* 2 计算圆的周长和面积  3 */ 4  5 #include
6 7 const double PI = 3.1415926; 8 9 double perimeter(double r)10 {11 return 2*PI*r;12 }13 14 double area(double r)15 {16 return PI*r*r;17 }18 19 int main(void)20 {21 double r1,r2;22 23 r1 = 6.0;24 r2 = 3.5; 25 26 printf("a1的周长:%f\t", perimeter(r1));27 printf("a1的面积:%f\n", area(r1));28 printf("a2的周长:%f\t", perimeter(r2));29 printf("a2的面积:%f\n", area(r2));30 printf("两个圆的周长之和:%f\t", perimeter(r1) + perimeter(r2));31 printf("两个圆的面积之和:%f\n", area(r1) + area(r2));32 33 return 0;34 }35 /*36 结果:37 47 a1的周长:37.699111 a1的面积:113.09733438 a2的周长:21.991148 a2的面积:38.48450939 两个圆的周长之和:59.690259 两个圆的面积之和:151.58184340 */

 

小结:

通过上述例子可以看出,java和c++的编程思路和c的编程思路是不同的,c的思路是要解决问题,先把问题分解若干个功能(函数),然后通过调用函数达到解决问题目的;而java和c++增加了对象的概念,思路是先对某个事物的属性和方法(函数)进行封装,也就是创建类,然后通过创建一个一个具体的对象,通过修改对象的属性、调用对象的方法(或类的方法)达到解决问题的目的,这样的编程方法更安全、代码重用率更高、层次感更强,更符合人的逻辑思维。

今天先总结到这儿,以后继续。

转载于:https://www.cnblogs.com/ludong1983/p/3271684.html

你可能感兴趣的文章
Asp.net mvc自定义Filter简单使用
查看>>
[LeetCode][Java] Binary Tree Level Order Traversal
查看>>
机器学习模板
查看>>
java thread 线程40个问题汇总
查看>>
第二部分计算机系统基础[专业课考试2]
查看>>
如何选择开源许可证
查看>>
x264代码剖析(八):encode()函数之x264_encoder_close()函数
查看>>
下半部和推后运行的工作
查看>>
(转) RabbitMQ学习之延时队列
查看>>
A Taxonomy for Performance
查看>>
C#文件运行类的VB.NET版本号
查看>>
iOS 的单例模式 dispatch_once
查看>>
tomcat 配置https
查看>>
劝学篇-荀子
查看>>
解决redis aof文件过大的问题
查看>>
一台PC双网卡,一个外网一个内网
查看>>
[asp.net mvc 奇淫巧技] 05 - 扩展ScriptBundle,支持混淆加密javascript
查看>>
C++卷积神经网络实例:tiny_cnn代码具体解释(6)——average_pooling_layer层结构类分析...
查看>>
系统函数C字符串的实现(11):strchr
查看>>
JS操作MongoDB
查看>>