-
VB.net 类、对象、字段、属性、方法、构造函数
-
'类、对象、字段、属性、方法、构造函数
-
'------------------------------------------- 类、对象、字段、属性、方法、构造函数 ----------------------------------------
-
Imports System
-
Imports System.Collections.Generic
-
Imports System.ComponentModel
-
Imports System.Data
-
Imports System.Drawing
-
Imports System.Linq
-
Imports System.Text
-
-
''' <summary>
-
''' 定义英雄类(hero)
-
''' </summary>
-
Public Class Hero
-
''' <summary>
-
''' 定义字段
-
''' </summary>
-
Private _name As String '姓名
-
Private _life As Integer '生命值
-
Private _grade As Integer '等级
-
-
''' <summary>
-
''' 字段封装成属性
-
''' </summary>
-
Public Property Name() As String
-
Get
-
Return _name
-
End Get
-
Set(ByVal value As String)
-
_name = value
-
End Set
-
End Property
-
-
Public Property Life() As Integer
-
Get
-
Return _life
-
End Get
-
Set(ByVal value As Integer)
-
_life = value
-
End Set
-
End Property
-
-
Public Property Grade() As Integer
-
Get
-
Return _grade
-
End Get
-
Set(ByVal value As Integer)
-
_grade = value
-
End Set
-
End Property
-
-
''' <summary>
-
''' 无参构造函数 —— 构造函数初始化字段赋值
-
''' 注意:构造函数名和类名必须相同
-
''' </summary>
-
Public Sub New()
-
Me._life = 1000
-
Me._grade = 1
-
End Sub
-
-
''' <summary>
-
''' 有参构造函数 —— 构造函数的重载
-
''' </summary>
-
''' <param name="strName">姓名 — 形参传入</param>
-
''' <param name="intLife">生命值 — 形参传入</param>
-
''' <param name="intGrade">等级 — 形参传入</param>
-
Public Sub New(ByVal strName As String, ByVal intLife As Integer, ByVal intGrade As Integer)
-
Me._name = strName
-
Me._life = intLife
-
Me._grade = intGrade
-
End Sub
-
-
''' <summary>
-
''' 有参构造函数 —— 构造函数的重载
-
''' </summary>
-
''' <param name="intGrade">等级 — 形参传入</param>
-
Public Sub New(ByVal intGrade As Integer)
-
Select Case intGrade
-
Case 1
-
Me._grade = 1
-
Me._life = 1000
-
Case 2
-
Me._grade = 2
-
Me._life = 2000
-
End Select
-
End Sub
-
-
''' <summary>
-
''' 无参无返回值的方法
-
''' 方法的访问修饰符默认情况下为 private,一般用public
-
''' </summary>
-
Public Sub GameStart()
-
MessageBox.Show("游戏开始咯~\(≧▽≦)//~")
-
End Sub
-
-
''' <summary>
-
''' 无参带返回值的方法
-
''' 注意:
-
''' ① 如果不需要返回任何值,方法可以返回 void 数据类型。
-
''' ② 如果返回值类型不是void,必须有return语句。
-
''' ③ return语句必须位于方法的最尾部,且return后的返回语句的数据类型必须与方法指定的返回类型相同。
-
''' </summary>
-
''' <returns>返回结果为string类型的值</returns>
-
Public Function GameBegin() As String
-
Return "-----------------------游戏开始-----------------------"
-
End Function
-
-
''' <summary>
-
''' 基本战斗方法 —— 有参带返回值的方法
-
''' </summary>
-
''' <param name="heroObject">被打的英雄对象 — 形参传入</param>
-
''' <returns>返回结果为string类型的值</returns>
-
Public Function Battle(ByVal heroObject As Hero) As String
-
heroObject.Life -= 100
-
Return heroObject.Name & "的生命值降为:" & heroObject.Life
-
End Function
-
-
''' <summary>
-
''' 基本战斗方法的重载
-
''' 方法的重载一般用于在同一个类中实现同名方法的多个版本功能
-
''' 注意:重载要求多个版本的同名方法中,访问修饰符、返回类型、方法名必须一样,参数列表(参数类型或者参数个数)必须不一样
-
''' </summary>
-
''' <param name="battleType">绝招类型 — 形参传入</param>
-
''' <param name="heroObject">被打的英雄对象 — 形参传入</param>
-
''' <returns>返回结果为string类型的值</returns>
-
Public Function Battle(ByVal battleType As Integer, ByVal heroObject As Hero) As String
-
Dim strMessage As String = "使用绝招 —— "
-
Select Case battleType
-
Case 1
-
heroObject.Life -= 100
-
Case 2
-
heroObject.Life -= 200
-
Case 3
-
heroObject.Life -= 500
-
Case 4
-
strMessage = "一招致命!"
-
heroObject.Life = 0
-
Case Else
-
strMessage = "绝招类型有误!"
-
End Select
-
strMessage &= heroObject.Name & "的生命值降为:" & heroObject.Life
-
Return strMessage
-
End Function
-
-
End Class
-
Public Class Form1
-
Public 计时器 As Integer
-
-
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
-
-
btnOK.Enabled = False
-
'实例化英雄对象1
-
'Dim hero1 As New Hero()
-
Dim hero1 As New Hero("张文龙", 1000, 1) 'new后面调用的是构造函数
-
'通过属性给对象赋初值
-
'hero1.Name = "张文龙"
-
'hero1.Life = 1000
-
'hero1.Grade = 1
-
-
Delay(3000)
-
hero1.GameStart() '调用对象的无参无返回值方法
-
Delay(3000)
-
labResult.Text = hero1.GameBegin() '调用对象的无参带返回值方法
-
-
-
'实例化英雄对象2
-
'Dim hero2 As New Hero()
-
Dim hero2 As New Hero("潘媛媛", 2000, 2)
-
'通过属性给对象赋初值
-
'hero2.Name = "潘媛媛"
-
'hero2.Life = 2000
-
'hero2.Grade = 2
-
-
-
-
Delay(3000)
-
'//hero1发起战斗,调用Battle()方法
-
labResult.Text += ControlChars.Lf & hero1.Battle(hero2) '有参带返回值的方法
-
'//hero2发起反击,调用Battle()方法
-
-
Delay(3000)
-
-
labResult.Text += ControlChars.Lf & hero2.Battle(hero1)
-
'//hero1使用绝招,调用Battle()方法的重载
-
-
Delay(3000)
-
-
labResult.Text += ControlChars.Lf & hero1.Battle(3, hero2)
-
-
-
Delay(3000)
-
'//hero2使用绝招反击,调用Battle()方法的重载
-
labResult.Text += ControlChars.Lf & hero2.Battle(4, hero1)
-
-
-
-
'两人对打
-
Dim i As Integer = 1
-
Do
-
Delay(3000)
-
labResult.Text += ControlChars.Lf & "第" & i & "场对决:"
-
-
Delay(3000)
-
labResult.Text += ControlChars.Lf & hero1.Battle(hero2)
-
-
Delay(3000)
-
labResult.Text += ControlChars.Lf & hero2.Battle(hero1)
-
-
If hero1.Life <= 0 OrElse hero2.Life <= 0 Then
-
Exit Do
-
End If
-
i += 1
-
Loop
-
-
Delay(3000)
-
labResult.Text += ControlChars.Lf & "-----------------游戏结束-----------------"
-
btnOK.Enabled = True
-
End Sub
-
-
-
-
Public Shared Sub Delay(ByVal Interval)
-
Dim __time As DateTime = DateTime.Now
-
Dim __Span As Int64 = Interval * 10000 '因为时间是以100纳秒为单位。
-
While (DateTime.Now.Ticks - __time.Ticks < __Span)
-
Application.DoEvents()
-
End While
-
End Sub
-
-
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
-
End
-
End Sub
-
End Class
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比