找回密码
 立即注册
查看: 97|回复: 1

YXRA-SDK面向对象编程初窥

[复制链接]
已绑定手机

35

主题

99

回帖

1337

积分

金牌会员

积分
1337
发表于 2026-8-18 16:35:12 | 显示全部楼层 |阅读模式
yxra开发语言面向对象,yxrasdk基于yxra语言。今天让大家看看单片机如何面向对象编程了。今天的示例仅展现面向对象的继承性,至于抽象、接口,这些涉及到设计框架,比较烧脑子。
第一个类,InheritParent.yxra,此类为测试的父类,它没有extends,这种情况默认extends Object,即继承Object类。这个类中有两个可继承(protected)的属性number和text,一个构造方法,三个普通方法,均为public公开的。代码非常简单,如下:
public class InheritParent{
    protected int number;
    protected String text;

    public InheritParent(){
        this.number=0x01;
        this.text="PNT";
    }

    public int getInheritNumber(){
        return number;
    }

    public String getInheritText(){
        return text;
    }

    public void addHeritNumber(){
        number=number+0x10;
    }
}

第二个类:InheritThis.yxra,此类为测试的当前类,extends InheritParent,即继承InheritParent类。这个类一个构造方法,一个普通方法,均为public公开的。因为继承InheritParent类,所以此类也将InheritParent的两个属性继承过来。代码如下:
public class InheritThis extends InheritParent{
    public InheritThis(){
        this.number=0x03;
        this.text="CUR";
    }

    public void addHeritNumber(){
        number=number+0x30;
    }
}

我们直接在主程序测试继承属性的有效性,先测试未继承属性的情况,代码如下:
InheritParent inherit=new InheritParent();
P6=inherit.getInheritNumber();
编译运行,可以看到P6值为0x01,即亮了7个LED。

再测试继承属性的情况,代码如下:
InheritParent inherit=new InheritThis ();
P6=inherit.getInheritNumber();

编译运行,可以看到P6值为0x03,即亮了6个LED。
今天就简单介绍到这里。有精通面向对象编程,可以定义抽象方法与接口,让程序运行在未知的情况下。
附件为测试项目,可直接导入到yxrasdk工具中。如果对面向对象编程感兴趣,可留言。

stcproject.zip

9.43 KB, 下载次数: 2

回复

使用道具 举报 送花

已绑定手机

35

主题

99

回帖

1337

积分

金牌会员

积分
1337
 楼主| 发表于 2026-8-18 16:41:13 | 显示全部楼层
面向对象的编程如果不考虑封装与架构,与面向过程基本没有区别的。相比于C程序,private与protected相当于头文件不定义,public则在头文件中定义属性或方法。切记面向对象的程序比较占用内存,尽量用static定义成静态方法与属性。
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-9-23 16:09 , Processed in 0.062786 second(s), 48 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表