VB6与vbNet区别
- 格式:doc
- 大小:65.50 KB
- 文档页数:17
VBnet学习笔记(六)VBnet的对象学习笔记(六)的对象1、System.Object每个变量、控件、窗体都继承了System.Object2、对象的声明与实例化简单说声明,只是说明类型,实例化说明在内存中分配了空间。
用New来创建对象,得到类的一个新实例下面有5种实例化形式,其中3较为标准且可读化高。
[vb] view plaincopyprint?Dim a As theClass '1,用两语句来创建实例,先声明再实例化 a = New theClass() Dim b As New theClass() '2,仅一个语句实例化Dim c As theClass = New theClass() '3,仅用一个语句实例化,更能表明类型与创建,在接口/继承上更好用doSomeThing(New theClass()) ' 4,参数中创建实例doSomeThing(New theClass().getValue()) '5,参数中创建的同时调用其方法3、对象引用通常使用对象都是使用对象的引用。
对象的引用(对象变量)本质上就是对象的指针就同C++的指针一样。
当用New创建一个对象时,就会将对象的引用(指针)存储到一个变量中。
下面是对象a,和b赋值时本质情况,在C++中被称为浅复制4、取消对象给一个对象引用赋值为Nothing时,就取消了这个对象的引用。
经实验,Nothing实际上存储的是0,和C++一样给一个对象变量设置为0时,就取消它指向堆中分配的空间。
这时.Net会知道:这个对象不再需要,运行库会在某时刻销毁该对象,收回内存及资源。
因此在.Net删除对象之前,Framework会为该对象调用Finalize方法。
5、前期绑定与后期绑定前期绑定:编译时就知道类型,故能准确地分配空间指定大小,运行速度快后期绑定:编译时不知道,只有运行时才知道,它提供了灵活性(但IntelliSense也就失效了),由于是运行时动态分配所以速度慢。
VB6,即Visual Basic 6.0,是一种流行的编程语言,广泛应用于Windows 桌面应用程序的开发。
以下是VB6的基本语法详解:1.变量声明:在VB6中,变量必须显式声明。
可以使用Dim关键字进行声明。
例如:2.vbnet复制代码Dim x As Integer上述代码声明了一个名为x的整型变量。
2. 赋值语句:使用=进行赋值。
例如:vbnet复制代码x = 101.条件语句:使用If...Then...Else或If...Then...End If结构。
例如:2.vbnet复制代码If x > 10ThenMsgBox "x is greater than 10"ElseMsgBox "x is less than or equal to 10"End If1.循环语句:使用For...Next、While...Wend或Do...Loop结构。
例如:2.vbnet复制代码For i = 1To10MsgBox iNext i1.数组:使用Dim声明数组,指定数组的维数。
例如:2.vbnet复制代码Dim arr(1To10) As Integer1.过程和函数:使用Sub声明过程,使用Function声明函数。
例如:2.vbnet复制代码Sub SayHello()MsgBox "Hello!"End Sub1.控件:VB6提供了许多内置的控件,如按钮、文本框等,可以直接在窗体设计器中拖放。
例如,要在窗体上添加一个按钮,可以从工具箱拖放一个按钮控件到窗体上。
2.事件驱动编程:VB6是基于事件驱动的编程模型。
当用户与应用程序交互(如单击按钮)时,会触发相应的事件。
例如,当用户单击一个按钮时,会触发一个名为Click的事件。
3.错误处理:使用On Error语句来处理运行时错误。
例如:4.vbnet复制代码On Error GoTo ErrorHandler... ' some code that may raise an errorExit SubErrorHandler:' Handle the error here'1.数据类型:VB6支持多种数据类型,如整型、浮点型、字符串等。
简介VB6.0全称为VisualBasic 6.0,是微软公司于1998年推出的可视化编vb 6.0启动画面程工具MSDN之一,是目前世界上使用最广泛的程序开发工具之一。
结构简单,编写程序对系统的资源占有极低,是程序编写者编写小型程序的第一选择!如果你是一个对编程一无所知,而又迫切希望掌握一种快捷实用的编程语言的初学者,那选择VB 6.0没错的。
即使考虑到VB程序本身编译和运行效率较低的不足,但是它的快捷的开发速度,简单易学的语法,体贴便利的开发环境,它仍不失一款优秀的编程工具,是初学者的首选。
语言特性VB的中心思想就是要便于程序员使用,无论是新手或者专家。
VB使用了可以简单建立应用程序的GUI系统,但是又可以开发相当复杂的程序。
VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组建的属性和方法。
因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。
过去的版本里面VB程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。
窗体控件的增加和改变可以用拖放技术实现。
一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。
每个控件都有自己的属性和事件。
默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。
很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。
举个例子来说:窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。
在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。
VB的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。
有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。
VB的组件既可以拥有用户界面,也可以没有。
中class和module有什么区别
在中class和module有什么区别啊?什么时候⽤class?什么时候⽤module?请指教⼀下,谢谢!
1.类和模块,类中的⽅法可以是静态的,也可以是动态实例的。
模块中的东西基本上都是静态的,使⽤时通常不需要⽣成⼀个实例来访问,另外定义的PUBLIC变量应该是全程的。
模块可以使⽤,但是应该尽量少⽤,例如仅仅使⽤ sub Main() 来启动程序⽽已,通常应该写成类。
2.模块可以⽤来分类存放函数、过程和相关变量等,⽽类当然是⽤来存放类的代码的,类可以在任何时候⽤new关键词将其实体化为对象以进⾏操作。
也就类似于vb中的模块和类模块的关系。
当你仅仅是为了编写⼀个全局的过程、函数甚⾄是常量时,就该⽤module,⽽要编写类的时候就必需将代码放在class中。
dotnet⼀般组成的结构是:
Assembly
Module
Class
MethodBase
Parameter
Constructor
Method
Field
Property
Event
3.模块可以认为是受限制的类,它们的所有成员都是共享的,永远不能实例化,不⽀持继承,不能实现接⼝。
⾥⾯有module,有⼀个原因是能和上⼀版本vb6继承下来的。
vb6⾥⾯module⽤得很疯狂,其实在.net⾥⾯⽤的必要性就不了!
5.module: 只能控件内部调⽤
class:可以做开放接⼝使⽤
⾥⾯好像没有⽤module的必要了吧。
因为反正class也可以定义静态成员和⽅法。
分层开发的几点心得从这一章开始我们将通过一个系列的讲座来向诸位展现Visual Basic Net的独特魅力以及使用它开发应用程序的基本方法Visual Basic Net是微软公司在年推出的一种开发基于Net平台应用程序的开发语言也是微软公司极力推荐的一种开发 Net平台应用程序的开发语言首先还是让我们来简单了解一下Visual Basic Net和其前一个版本也是目前世界上拥有最多使用者的开发语言 Visual Basic 的主要区别一 Visual Basic和Visual Basic Net的主要区别虽然说Visual Basic Net是Visual Basic 的后继版本但在我看来Visual Basic Net 除了在语法上还保留Visual Basic原有的踪影以外因为二者几乎在%以上保持相似或相同但在其他很多方面Visual Basic Net都和Visual Basic截然不同也许正是这些不同点才使得Visual Basic Net功能更强大更有生命力但同样也为Visual Basic程序员转型为为Visual Basic Net程序员带来了困难因为Visual Basic Net提出了很多新的功能概念和观点掌握Visual Basic Net不仅要掌握语法还需要理解并运用这些新的功能概念和观点当然也需要掌握 Net框架理解CLR(Common Language Runtime 通用语言进行时)下面就从数据访问Web开发和组件创建三个方面来简要谈谈二者的区别数据访问不同点主要表现在数据访问技术数据访问具体实现方法和数据绑定上的不同在数据访问技术上 Visual Basic 是通过ADO(Active X Data Object 即 Active X数据对象)来实现对数据库访问的同时为了保证对早期版本的兼容也提供RDO(远程数据对象)和DAO(数据访问对象)二种数据访问技术在Visual Basic Net中是使用ADO NET来访问数据库 ADO NET是 NET框架的一部分其对应的类库是 Net FramWork SDK的真子集 ADO和ADO NET 这两种技术在概念功能和实现上都有许多差异由于篇幅所限这里就不一一介绍了其实在Visual Basic Net中也可以使用ADO来访问数据库但ADO在Visual Basic Net中是以组件的形式出现的通过添加引用才可以在Visual Basic Net中使用添加引用的过程其实就是对组件互操作经过互操作后的组件已经并非先前意义上的组件而是转变成可供Visual Basic Net直接使用的 Net类库在数据访问的具体实现方法上 Visual Basic 实现数据访问主要是两种方法其一是在程序设计阶段可通过把数据源绑定到ADODC控件或使用数据环境其二在运行时可以通过编程方式创建记录集RecordSet对象并与记录集对象交换数据同样在Visual Basic Net中实现数据访问的方法主要也是二种其一是在程序设计阶段通过创建配置数据适配器DataAdapter和生成数据集DataSet 其二在运行中通过编程方式动态创建配置数据适配器和创建生成数据集在数据绑定(Data Bind)上在Visual Basic 中实现数据绑定通过设置控件的下列属性来实现DataChanged DataField DataFormat DataMember 和 DataSource 通常是把控件的显示属性绑定到数据源中的相应字段在Visual Basic Net中数据绑定的应用范围可广泛得多 Visual Basic Net中可以将任何控件的任何属性绑定到包含数据的任何结构中Web开发Visual Basic是使用Active Server Page(简称ASP)来创建在 Web 应用程序在ASP中编写Web页面并非纯正的Visual Basic语言而是Visual Basic脚本语言VBScript 在Visual Basic Net中是使用ASP NET技术来编写Web页面在ASP NET中使用的也不再是脚本语言而是真正意义编程语言其中就可以是Visual Basic Net 开发过ASP页面的朋友都清楚虽然编写ASP页面对开发工具要求很低但由于其是面向过程式开发所以稍微复杂一点的ASP代码都显得杂乱无章这都给程序设计调试修改带来了麻烦而Visual Basic Net是建立在新的框架结构上 Visual Basic Net完全支持Web编程凭借ASP NET的Web 应用程序XML Web services等等基于Web上的功能使得Visual Basic Net开发Web 页面与开发Windows编程很相似Web页面代码也不显得有条有理了组件创建在使用Visual Basic 和Visual Basic Net编写应用程序时虽然都可以通过从工具箱中选择组件通过拖入方式在应用程序中加入组件但二者在实现机理上却存在根本不同在Visual Basic 中应用程序中创建的组件全部是组件即可在应用程序中使用的ActiveX控件 ActiveX 类型的DLL 和 ActiveX类型的EXE 而在Visual Basic Net中向窗体中拖入的组件都是基于继承从Net框架提供的SDK中相应的类继承经过实例化后通过添加功能才把组件加入到设计窗体中这些过程都可以在Visual Basic Net的源代码中找到Visual Basic Net中使用的每一个组件都是从Component 或Control基类派生出来的当然Visual Basic和Visual Basic Net之间还存在很多差别如 Visual Basic 只提供单线程模式并不支持多线程而在Visual Basic Net全面支持多线程并且在Visual Basic Net中还增加了结构化异常处理等新的功能所以对于那些Visual Basic 的程序员从Visual Basic程序员转型到Visual Basic Net就有极强的必要性下面就简要介绍一下这种必要性二.从Visual Basic 转型到Visual Basic Net的必然和必要性虽然Visual Basic得到了很多人的认可也有许多配套产品都提供了Visual Basic的接口但随之时间的延续其缺点也逐渐暴露了有些甚至是无法容忍的首先作为一种解释性的语言不仅程序执行速度慢并且在分发应用程序时还需要带上解释库其次Visual Basic并非完全的面向对象的开发语言从根本上说它应该是一种面向过程的开发语言而Visual Basic Net 做为下一代的Visual Basic语言它是一种为开发 Net平台应用程序而度身定做的程序语言因为Visual Basic Net中完全集成了Net FrameWork( Net框架)和CLR(Common Language Runtime 即公共语言运行时)同时 Net 框架和公共语言运行时又共同提供Visual Basic Net语言互操作性垃圾资源回收可靠安全性和版本改进的支持通过Visual Basic Net能够简便快捷地创建 Net平台应用程序 XML Web services 和 ASP NET Web 应用程序 Visual Basic Net做为开发Net平台的程序语言那它就为开发现跨平台程序创造了可能因为我们知道微软推出 Net 其目的之一就是实现跨平台虽然目前微软只提供了在Windows平台上运行的 Net框架还无法实现真正意义上的跨平台但随着MONO的出现(虽然它还存在很多问题并且目前的MONO只为C#提供支持)但可以预见的是在不久的将来 Visual Basic Net实现Write Once And Run AnyWhere的时间不会太久Visual Basic Net是一种编译性的语言但这种编译和以前接触的编译有所区别因为经过Visual Basic Net编译器编译后得到文件并不是可以在计算机直接运行的二进制文件它的性质是一种IL文件(中间语言文件)在运行IL文件时首先是通过CLR下的JIT(即时编译器)把这种IL文件再编译成二进制文件我们看到的程序运行其实是经过JIT编译后的二进制文件在执行这时可能有很多朋友会问这种二次编译是否多此一举具体实现中是否很麻烦是否会影响程序的运行速度?二次编译的确是影响了程序运行的速度但它却为实现跨平台带来了可能其实这种编译过程犹如Java中的JVM(Java虚拟机)正是JVM才使得Java能够开发出跨平台的应用程序二次编译是CLR在 Net框架下自动实现IL 文件到二进制文件转变的它是一种自动完成的并不需要人员的参与所以它并不会给程序执行带来麻烦Visual Basic Net 还是一种真正的面向对象的开发语言可以说OOP思想已经深入到语言中的任一角落如在Visual Basic Net中创建的Windows组件就是从类中继承类经过实例化得到的 Visual Basic Net还增加了许多新功能和改进功能如继承接口和重载等这些都使Visual Basic Net成为功能强大的面向对象的编程语言微软公司在推出Visual Basic Net的同时还推出了Visual Basic Net的开发工具Visual Studio Net Java程序员羨慕Visual Basic Net程序员的重要原因之一就是Visual Basic Net拥有一个任何比目前Java程序员所使用的开发环境都好的集成开发环境Visual Studio Net 三Visual Basic Net开发利器Visual Studio Net简介微软公司提供了四个不同的Visual Studio Net版本分别是企业级结构设计版企业级开发版专业版和学院版其中学院版主要是为在校大学生学习Visual Studio Net准备的它又分成三个独立的版本 Visual C#标准版 Visual Basic Net标准版和Visual C++标准版上述的每一个版本的价格都不菲现在在市面上买到主要是张CD碟片的Visual Studio Net企业级结构设计版(请注意本文介绍的是Visual Studio Net Net FrameWork SDK 版本号是)下面就以此版本讨论一下如何安装Visual Studio Net 安装Visual Studio NET 版本的系统要求每一个版本的Visual Studio Net有着不同的组件组合这也就决定了对计算机有着不同的系统要求建议您的计算机系统满足下列要求操作系统Windows XP 专业版Windows XP Home Windows 服务器版Windows 专业版Windows Workstation Windows NT Server Windows Net Server版处理器Pentium II 级主频 MHz 以上处理器推荐使用Pentium II lishixinzhi/Article/program/net/201311/12194。
vb6编程filedialog的用法在VB6中,可以使用FileDialog控件来实现文件对话框的功能。
Fi leDialog控件提供了一种方便的方式,供用户选择文件或文件夹。
以下是FileDialog控件的基本用法:1.引用FileDialog控件:在VB6的工具箱中,找到“Microsoft Common Dialog Control“,将其拖放到窗体上,以添加对FileDialog控件的引用。
2.设置对话框属性:选中添加的FileDialog控件,打开属性窗口。
可以设置以下常用属性:o DialogTitle:设置对话框的标题。
o Filter:设置文件类型过滤器,以限制可选择的文件类型。
o FileName:获取或设置所选文件的文件名。
3.显示文件对话框:在需要调用文件对话框的地方,例如按钮的Click事件中,使用以下代码显示文件对话框:vbCopy codeCommonDialog1.ShowOpen ’显示打开文件对话框CommonDialog1.ShowSave ’显示保存文件对话框CommonDialog1.ShowOpenMultiple ’显示多选文件对话框CommonDialog1.ShowFolder ’显示选择文件夹对话框4.处理对话框结果:可以使用FileDialog控件的属性来获取对话框的结果,例如:vbCopy codeMsgBox CommonDialog1.FileName ’显示所选文件的文件名需要注意的是,FileDialog控件的具体用法还涉及到事件处理、错误处理等细节,可以根据具体需求进行深入学习和探索。
同时,V B6是一种较旧的编程语言,建议考虑使用更新的编程语言和框架,如或C#.NET,以获得更好的开发支持和功能。
和 VB6 区别Visual Basic .NET 是 Microsoft Visual Studio .NET 套件中主要组成部 分之一。
.NET 版本的 Visual Basic 增加了更多特性,而且演化为完全面 向对象(就像 C++)的编程语言。
本文将介绍 的新特性,并比较 VB6.0/ 之间的区别, 阐述如何利用 编写简单的应用程序。
1.1 什么是 ? Microsoft 推出全新的编程和操作系统 Framework ——.NET,支持多种语言利用公共.NET 库开发应用程序,这些应用程序 在.NET Framework 上运行。
使用 Visual Basic 在.NET Framework 上编 程,这就是 。
首先,让我演示在 中写最简单的控制台程序:Hello World。
1.2 Hello, World!―Hello World!‖是初学者学习 Windows 编程的代表性程 序。
我们的第一个程序就叫做―Hello World!‖。
该程序在控制台输 出一句话:―Hello World!‖,代码如下所示: 代码 1.1: Hello World 例子 Imports System Module Module1 Sub Main() System.Console.WriteLine("Hello World!") End Sub End Module 1.3 编辑器和编译器你可以在记事本或 IDE 等任意文 本编辑器中撰写上述代码,然后保存为 HelloWorld.vb。
代码编写完成之 后,要么在命令行、要么在 IDE 中编译它。
在 Microsoft .NETFramework SDK 中已经包括 编译器 vbc.exe[][1],从 IDE 或是 命令行都可以调用。
要从命令行编译 HelloWorld.vb,请在命令行窗口输 入 vbc HelloWorld.vb /out:HelloWorld.exe /t:exe 编译结束后,HelloWorld.exe 被创建到当前目录下。
在资源管理其中双击 图标或在命令行执行,程序正确地运行了。
祝贺你进入 开发者的 行列。
Imports 语句 如你所知,大部分的.NET 类型都在名字空间(namespace)中定义。
Na mespace 是定义和管理类别的范畴。
察看.NET Framework Class Librar y,可以看到数以百计的 namespace。
例如,System namespace 就包括 了 Console、Object 等类型定义。
如果想使用 Console 类,需要用 Impor ts 指令导入 System namespace。
如下所示: Imports System 甚至可以明确地调用 namespace 而无需用 Import 导入。
下面的例子展示了不用 Import 的―Hello World!‖程序: 代码 1.2: Hello World 例子 Module Module1 Sub Main() System.Console.WriteLine("Hello World!") End SubEnd Module1.4 解析 "Hello World!"程序第一行是: Imports System; System namespace 定义了 Console 类, 该类用于读写 控制台(命令行窗口)。
然后你定义了一个 module:Module Module1 …End Module 所有的 VB 程序都包括一个 Main()方法,即应用程序入口 点。
在例子程序中,我们调用 Console.WriteLine()向控制台写入―Hello V World!‖: Sub Main() Console.WriteLine(―Hello World!‖) End SubWriteLine()方法归 属于 Console 类,它负责向控制台写一个带有行结束符的字符串。
如前所 述,Console 类定义于 System namespace,你通过直接引用来控制类成 员。
Console 类负责读写系统控制台。
读控制台输入用 Read 和 ReadLine 方 法,向控制台输出用 WriteLine 方法。
表 1.1 Console 类定义的方法方法 Read ReadLin e Write 写一行 用途 读入单个字符 读入一行 例子 int i = Console.Read(); string str = Console.ReadLine(); Console.Write("Write: 1");WriteLin 写一行,并带上行结束 Console.WriteLine("Test Output Data with Li 符 e ne");1.5 有什么新特点? 比 VB6.0 更加稳定,而且完全面 向对象。
也许你还记得,VB6.0 不支持继承、重载和接口,所以不是真正 面向对象的。
而 则支持这些面向对象特性。
VB6.0 有两个薄弱环 节——多线程和异常处理。
在 中,开发多线程应用和使用 C++/ C#别无二致, 结构化异常处理也得到支持。
稍后我们会详细解释这些特性。
下面是 的特性列表——· 面向对象的编程语言。
支持继承、重载、接口、共享成员和构造器。
· 支 持所有的 CLS 特性,如存取控制.NET 类、与其它.NET 语言交互、元数 据、公共数据类型、委托等等。
· 多线程支持。
· 结构化异常处理。
1.6 名 字空间与集合 前面讨论了我们的第一个 程序。
该程序中首先引 人注意的是名字空间(namespace)。
在.NET 参考文档中,你会发现每 个类都归属于某个 namespace。
那么,namespace 到底是什么? 一个 namespace 是类和组件的逻辑组合,其目的在于将.NET class 按类 别定义。
微软借用了 C++ class packaging 概念:namespace 来描述这 种组合。
.NET Framework 中的组件被称为集合(assembly)。
全部.NE T 代码在数百个库文件(DLL)中定义。
Namespace 把 assembly 中定义 的类组织起来。
一个 namespace 可以包括多个 assembly,一个 assembl y 也可以在多个 namespace 中定义。
namespace 树的根节点是 System namespace。
在.NET Library 中, 每个 class 都在一组相似的类别中定义。
例如,System.Data namespace 只包括数据相关类。
同样,System.Mul tithreading 只包括多线程类。
在使用.NET 支持的语言(如 C#、、C++.NET 等)创建新应用程 序时,你会注意到每个应用程序都被定义为一个 namespace,而所有的 c lass 都归属于这个 namespace。
通过引用这个 namespace,其它应用程 序就能存取这些 class。
在.NET 中,代码被编译为中间语言(Intermedi ate Language,IL),assembly 中存储了 IL 代码、元数据和其它资源文 件。
同一个 assembly 可以附属于一个或多个 Exe/DLL。
所有的.NET 库都 存储在 assembly 中。
1.7 : 完全面向对象的编程语言抽象、封装、多态、继承是面向对 象语言的四个基本属性。
VB6.0 不支持继承,而 则不然。
所以, 和 C++一样, 也是完全面向对象的编程语言。
Class 和 用 Class...End Class 语句对创建 class。
每个 至少包括一个 Module(模块)。
Module 在 Module…End Mod ule 语句对中实现。
应用程序的主要模块是 Main 方法,亦即应用程序入口 点。
和 VB6.0 相似的地方是,都可以使用 Function/Sub 关键字定义方法。
下 面的例子显示了如何创建 class、添加方法,并从主程序调用方法: Imp orts System Module Module1 Sub Main() Dim cls As TestClass = New TestClass Console.WriteLine(cls.MyMethod) End Sub Class TestClass Function MyMethod() As String Return "Test Method" End Function End Class End ModuleProperty 属性(Property)是类变量的公共描述。
Property… End Property 语句用以创建 property。
属性的 Get/Set 方法分别用于取得 和设置属性值。
下面的例子中,Data 是 TestClass 的属性。
Imports System Imports System.ConsoleModule Module1 Sub Main() Dim cls As TestClass = New TestClass WriteLine(cls.MyMethod) WriteLine(cls.Data) cls.Data = "New Data" WriteLine(cls.Data) End Sub End Module Class TestClass Private strData As String = "Some Data" Function MyMethod() As String Return "Test Method!" End Function ' Adding Data property to the class Public Property Data() As String Get Return strData End Get Set(ByVal Value As String) strData = Value End Set End Property 重载 通过 overload 关键字支持方法重载。
使用这个关键字,你 可以定义同名但不同参数的方法。
类成员访问域 除了原有的 Private 和 Public, 引入了几个新关键字。