面向对象编程课件
- 格式:pptx
- 大小:1.15 MB
- 文档页数:26


PLC的面向对象编程
文章后面关于程序标准化的优越性,作者写到“传统的中国控制工业,一个程序设计由一个人完成,这样他还必须 负责现场调试,而拥有丰富经验的程序员一般是三十岁后,这时他已经成家,而显然长期出差对家庭不利,很多优秀的程序员为了家庭考虑不得不改行,要么转到管理岗位,要么去制造工厂搞设备维护,这是资源的严重流失。毫无疑问,使用以上的设计流程,我么可以让经验丰富的程序员搞标准库和架构的设计,而让刚踏入这 个行业的年轻人搞应用设计和调试,这不仅可以让老程序员继续他自己的工作,而不影响家庭,也可以让年轻的程序员参入现场调试,培养自己的经验,提高自己的收入。”
感慨啊感慨。
――――――――――――――――――――――――――――
作者:吴向阳
出处:
阅读:572
发布时间:2007-10-19 10:56:00
供稿:
面向对象编程是计算机高级语言的一种先进的编程模式,在工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多优秀特点如 “继承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编程的基本概念就是类和类的实例(即对象),我们只需要使用这种概念就可以了。在计算机编程中我们需要把一些事物抽象和归纳,才能编写类,而在工业控制系统中,控制对象如:电机,阀等等是很明显的控制类别,不需要抽象就可以很明显的针对它 们编写类,以下将会用到西门子的Step7编程语言和施奈德的Unity 编程语言来讲解PLC的面向对象编程。
一、 实现方式
在Step7中使用功能块(即FB)编程,一谈到此大家就会想到西门子提出的模块化编程,不错,就是这个模块化编程,但西门子提出的模块化、背景数据块、多重背景等名词并不能让大家很明白的理解和使用这种优秀的设计理念。如果大家从面向对象编程的角度去理解,则可以很好的理解这种设计模式。“FB块”被看 成“类”,它可以被看成是对相似的控制对象的代码归纳,如对MM440的变频器可以编写FB块:MtrMM440,这在面向对象编程中称为“类”,当需要 编程控制具体的电机时,可以给它分配一个背景DB块,在面向对象编程中称为类的实现(即创建类的实例:对象),当需要控制多个电机时,可以分配不同的背景 DB到这个FB块,即创建类的多个实例。Step7中有另外一种程序块,即FC块,以FC块为主的编程在西门子中称为结构化编程,这也可以类比于计算机编程中的面向过程编程,即纯粹以函数为主体的编程。
上机四 面向对象编程(上)
【上机目的】
1)理解类与对象的概念
2)掌握类声明的方法
3)掌握类创建对象的方法
4)掌握构造方法
5)掌握成员变量与类变量区别
6)掌握成员方法与类方法区别
【上机环境】
JDK1.6+Eclpise3.2
【上机准备】
1)复习课件中理论知识
2)练习课堂所讲的例子
【上机内容】
1、创建猴子类。具体要求如下:
1)编写一个类Monkey,用来表示猴子类;
2)给Monkey类确定添加4个属性:3个实例成员变量(名字、体重、年龄)、1个静态成员变量(爱好:默认值为:吃香蕉);
3)添加默认构造方法和有参构造方法(3个参数,分别给名字、体重和年龄赋初始值)
4)编写展示猴子能够爬树(climbTree)的方法――提供两个参数传入:分别代码猴子的名字(name)和爬树的高度(height)(方法内只需打印猴子的”名字+会爬树,能爬+高度”)
5)测试:在main方法中创建两个猴子对象monkey1(皮蛋、50、3)和monkey2(兰兰、45、2),monkey1使用默认构造方法创建,monkey2使用有参构造方法创建。分别打印出monkey1和monkey2的名字、体重、年龄和爱好。并调用monkey1和monkey2的爬树方法。
2、创建矩形Rectangle类。具体要求如下:
1)创建一个Rectangle类;
2)创建属性:两个double成员变量:width和height。
3)创建方法:计算矩形的周长getLength()和面积getArea()。
4)测试:创建Rectangle对象,并给两个成员变量赋值,调用周长和面积的方法,输出周长和面积。 参考答案:
第一题:
第二题:
-------------------------------------------seeker-------------------------------------------
- 1 - 面向对象编程
【成员变量的封装】
通过get和set方法进行取值和赋值:
(eclipse中提供智能实现变量成员的get和set方法)
class Human
{
//成员属性都是私有的
private String name ;
private String sex ;
private int age ;
public String getName()
{
return name ;
}
public void ↘
setName(String name)
{
= name ;
}
//省略其他变量的set和get方法
public void work()
{
System.out.println(“work”) ;
}
public class HumanDemo
{
public static void main(String[] args)
{
Human jim = new Human() ;
//设置成员变量的值
jim.setName(“Jim”) ;
jim.setAge(20) ;
……
System.out.println(“Age : ”
+ jim.getAge()) ;
}
}
输出结果:
Age:20 -------------------------------------------seeker-------------------------------------------
- 2 - 【成员变量的继承】
1. public成员变量:任何子类都可以继承它。
public class FatherClass
{
public String str1 = “父类属性”;
实验二 面向对象编程(1)
1.实验目的
掌握Java程序面向对象编程的基本架构,会运用面向对象的思想编写Java程序。
2.实验内容
实验题1 阅读如下程序,完成思考题。
class CCircle
{ double pi;
double radius;
double getRadius()
{ return radius;
}
void setCircle(double r, double p)
{ pi=p;
radius=r;
}
}
public class Ex2_1
{ public static void main(String args[])
{ CCircle cir1=new CCircle();
cir1.setCircle(2.0,3.1416);
System.out.println("radius="+cir1.getRadius());
}
}
[基本要求] 运行程序并观察运行结果。
[思考问题] 试述程序中主要语句的作用。
在类CCicle中,定义了两个全局变量pi和radius。
void setCircle(double r, double p)
{ pi=p;
radius=r;
}
为构造方法,初始化数据成员。
double getRadius()
{
return radius;
}
为类函数,返回值radius。
实验题2 设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。
实验代码:
public class Car {
public String name;