2020-12-25

类的定义与对象的实例化
类的定义:文件名就是类名
在这里插入图片描述

给类中添加属性

私有属性:String color;
公有属性:public String color;
在这里插入图片描述

对象的实例化

类名 变量名 = new 类名();
在这里插入图片描述

● 获取对象的属性值并修改

对象.属性名=值
在这里插入图片描述

.定义方法并使用
定义方法格式:

访问修饰符 返回值类型 方法名( 形参的类型 形参名称 ){方法执行内容}
返回值类型

默认:void
基本类型:如int
数组:数组名[]
字符串:String
自定义的类:类名
调用方法

对象调方法:对象.方法名( );
例:a.method();
方法调方法:方法名( );
例:method();
调用带有返回值的方法

用一个和返回值相同类型的变量 接收这个返回值
返回值类型 变量名 = 对象.方法名( );
例:String js = a.method( );
调用带有参数的方法

对象.方法名( 实参1,实参n );
例:a.method ( eee: “成功”, i: 5 );

对象数组
与普通数组的区别

对象数组可以存自定义对象
普通数组存基本数据类型
对象数组的定义

类名[] 变量名 = new 类名[长度];
对象数组中的方法调用

遍历调用每一个数组成员的方法
for(int i=0; i<对象数组.length; i++){
对象数组[ i ] . 方法名();
}
1
2
3

修饰符
一、属性修饰符
Serializable:按值将对象封送到远程服务器。在按值封送对象时,就会创建一个该对象的副本,并将其序列化传送到服务器。 任何对该对象的方法调用都是在服务器上进行的。

STAThread:单线程套间、是一种线程模型

MTAThread:多线程套间、是一种线程模型

二、访问修饰符
类型 代码 作用
公有访问 public 不受任何限制
保护访问 protected 实例不能访问
私有访问 private 子类,实例都不能访问
内部访问 internal 只限本项目内访问,其他不能访问
内部保护访问 protected internal 只限于本项目或是子类访问,其他不能访问
三、类修饰符
public:不受限制

internal:只限本项目内访问

Partial:部分类,可以将一个类分成几部分写在不同文件中,最终编译时将合并成一个文件,且各个部分不能分散在不同程序集中。常见场景在Winform定义窗体或者控件时,自动生成的前端单元和逻辑单元。

Abstract:修饰类,表示不能够创建该类的实例。修饰方法,表示该方法需要由子类来实现,如果子类没有实现该方法那么子类同样是抽象类;且含有抽象方法的类一定是抽象类。

Sealed:修饰类,表示该类不能够被继承。修饰方法,表示该方法不能被覆写。

Static:修饰类,表示不能够实例化该类的对象,也不能含有对象成员;修饰类成员时,该成员为类成员,只能通过【类.成员名】的方式访问。

四、成员修饰符
公共修饰符:public

私有修饰符:private

保护修饰符:protected

内部修饰符:internal

Virtual:修饰方法成员,表示虚方法。父类可以含有该类的实现,子类可以覆写该函数。

Override:表示该方法为覆写了父类的方法。

Readonly:修饰字段,表示该字段为只读字段。

Const:修饰字段,表示该字段为只读字段。并且在编译时必须能够明确知道该字段的值,其值是硬编码到程序中去的,修改了该类型成员后需要重新编译才能使修改生效。
Readonly不能修饰局部变量,const可以。

abstract用来修饰抽象类,表示该类只能作为父类被用于继承,而不能进行对象实例化。抽象类可以包含抽象的成员,但这并非必须。abstract不能和new同时用。

sealed用来修饰类为密封类,阻止该类被继承。同时对一个类作abstract和sealed的修饰是没有意义的,也是被禁止的。

注意:当一个类或方法没有被任何修饰符修饰时,默认为internal。
6.预处理器:#region、可折叠代码块

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
func (c *cAsset) CreatComponent(r *ghttp.Request) { var req *v1.CreateComponentReq if err := r.Parse(&req); err != nil { r.Response.WriteJson(g.Map{ "code": 1, "msg": err.Error(), }) } createRequest := &creativecomponent.CreateRequest{ AdvertiserID: req.AdvertiserID, } res, err := service.Asset().Create(createRequest) if err != nil { r.Response.WriteJson(g.Map{ "code": 2, "msg": err.Error(), }) } r.Response.WriteJson(res) }这段代码中creativecomponent.CreateRequest的过滤条件为type CreateRequest struct { // AdvertiserID 广告主ID AdvertiserID uint64 `json:"advertiser_id,omitempty"` // ComponentInfo 组件信息 ComponentInfo *ComponentInfo `json:"component_info,omitempty"` },其中ComponentInfo为type ComponentInfo struct { // ComponentID 组件ID ComponentID model.Uint64 `json:"component_id,omitempty"` // ComponentType 组件类型 ComponentType enum.ComponentType `json:"component_type,omitempty"` // ComponentName 组件名称。长度小于等于20。一个中文长度为2 ComponentName string `json:"component_name,omitempty"` // ComponentData 组件详细信息。不同的component_type对应的值不同,具体的结构见创建或更新接口定义 ComponentData ComponentData `json:"component_data,omitempty"` // CreateTime 创建时间。格式"2020-12-25 15:12:08" CreateTime string `json:"create_time,omitempty"` // Status 组件审核状态。 Status enum.ComponentStatus `json:"status,omitempty"` }想要把ComponentInfo作为参数放到createRequest中,该怎么做?请详一点
07-20

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值