在 ballerina 总中object 是一个包含public private 类型字段同时包含函数,需要开发人员进行自定义类型以及行为
说白了,就是类似面向对象的class

基本使用

  • 代码
import ballerina/http;
import ballerina/io;
type App object {
public {
int age,
string name,
}
private {
string email = "default@abc.com",
}
};
function main (string… args) {
App app =new ;
App app2 =new();
App app3=new App();
io:println(app);
io:println(app2);
io:println(app3);
}
  • 输出结果
{age:0, name:""}
{age:0, name:""}
{age:0, name:""}

object 初始化

  • 代码
import ballerina/http;
import ballerina/io;
type App object {
public {
int age,
string name,
}
private {
string email = "default@abc.com",
int[] marks,
}
new(age, name = "John", string firstname,
string lastname = "Doe", int… scores) {
marks = scores;
}
};
function main (string… args) {
App app1 =new (5,"demoapp",4,5);
io:println(app1);
App app2 = new(5, "Adam", name = "Adam", lastname = "Page", 3);
io:println(app1);
}
  • 输出结果
{age:5, name:"John"}
{age:5, name:"John"}

成员方法

import ballerina/http;
import ballerina/io;
type App object {
public {
int age,
string name,
}
private {
string email = "default@abc.com",
int[] marks,
}
new(age, name = "John", string firstname,
string lastname = "Doe", int… scores) {
marks = scores;
}
function getFullName() returns string {
return age + " " + name;
} // 抽象方法
function checkAndModifyAge(int condition, int age);
};
// 实现抽象方法
function App::checkAndModifyAge(int condition, int age){
io:println("demo");
} function main (string… args) {
App app1 =new (5,"demoapp",4,5);
io:println(app1);
App app2 = new(5, "Adam", name = "Adam", lastname = "Page", 3);
io:println(app1);
app1.checkAndModifyAge(1,3);
}
  • 输出结果
{age:5, name:"John"}
{age:5, name:"John"}
demo

对象赋值

如果两个对象的结构相同,那么就可以进行赋值操作

import ballerina/http;
import ballerina/io;
public type Person object {
public {
int age,
string name,
} public function getName() returns string {
return name;
}
};
public type Employee object {
public {
int age,
string name,
string address,
} public new(age, name, address) {
}
public function getName() returns string {
return name + " Doe";
}
public function getAge() returns int {
return age;
}
};
function main (string… args) {
Person p1 = new Employee(50, "John", "street1");
io:println(p1);
io:println(p1.getName());
}
  • 输出结果
{age:50, name:"John", address:"street1"}
John Doe

参考资料

https://ballerina.io/learn/by-example/object-initializer.html
https://ballerina.io/learn/by-example/object-assignability.html
https://ballerina.io/learn/by-example/object-member-functions.html

 
 
 
 

ballerina 学习七 object 创建&& 初始化的更多相关文章

  1. android学习七(创建自己定义控件)

    前面学习的是android的基本控件和布局的使用,可是主要的控件和布局有时候并不能实现复杂的布局.我们来看下各种控件和布局的关系. 可见全部的控件都是直接或者间接的继承自View的,全部的布局都是直接 ...

  2. 我的Go语言学习之旅七:创建一个GUI窗口

    在上次中,刚刚学过了  弹窗效果.这里再接着学习一下怎样创建一个窗口. 还是老路子,先上代码: package main import ( "github.com/lxn/go-winapi ...

  3. 七天学会ASP.NET MVC(七)——创建单页应用

    系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)— ...

  4. 跟着刚哥学习Spring框架--创建HelloWorld项目(一)

    1.Spring框架简介 Spring是一个开源框架,Spring是在2003年兴起的一个轻量级的开源框架,由Rod johnson创建.主要对JavaBean的生命周期进行管理的轻量级框架,Spri ...

  5. 七天学会ASP.NET MVC(七)——创建单页应用 【转】

    http://www.cnblogs.com/powertoolsteam/p/MVC_Seven.html 系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学 ...

  6. Java虚拟机JVM学习04 类的初始化

    Java虚拟机JVM学习04 类的初始化 类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值. 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始 ...

  7. MyBatis学习七:spring和MyBatis整合

    <\mybatis\day02\16mybatis和spring整合-sqlSessionFactory配置.avi;> MyBatis学习七:spring和MyBatis整合.逆向工程 ...

  8. Javascript学习一Object

    构造函数 new Object() new Object(value) 参数 value     可选的参数,声明了要转换成Number对象.Boolean对象或String对象的原始值(即数字.布尔 ...

  9. (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码

    http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...

随机推荐

  1. ADC和RTC的寄存器的读取

    ADC的寄存器读取,int adc_read(void){ int result; #if ADSTART==0 result = ADC.ADCDAT0&0x3ff; while(!(ADC ...

  2. 关于HashTable,HashMap和TreeMap的几点心得

    刚开始看到HashTable,HashMap和TreeMap的时候比较晕,觉得作用差不多,但是到实际运用的时候又发现有许多差别的.于是自己搜索了一些相关资料来学习,以下就是我的学习沉淀. java为数 ...

  3. UVA-11367 Full Tank? (dijkstra)

    题目大意:有n个加油站,每个加油站的油价已知,并且已知油箱的大小,问能否从起点走到终点,若能,找出最小油费. 题目分析:记得在做暴力搜索的时候做过这道题,不算难.但是这次是用dijkstra算法做的, ...

  4. Day10 - Python异步IO、Pymysql、paramiko、

    IO多路复用: 参考博客:http://www.cnblogs.com/wupeiqi/p/6536518.html   socket客户端(爬虫): http://www.cnblogs.com/w ...

  5. 获取代理服务器ip列表的方法

    开源项目:https://github.com/SpiderClub/haipproxy,看爬代理的网址列表应该是最多的. CRAWLER_TASKS = [ { 'name': 'mogumiao. ...

  6. 小练习:Two Sum

    1.example Given nums = [, , , ], target = , Because nums[] + nums[] = + = , , ]. 2.solve class Solut ...

  7. jquery基础 笔记三

    一. 操作"DOM属性" 在jQuery中没有包装操作"DOM属性"的函数, 因为使用javascript获取和设置"DOM属性"都很简单. ...

  8. 【小米oj】找出单独的数字

    题目链接:https://code.mi.com/problem/list/view?id=2&cid=0&sid=26251#codearea 描述 给出N个数字.其中仅有一个数字出 ...

  9. bzoj2929

    题解: 网络流裸题 代码: #include<cstdio> #include<cstring> #include<algorithm> #include<c ...

  10. hdu 6092 Rikka with Subset(逆向01背包+思维)

    Rikka with Subset Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...