初始面向对象化编程(c++和java)

本文记录了一位从事PLC工作的人在工业界发展的影响下,开始接触并学习C++和JAVA的过程。从Java开发工具的介绍、环境配置到基本概念的讲解,再到通过实例学习如何创建类、构造函数、计算圆的周长和面积,最后介绍了C++和C两种语言的实现方式。文章详细地阐述了不同编程语言的特点和应用,特别强调了面向对象编程的概念和代码重用的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我一直从事的是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);    //创建一个对象a1
32         C a2 = new C(3.5);    //创建一个对象a2
33         
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.097334
48 a2的周长:21.991148     a2的面积:38.484509
49 两个圆的周长之和:59.690259     两个圆的面积之和:151.581843
50 */

 

 写完以上代码后,保存为*.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>    //为了比较,就选择使用stdio.h,而不用iostream 
 6 
 7 class Round    //定义圆的类(模型)
 8 {
 9     private:    //private表示以下定义的变量和函数为私有的,除本身的类能访问,其他地方都不能访问
10         double r;    ////定义半径变量r
11         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);    //创建一个对象a2
32 
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.097334
45 a2的周长:21.991148     a2的面积:38.484509
46 两个圆的周长之和:59.690259     两个圆的面积之和:151.581843
47 */

 

那么,c又是怎么写呢?

 1 /*
 2 计算圆的周长和面积 
 3 */
 4 
 5 #include<stdio.h>
 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.097334
38 a2的周长:21.991148     a2的面积:38.484509
39 两个圆的周长之和:59.690259     两个圆的面积之和:151.581843
40 */

 

小结:

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值